随笔分类 -  JVM

JVM内存模型
摘要:内存模型 方法区(Method Area):方法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。方法区里存放着类的版本,字段,方法,接口和常量池。常量池里存储着字 阅读全文

posted @ 2020-08-22 16:03 shumeigang 阅读(218) 评论(0) 推荐(0)

JVM 内存益出
摘要:内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。 内存溢出和内存泄漏有什么区别? 内存泄漏是由于使用不当,把一部分内存“丢掉了”,导致这部分内存不可用。当在堆中创建了对象,后来没有使用这个对象了,又没有把整个对象的相关引用 阅读全文

posted @ 2020-08-22 15:58 shumeigang 阅读(144) 评论(0) 推荐(0)

JVM垃级回收-判断对象已死
摘要:引用计数器法 当一个地方引用它时,就+1;当引用失效时,就-1;GC会回收那些计数为0的对象。 优点:简单,快捷 缺点:对于相互引用的对象会失效 可达性分析算法 通过一系列成为“GCRoots”的对象,向下搜索,搜索所走过的路线成为引用链。若是一个对象无法通过任何引用链和GCRoots相连接,则说明 阅读全文

posted @ 2020-08-22 15:54 shumeigang 阅读(165) 评论(0) 推荐(0)

堆与栈区别
摘要:堆与栈区别 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据; 堆解决的是数据存储的问题,即数据怎么放、放在哪儿。 栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储对象信息。 阅读全文

posted @ 2020-08-21 17:30 shumeigang 阅读(328) 评论(0) 推荐(0)

JVM内存区域
摘要:JVM内存区域 一 方法区 1 什么是方法区 方法区,也称非堆(Non-Heap),又是一个被线程共享的内存区域。其中主要存储加载的类字节码、class/method/field等元数据对象、static-final常量、static变量、jit编译器编译后的代码等数据,。另外,方法区包含了一个特殊 阅读全文

posted @ 2020-08-21 17:24 shumeigang 阅读(171) 评论(0) 推荐(0)

java 虚拟机JVM
摘要:1、概述 1991 年Sun 公司的James Gosling 等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA 等的微处理器;1994 年将Oak 语言更名为Java; java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“ 阅读全文

posted @ 2020-08-21 17:22 shumeigang 阅读(201) 评论(0) 推荐(0)

导航