Java面试-谈谈对Java平台的理解

谈谈对Java平台的理解

Java是一种面向对象的语言,最显著的特点有两个:

(1)write once,run anywhere,能够非常容易的获得跨平台的能力,而且是跨平台开发语言中相对说非常成熟的一种

(2)Java垃圾回收机制(GC),大部分情况下,程序员不需要担心内存分配与回收

Java的特性

(1)JRE:java运行时环境,包含了JVM和java类库

(2)JDK:可以看做是JRE的一个超集,提供了更多的工具,如编辑器(javac),各种诊断分析工具,文档工具(javadoc)等

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

(4)平台无关性:JVM运行.class文件

(5)语言特性:泛型,lambda表达式

(6)类库:集合,并发,网络,IO/NIO

Java代码执行过程

(1)我们开发的java源代码,首先通过javac编译成字节码(bytecode)

(2) 在运行时,通过Java虚拟机(JVM)内嵌的解释器将字节码转换成为对应平台能识别的机器码,机器码再在平台上进行操作

Java是解析运行吗?

首先,Java源码经过javac编译会生成.class文件,.class文件经JVM内嵌的解析器解析执行,但这只是Java代码运行比较常见的一种方式。

(1)Java还存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码作为“热点代码”编译成与本地平台相关的机器码,并进行各种层次的优化。

(2)在Java 9出来后,还提供了AOT编译器,能将所有代码编译成机器码执行。

综上,Java既可以通过解析运行,也可以直接编译运行,并不是所谓的解析运行的语言。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值