java核心

本文探讨了Java作为解释型语言的特点,详细介绍了JDK、JRE的组成及作用,并阐述了Java程序从编译到运行的过程。同时,还解析了Java虚拟机的工作原理和垃圾回收机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习了一段时间的java后,小有感触,结合网上的资料和大家分享一下,有不恰当的地方请大家指正:
1.java是一种解释型语言
区别编译性与解释性语言:
编译性语言:源文件经过一次编译变成可被操作系统直接运行的可执行文件。例如c,c++语言,编译后变成exe可执行文件,在windows下可直接执行。
解释性语言:例如java源文件(.java)经过编译后变成被java虚拟机识别的可执行文件(字节码文件.class),在运行过程由java虚拟机抽取.class文件的代码,再解释成可被可被操作系统识别的可执行文件。
2.理解jdk,jre
jdk ---java develop kit java开发包或java开发工具集
jre --java runtime environment java运行环境
在jdk安装过程中会有两个jre。一个在jdk中,供开发者开发时运行使用。另一个在jdk外,供其他应用程序运用.
jdk中的两个工具
javac.exe java compiler java的编译器,将源文件编译成字节码文件
java.exe java字节码解释器,即传说中的java虚拟机。
3.java程序运行流程:首先由java编译器将java文件编译成字节码文件。然后由java虚拟机解释字节码文件。在虚拟机解释过程中,经过了三个阶段。a.类的加载,由classloader完成。b.字节码的校验。有bytecode verifier完成。(很多运行时异常就在此产生)c。字节码的解释程序,有runtime interpreter完成。

4.java的两个核心机制
1.java虚拟机:一种解释为字节码的解释程序。我更倾向于第二种解释:以字节码为机器指令的cpu。
java虚拟机是在内存中分配的一块内存,主要用于在运行时解释字节码文件。
2.java的垃圾回收机制
系统级线程跟踪内存中对象的分配状况,在java虚拟机空闲的时候检查和清除不再使用的对象的分配空间。垃圾回收在java运行时自动运行,不需要程序员干预和控制。但是可以通过System.gc()方法手动强制启动垃圾回收器,也可以通过Runtime来调用gc()。java中没有提供显示的释放已分配对象空间的方法。
java回收机制主要有两种回收策略:复制式回收策略和自省式回收策略。
复制式回收策略:在java运行过程中将程序暂停,然后复制正在使用的对象到另一个堆内存。然后将前一个堆内存释放掉。
自省式回收策略:将正在使用的对象进行标记。标记完成后,在将不再使用的对象空间释放掉.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值