谈谈java平台的理解

Q:谈谈你对java平台的理解?“java是解释执行”,这句话正确吗?

典型回答

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

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

 

相关知识总结

java特性

面向对象(封装,继承,多态)

平台无关性(java运行.class文件)

语言(泛型、Lambda)

类库(集合,并发,网诺,IO/NIO)

JRE(java运行环境,JVM,类库)

JDK(java开发工具,包括jre,javac,诊断工具)

java是解析运行吗?

不正确!

1,java源代码经过javac编译成.class文件

2,.class文件经JVM解析或编译运行

    (1)解析:.class文件经过JVM内嵌解析器解析执行。

    (2)编译:存在JIT编译器,会把经常运行的代码作为热点代码编译为与本地平台相关的机器码,并进行各种层次的优化。

    (3)ATO编译器:java9提供的直接将所有代码编译成机器码执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值