第一章、我对java平台的理解

1、我认识中的 JAVA是怎么样子的?

JAVA是一种面向对象的语言,比较显著的两个特性是:

    1.1、跨平台能力(java是运行在JVM虚拟机上,不依赖于具体的平台环境)

    1.2、垃圾收集器(无需程序员去关注内存分配与回收,跟去饭店吃饭一样,不需要和家里一样吃饭还得洗碗收拾餐具~)。



2、JRE、JDK的全称是什么?它两有什么关系?

笔者在去找实习工作那会被面试官问及该问题:不记得当时是怎么忽悠过去的,应该没答对~然后就没有然后了,哈哈~

JRE的全名是 Java Runtime Environment ,也就是JAVA运行环境,包含了JVM和java类库,以及一些模块等。

JDK的全名是Java Development kit,可以看作是JRE的一个超集,提供了更多工具,比如编译器、各种诊断工具等。



3、JAVA的执行过程是什么样子的?是解释执行吗?

做位一个还未 聪明绝顶的程序员(也快了,最近老掉发),这类比较抽象的问题对于我们这种show me the code类型的程序员来说,是比较难以回答的上。所以如果面试这种问题一般都给他来个“全套”。首先①程序员编写JAVA类,②通过javac编译成为字节码(bytecode)也就是打包后的class文件,然后在运行时,通过java虚拟机(JVM)内嵌的解释器将字节码转换成位最终的机器码。看起来时解释执行的过程,貌似这么理解也没毛病。

但是常见的JVM,比如我们大多数情况使用的oRACLE JDK提供的Hotspot JVM,都提供了JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了




java平台学习蓝图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容