java平台分为几类,它们的适用范围是什么(对于Java平台的理解)
谈谈你对 Java 平台的理解?“Java 是解释执行 ” ,这句话正确吗?
Java 本身是一种面向对象的语言 ,最显著的特性有两个方面 ,一是所谓的“一处编译 ,处处运行 ”(Write once,run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC,Garbage Collection),Java通过垃圾收集器(Garbage Collector)回收分配内存 ,大部分情况下 ,我们不需要自己操心内存的分配回收 。
我们日常会接触到JRE(Java Runtime Environment) 或者JDK(Java Development Kit) 。JRE ,也就是Java 运行环境 ,包含了JVM和Java类库 ,以及一些模块等。而JDK可以看作是JRE的一个超集,提供了更多工具比如编译器 ,各种诊断工具等 。
对于“Java 是解释执行 ”这句话 ,这样的说法不太准确 。我们开发的源代码,首先通过Javac(编译器)编译成字节码(bytecode),然后 ,在运行时 ,通过Java 虚拟机(JVM)内嵌的解释器将字节码转换为最终的机器码 。但是常见的JVM ,比如Oracle JDK 提供的Hotspot JVM,也提供了JIT(Just-In-Time)编译器 ,也就是通常所说的动态编译器 ,JIT能够在运行时将热点代码编译成机器码 ,这种情况下部分热点代码就属于编译执行 ,而不是解释执行了 。
结论:目前主流的JVM 都是混合模式(-Xmixed) ,即解释运行 和编译运行配合使用 。
补充--优缺点:由于编译执行是将翻译过后的机器码保存下来 ,所以代码二次运行时不需要重新翻译 ,可以直接运行机器码 ,所以效率更快 。解释执行因为不需要提前翻译 ,所以启动更快 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!