![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 68
纵我不往''
这个作者很懒,什么都没留下…
展开
-
JVM---垃圾回收算法介绍
开发门槛低、安全:性能问题。c和c++可以自己操控内存等,性能更高垃圾回收学的是算法,垃圾回收有很多种算法,学完这个的目标一个是需要学习人家的思路,第二个是需要根据自己的业务特色去选用特定的垃圾回收算法。原创 2023-08-15 22:53:13 · 978 阅读 · 1 评论 -
JVM---理解jvm之对象已死怎么判断?
对象引用的四个等级:为什么说要有这个设置:为了满足当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象。强引用:new Object(),只有当判断对象已经死的时候,才回收软引用:在系统要发生oom,会回收所有的软引用对象,如果回收完,还是放不上这个对象,才溢出。,每次垃圾回收的时候,如果对象还没死,就不回收,但是在oom之前,不管有没有死,都会被回收。系统要发生oom,会回收所有的软引用对象,如果回收完,还是放不上这个对象,才溢出。原创 2023-08-14 22:37:17 · 797 阅读 · 0 评论 -
JVM---jvm里的内存溢出
String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用;否则,会将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。判断是否是真的内存溢出,先判断这个对象是不是正常的,如果不是,就得修复,如果是:要么去调优,通过优化逻辑来减少对象的大小;如果虚拟机的栈内存允许动态扩展,当扩展栈容量无法申请到足够的内存时,将抛出OutOfMemoryError异常。原创 2023-08-13 16:12:30 · 554 阅读 · 0 评论 -
JVM --- 对象的创建步骤
①、指针碰撞:在Java堆内存为绝对工整的前提下,被使用过的内存放在一遍,没有使用过的放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间方向挪动一段与对象大小相等的距离(一个对象的内存绝对是连续的,如果不是跟内存存储单位的整数倍,就会产生内存碎片)。例如这个对象是哪个类的实例、如何才能找到 类的元数据信息、对象的哈希码(实际上对象的哈希码会延后到真正调用Object::hashCode()根据虚拟 机当前运行状态的不同,如是否启用偏向锁等,对象头会有不同的设置方式。原创 2023-07-26 20:19:17 · 45 阅读 · 0 评论 -
JVM---自动内存管理(程序计数器、虚拟机栈、本地方法栈、堆、方法区)
局部变量表存放了编译期可知的各种Java虚拟机基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它并不等同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或者其他与此对象相关的位置)和returnAddress类型(指向了一条字节码指令的地址)。①、并不是虚拟机运行时数据区的一部分,JVM不仅可以管理他的区域,还可以管理他之外的区域。程序计数器、虚拟机栈、本地方法栈、堆、方法区。原创 2023-07-26 09:35:06 · 116 阅读 · 0 评论 -
JVM---JAVA技术体系
③、Java虚拟机(Java Virtual Machine,JVM)是Java平台的核心组成部分之一,它是一个在计算机上运行Java字节码的虚拟机。5.Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、MIS、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量有针对性的扩充,并提供了相关的部署支持,①、JDK是用于支持Java程序开发的最小环境,包含:Java程序设计语言、Java虚拟机、Java类库。④、jdk包含jre包含jvm。原创 2023-07-26 00:15:26 · 40 阅读 · 0 评论