JAVA知识复盘005——谈谈你对java平台的理解;java是解释执行,这种说法对吗?

不知道你是否跟我一样,一看到这个题目,有点不知道要讲什么,如果面试官问你,是不是有点空,这个问题没有标准答案,但是有一些比较好的回答,我整理了一下

java是一种面向对象的语言,两大特性:一是java是跨平台的,“write once,run anywhere”;二是GC垃圾回收机制,大部分情况下,不需要担心内存的消耗与分配;平时接触的JRE是java 运行环境,包括JVM、类库,JDk可以看做是JRE的超集,提供更多工具,比如编译器、各种诊断工具;面向对象三大特点:封装、继承、多态

对于java是解释执行,这个说法不太准确,首先编译器javac将java源码编译成字节码.class文件,在运行时,JVM通过类加载器(class loader)加载字节码,然后内嵌的解释器将字节码文件转换成机器码文件,,但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK提供的Hotsport JVM,都提供了动态编译器JIT(Just In TIME),JIT能够将部分热点代码直接编译成机器码,这部分热点代码就属于编译执行,而不是解释执行

对于JIT和AOT这部分可以自己拓展一下 

你可能感兴趣的:(java知识点复盘)