JVM学习笔记
文章平均质量分 73
jvm
G::A
这个作者很懒,什么都没留下…
展开
-
JVM自用笔记 —— 串池
String类由final修饰,故不可被继承。1.8及之前底层有private final char 数组存储数据;1.9及以后由private final byte数组存储数据。(StringBuffer和StringBuilder底层也做了同样的调整)。由于成员变量由final修饰,因此字符串对象具有不可变性。原创 2023-07-21 10:13:02 · 63 阅读 · 2 评论 -
JVM自用笔记 —— 执行引擎
执行引擎将字节码指令解释/编译为对应平台上的本地机器指令。原创 2023-07-19 19:26:53 · 50 阅读 · 1 评论 -
JVM自用笔记 —— 方法区
用于存储类的结构信息、常量、静态变量、即时编译器优化后的代码等数据的内存区域。方法区通过元空间实现。对于GC而言,较多的收集新生代,较少的收集老年代,几乎不动元空间。线程共享的区域。在虚拟机启动时被创建,是堆空间的逻辑上的一部分。该内存在物理上不连续,在逻辑上连续。方法区的大小可以固定或可扩展,该大小决定了系统可以保存多少个类。JDK7以前,习惯上把方法区称作永久代;JDK8以后,元空间取代了永久代。元空间相比永久代,不设置在虚拟机内存中,而使用本地内存。从而避免了永久代容易OOM的缺点。原创 2023-07-18 20:48:28 · 98 阅读 · 1 评论 -
JVM自用笔记——堆
几乎所有的对象实例和数组都应该在运行时分配到堆上。JVM启动时创建,一个jvm实例(一个进程)只有一个堆区,创建时便确定空间大小。堆的大小是可调节的。堆在物理上可以非连续,但是在逻辑上连续。但是不是所有堆空间都是线程共享的,还可以划分线程私有缓存区(TLAB)方法结束后,堆空间不会被立即回收,需要等待GC。原创 2023-07-14 16:36:26 · 122 阅读 · 1 评论 -
JVM自用笔记 —— 虚拟机栈
为了实现跨平台性,java的指令都是根据栈来设计的。原创 2023-07-11 19:16:00 · 78 阅读 · 0 评论 -
JVM自用笔记 —— 本地方法
本地方法就是一个调用非JAVA代码的接口。通过native关键字修饰,且没有方法体。原创 2023-07-11 19:53:28 · 72 阅读 · 0 评论