北京Java培训
达内北京中关村中心

010-62126400

热门课程

Java面试经典题解析——谈谈你对Java平台的理解?

  • 时间:2018-08-24 17:38
  • 发布:北京java培训
  • 来源:笔试题

从你接触Java开发到现在,你对Java最直观的印象是什么呢?是它宣传的“Compileonce,runanywhere”,还是目前看已经有些过于形式主义的语法呢?你对于Java平台到底了解到什么程度?请你先停下来总结思考一下。
今天我要问你的问题是,谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?

典型回答

Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一次编译,到处执行”(Compileonce,runanywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC,GarbageCollection),Java通过垃圾收集器(GarbageCollector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。

我们日常会接触到JRE(JavaRuntimeEnvironment)或者JDK(JavaDevelopmentKit)。JRE,也就是Java运行环境,包含了JVM和Java类库,以及一些模块等。而JDK可以看作是JRE的一个超集,提供了更多工具,比如编译器、各种诊断工具等。

对于“Java是解释执行”这句话,这个说法不太准确。我们开发的Java的源代码,首先通过Javac编译成为字节码(bytecode),然后,在运行时,通过Java虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的JVM,比如我们大多数情况使用的OracleJDK提供的HospotJVM,都提供了JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

考点分析

其实这个问题,问得有点笼统。题目本身是非常开放的,往往考察的是多个方面,比如,基础知识理解是否很清楚;是否掌握Java平台主要模块和运行原理等。很多面试者会在这种问题上吃亏,稍微紧张了一下,不知道从何说起,就给出个很简略的回答。对于这类笼统的问题,你需要尽量表现出自己的思维深入并系统化,Java知识理解得也比较全面,一定要避免让面试官觉得你是个“知其然不知其所以然”的人。毕竟明白基本组成和机制,是日常工作中进行问题诊断或者性能调优等很多事情的基础,相信没有招聘方会不喜欢“热爱学习和思考”的面试者。

即使感觉自己的回答不是非常完善,也不用担心。我个人觉得这种笼统的问题,有时候回答得稍微片面也很正常,大多数有经验的面试官,不会因为一道题就对面试者轻易地下结论。通常会尽量引导面试者,把他的真实水平展现出来,这种问题就是做个开场热身,面试官经常会根据你的回答扩展相关问题。

上一篇:Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?
下一篇:没有下一篇了
选择城市和中心
贵州省

广西省

海南省