Java虚拟机总结

1、java语言的运行过程。首先java源文件(.java)通过java编译器编译成java字节码文件(.class),接着通过JVM虚拟机将java字节码加载、解析成运行主机能识别的机器码。



2、jvm中的堆和栈。

Stack(栈)是JVM的内存指令区。主要存储基本的数据类型、Java 指令代码、常量等字节长度已知的数据。

Heap(堆)是JVM的内存数据区。主要存储对象的实例(包括属性),一般分配的存储空间是不定长的。

总结:栈是运行时的单位(控制执行逻辑),而堆是存储的单位(数据存储);堆中存的是对象,栈中存的是基本数据类型和堆中对象的引用(即对象指针)。

3、Jvm的构成。主要包括类加载子系统、数据存储区、执行引擎。


4、JVM中对象的引用分类。
(1)强引用:默认情况下,对象采用的均为强引用(这个对象的实例没有其他对象引用,GC时才会被回收)。
(2)软引用:软引用是java中提供的一种比较适合于缓存场景的应用(只有在内存不够用的情况下才会被GC)。
(3)弱引用:在GC时一定会被GC回收。
(4)虚引用:由于虚引用只是用来得知对象是否被GC。

5、类加载器。类加载机制从自上往下查找的过程。


https://blog.csdn.net/ns_code/article/details/17881581


转:https://blog.csdn.net/u011067360/article/details/46047521


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值