javaJVM
看了个寂寞
一时刷题一时爽,一直刷题一直爽!
展开
-
对象的访问定位的两种方式(句柄和直接指针两种方式)
java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象。由于reference类型在java虚拟机规范中只规定了一个对象的引用,并没有定义这个这个引用应该通过那种方式去定位、访问java堆中的具体对象实例,所以一般的访问方式也是取决与java虚拟机的类型。目前主流的访问方式有通过句柄和直接指针两种方式。1.句柄使用句柄访问方式,java堆将会划分出来一部分内存去来作为句柄池,reference中存储的就是对象的句柄地址。而句柄中则包含...原创 2020-07-15 15:05:43 · 2103 阅读 · 0 评论 -
对JVM运行时内存的一些理解
Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、 From Survivor 区和 To Survivor 区)和老年代。1.新生代1)用来存储新生的对象。2)一般占据堆的 1/3 空间。3)由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。4)新生代又分为 Eden 区、 ServivorFrom、 ServivorTo 三个区。1.1Eden 区1)Java 新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代)。2)当 Eden原创 2020-07-08 09:01:32 · 92 阅读 · 0 评论 -
对JVM内存区域(运行时数据区域)的一些理解
1.JVM内存区域包括线程私有区域,线程共享区域和直接内存1)线程私有区域:程序计数器,虚拟机栈,本地方法栈线程私有区域的生命周期与线程相同,用户线程开启/结束对应其创建/销毁。所以线程私有区域的存否与本地线程的生死有关系。2)线程共享区域:java堆,方法区线程共享区域随虚拟机的开启/关闭而创建/销毁。3)直接内存并不是 JVM 运行时数据区的一部分, 但也会被频繁的使用: 在 JDK 1.4 引入的 NIO 提供了基于 Channel 与 Buffer 的 IO 方式, 它可原创 2020-06-12 05:49:00 · 150 阅读 · 0 评论 -
javaJVM
1.1基本概念JVM运行在操作系统上,与硬件无直接交互。包括:字节码指令集,寄存器,栈,垃圾回收堆,存储方法域。1.2运行过程java源文件-->编译器-->.class文件(字节码文件)-->JVM(中解释器)-->机器码问题:java问什么会跨平台?每个平台的解释器是不同的,但是实现的虚拟机是相同的。2.线程参考:Java多线程看这一篇就足够了:https://mp.weixin.qq.com/s/5bu547-EsgX0BMQwh68XKQ参考:进程与原创 2020-06-10 10:26:19 · 171 阅读 · 0 评论