Java平台的一些宽泛理解

本文深入解析Java平台的两大显著特性:跨平台性和垃圾回收机制。阐述了Java的执行模式,从源码到字节码,再到最终机器码的过程,并介绍了JIT编译器在运行时将热点代码编译为机器码的混合执行方式。同时,概述了熟悉Java平台所需掌握的四个方面:语言特性、类库、虚拟机和辅助工具。

1.java平台的显著特性。

java是一种面向对象的语言,显著特性有两个方面:

(1)书写一次,到处运行(即java的跨平台特性)。java的跨平台特性与java虚拟机的存在密不可分,在不同的运行环境中有不同的JDK,比如Windows和Linux环境下分别需要安装不同的JDK,起关键性作用的就是JVM的二次编译(二次编译时JVM解释器把字节码文件变异成最终机器码,一次编译是javac把java源码编译成字节码)。

(2)java的垃圾回收机制。程序员不需要自己操心内存的分配和回收(但是回收机制还是应该理解的)。

2.如何理解“java是解释执行”这句话。

这句话其实是不太正确的。通常情况下java执行的顺序是:java源码(通过javac)——>字节码(通过JVM解释器)——>最终机器码。

上面是通常情况下的。但是JVM提供了JIT编译器(动态编译器),JIT能够在运行时将热点代码(什么是热点代码?)编译成机器码,这种情况下部分热点代码就属于编译执行。

所以是属于编译和解释的混合执行。

3.熟悉java平台需要了解哪些方面。

(1)基本的语言特性:面向对象、反射、泛型、lambda表达式。

(2)java类库:核心类库和安全类库等(集合、网络、并发、安全)。

(3)java虚拟机:垃圾收集器、运行机制、动态编译等。

(4)一些辅助工具

4.JIT compiler

(1)C1对应client模式,适用于启动速度敏感的应用,如桌面系统

(2)C2对应server模式,适用于长时间运行的服务器端。

(其实我对这个也不太了解,回头了解的深了再来补上)

5.java虚拟机启动时候指定的执行参数。

“-Xint”jvm不编译,只解释执行。“-Xcomp”jvm关闭解释器,不进行解释执行(这种方式启动比较慢)。“-Xmixed”是解释和编译的混合模式(jdk8就是使用的这种模式)

6.AOT编译方式。

AOT编译方式是直接将字节码编译成机器代码(其实不太懂。。。)

 

结尾:内容参考来自杨晓峰老师的《java核心技术36讲》和网络其他地方。

           如对内容有疑惑欢迎探讨学习。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值