前言:工作中常用到Java,但一些知识点虽然知道,但总是很模糊,所以,特写个《Java常见坑》系列供自己及他人查漏补缺。内容多来源于网上资料整理。
1、认识虚拟机(JVM)
Java的一个非常重要的特点就是与平台的无关性。
那么,Java是如何实现这一特点的呢?
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java虚拟机后,Java在不同平台上运行时不需要重新编译。Java使用虚拟机屏蔽了与具体平台相关的信息,使得Java编译程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
实际上,JVM 并不是只有一种!只要满足 JVM 规范,每个公司、组织或者个人都可以开发自己的专属 JVM。 也就是说我们平时接触到的 HotSpot VM 仅仅是是 JVM 规范的一种实现而已。
2、字节码
1)什么是字节码?
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为.c