Java–谈谈你对Java平台的理解

今日问题:谈谈你对Java平台的理解?Java是解释执行,这句话正确吗?

  • 问题比较开放,考察点很多,比如基础知识,是否掌握Java平台主要模块和运行原理
  • 尽量表现出自己的思维深入并系统化,Java知识理解也比较全面

典型回答:

  • Java本身是一种面向对象的语言,最显著的特性有两个方面,一个是“编写一次,到处执行”,跨平台,还有一个就是垃圾收集,Java通过GC来回收分配内存,程序员一般不用担心内存的分配和回收

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

  • 对于解释执行这句,说法不太准确,Java源代码,首先需要进行javac编译成字节码(.class)然后在运行时,通过Java虚拟机内嵌的解释器将字节码转换成最终的机器码。现在常见的JVM,如Hotspot JVM,都提供了JIT编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况部分热点代码就属于编译执行,而不是解释执行了

今日问题:请对比Exception和error,另外,运行时异常和一般异常有什么区别?