谈谈你对Java的理解
◆平台无关性 ◆语言特性 ◆面向对象 ◆类库 ◆GC ◆异常处理
JAVA的平台无关性如何实现
Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。
为什么JVM不直接将源码解析成机器码去执行
- 字节码更便于虚拟机读取,不用在解析字符串,所以运行速度比直接解析源代码快。
- 生成字节码过程中,编译器可以预先作语法错误或者安全性方面的检查,出错机会更少。
- 字节码也可以由其他语言生成,如Groovy,Clojure.Scala需要注意的事,既然这些语言可以编译成字节码,也就可以被Java或其他JVM语言调用。
JVM如何加载class文件可参考我下一篇文章,简书平台被禁了一个月,暂时不能发布,没有链接,我统一发文章时候可能就忘了这些了,如果有朋友想看可以自行查看我的JVM文集