谈谈你对Java平台的理解?Java是解释执行吗?

本文深入探讨Java平台的特点,包括其跨平台能力、垃圾收集机制、JVM的工作原理以及JIT和AOT编译方式。同时,文章也提到了Java语言特性和基础类库,以及JDK包含的各种工具。

谈谈你对Java平台的理解?Java是解释执行吗?
Java是面向对象的语言,最显著的特性有两个方面:
1.Write once ,run anywhere.跨平台能力。
2.垃圾收集(GC,garbage collection),Java通过GC回收分配内存。

JRE,Java运行环境,包含了JVM和Java类库,以及一些模块等。
JDK,可以看做是JRE的一个超集,提供了更多工具。比如编译器和各种诊断工具等。

Java是解释执行,这个说法不太准确。
我们开发的Java源代码,首先通过javac编译成为字节码(bytecode),
然后在运行时,通过JVM内嵌的解释器将字节码转换成为最终的机器码。

但是常见的JVM,比如我们大多数情况使用的Oracle JDK提供的Hotspot JVM,
都提供了JIT(just-in-time)编译器,也就是通常说的动态编译器,
JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行了。

经常总结,例如Java语言特性,
包括泛型,lambda等语言特性,基础类库,包括集合,IO/NIO,网络,并发,安全等基础类库。

或者谈谈JVM的一些基础概念和机制,比如类的加载机制,加载,验证,链接,初始化,
自定义Class-loader等。还有垃圾收集的基本原理,常见的垃圾收集器,
如SerialGC,Parallel GC,CMS,G1等。

JDK包含哪些工具或Java领域内哪些工具等,编译器,运行时环境,安全工具,诊断和监控工具等

Java分为编译期和运行期。
javac的编译,编译Java源码生成.class文件,里面是字节码,而不是可以直接执行的机器码。
Java通过字节码和Java虚拟机这种跨平台的抽象,屏蔽了操作系统和硬件的细节,
是一次编译,到处执行的基础。

运行时,JVM会通过类加载器(Class-loader)加载字节码,解释或编译执行。
JDK8实际是解释和编译混合的一种模式。

除了我们常见的Java使用模式,还有一种新的编译方式,AOT(Ahead-of-Time Compilation),
直接将字节码编译成机器代码,避免了JIT预热等各方面的开销。
比如Oracle JDK 9就引入了实验性的AOT特性,并且增加了新的jaotc工具。
还支持分层编译和AOT协作使用,这两者不是二选一的关系。
参考文档: http://openjdk.java.net/jeps/295

jit是运行时(动态编译)才做的,需要预热才知道哪些是热点
aot是编译器的,静态的,直接变成类似类库的东西。
动态编译会缓存起来,适合重复使用的场景。

### 回答1: 我对Java理解是,它是一种面向对象的编程语言,它使用类和对象来组织代码,有助于创建大型、可扩展的应用程序。Java可以让开发人员高效地开发出可移植性强、运行速度快的程序,同时也拥有一个强大的库,可以满足不同类型应用程序的需求。 ### 回答2: Java是一种面向对象的高级编程语言,我对它的理解是它的跨平台性和广泛应用。 首先,Java的跨平台性是它最为出众的特点之一。它的编译器将源代码编译成称为字节码的平台中立的中间代码,然后由Java虚拟机(JVM)解释行。这种设计使得Java程序可以在任何支持Java虚拟机的操作系统上运行,不需要针对不同平台进行重新编写或重新编译。这为开发者提供了极大的便利性,使得Java成为互联网和企业级应用开发的首选语言之一。 其次,Java的广泛应用也是我对它的理解Java已经成为了许多领域的事实标准,特别是在企业领域。无论是开发网站和Web应用,还是构建大规模的分布式系统和数据库,Java都能胜任,并且有许多优秀的框架和工具可供选择。此外,Java还被广泛应用于Android移动应用开发,使得它成为全球最流行的移动应用开发语言之一。 总的来说,我认为Java是一门极具灵活性和可扩展性的编程语言,具有良好的跨平台性和广泛的应用领域。它不仅适用于不同规模的项目开发,而且还有一个庞大的开发者社区,提供了许多有价值的资源和支持。因此,我认为对于想要进入软件开发行业或者在企业级应用开发领域发展的人来说,了解和掌握Java是非常有必要的。 ### 回答3: 对于我来说,Java是一种高级的、通用的面向对象的程序设计语言。它可以运行在各种平台上,因此具有很强的跨平台性。Java的语法简洁清晰,易于学习和理解,而且具有更高的可读性,使得开发者能够更加方便地编写和维护代码。 Java是一个极其强大的语言,拥有丰富的类库和工具,可以满足各种应用程序的开发需求。Java的标准库提供了大量的类和方法,涵盖了从基本的数据结构到网络编程、图形用户界面等各个方面。同时,Java还有许多第三方库和框架,可以帮助开发者更加高效地进行开发工作。 Java还具有良好的跨平台性,这意味着开发者可以编写一次代码,就可以在不同的操作系统和硬件平台上运行。这是因为Java源代码被编译成一种称为字节码的中间格式,然后在Java虚拟机(JVM)上运行。JVM充当了一个虚拟计算机的角色,它可以将字节码翻译成特定平台的机器码,从而实现跨平台的能力。 另外,Java还具有良好的安全性和稳定性。Java的设计目标之一是提供一种可以在开放网络环境下运行的安全语言,因此在Java中,有许多内置的安全机制来确保程序的运行安全。同时,Java也具有垃圾回收机制,可以自动管理内存,减少了内存管理的负担,提高了程序的稳定性和可靠性。 总之,我认为Java是一种非常优秀的编程语言,它不仅可以满足各种需求,而且具有良好的可读性、跨平台性、安全性和稳定性。对我来说,学习和使用Java是非常有意义的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值