典型回答: java本身是一种面向对象的语言,最显著的特性有两个方面,一试所谓的 书写一次,到处运行, write once ,run anywhere ,能够非常容易的获得跨平台能力, 另外就是垃圾回收 gc garbage collection, java通过垃圾回收机器,回收分配的内存。大部分情况下,程序员不需要自己操心内存的分配和回收。
我们日常回接触 jre 活着 jdk, jre 也就是java运行时环境,包含了 jvm 和java类库,以及一些模块等,而jdk可以看作是jred的一个超集,提供了更多工具,比如编译器,各种诊断工具等。
对于java是解释执行,这句话,这个说法不台准确, 我们开发的java的源代码,首先通过javac编译成字节码 bytecode,然后在运行时通过java虚拟机 jvm内嵌的解释器将字节码 转换成最终的 机器码, 但是常见的jvm,比如我们大多数情况下使用的oraclejdk 提供的hotspt jvm ,都提供了 jit just-in-time编译器,这种情况下部分热点代码就属于编译执行,而不是解释执行了。