JVM
文章平均质量分 94
♛薄情痞子♛
人生无非就是笑笑别人或被别人笑笑而已。
此博客仅供个人学习而用,如有侵权,请联系我,谢谢!!
展开
-
Java的反射机制
什么是反射动态获取类的信息以及动态调用对象的方法称为Java的反射(Reflection)机制。反射提供了封装程序集、模块和类型的对象。在Java运行时环境中,对于任意一个类的对象,可以通过反射获取这个类的信息。反射基本信息Java程序中许多对象在运行时会出现两种类型:运行时类型(RTTI)和编译时类型,例如Person p = newStudent();这句代码中p在编译时类型为Person,运行时类型为Student。程序需要在运行时发现对象和类的真实信心,而通过使用反射程序就能判断出该对象转载 2019-03-15 16:09:12 · 158 阅读 · 0 评论 -
JVM 类加载机制
学习导图:类加载机制概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制 特性:运行期类加载。即Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,从而通过牺牲一些性能开销来换取Java应用极高的的扩展性和灵活性。什么是运行期,什么是编译期?编译期是指编译器将源代码翻译为机器能识别的代码,Java被编译为Jv...原创 2022-03-10 00:08:45 · 985 阅读 · 0 评论 -
JVM 垃圾收集器
如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。《Java虚拟机规 范》中对垃圾收集器应该如何实现并没有做出任何规定,因此不同的厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别,不同的虚拟机一般也都会提供各种参数供用户根据自己的应用特 点和要求组合出各个内存分代所使用的收集器。 这里讨论的是在JDK 7 Update 4之后(在这个版本中正式提供了商用的G1收集器,此前G1仍处于实验状态)、JDK 11正式发布之前,Hot...原创 2022-03-03 01:51:10 · 362 阅读 · 0 评论 -
JVM-对象的创建、内存布局、访问定位
本文链接:https://blog.csdn.net/zqz_zqz/article/details/70246212对象结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构:对象头HotSpot虚拟机的对象头包括两部分信息:markword第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、G转载 2021-05-13 14:22:22 · 238 阅读 · 0 评论 -
JVM垃圾回收算法
Java是一门不用程序员手动管理内存的语言,全靠JVM自动管理内存,既然是自动管理,那必然有一个垃圾内存的回收机制或者回收算法。在Java堆上分配一个内存给实例对象时,此时在虚拟机栈上引用型变量就会存放这个实例对象的起始地址。当执行Object obj = null 时,栈中的obj变量就不在指向堆中的实例对象了,也就是Java堆上的实例对象无法再次引用它,那么它就是被GC的对象,我们称之为对象“已死”。那虚拟机栈上的obj变量呢?上文《JVM入门——运行时数据区》提到过,虚拟机栈是线程独占的.原创 2021-09-17 18:00:02 · 183 阅读 · 0 评论 -
内存泄露与内存溢出的区别及解决方法
内存溢出与泄露的区别内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out of memory!内存溢出就是你要求分配的内存超出了系统能给你的...原创 2021-09-15 17:04:29 · 4472 阅读 · 0 评论 -
JVM参数配置
常见配置汇总堆设置-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5-XX:MaxPermSize=n:设置持转载 2021-09-15 14:04:10 · 184 阅读 · 0 评论 -
JVM堆内存(heap)
堆的核心概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大1块内存空间。堆内存的大小是可以调节的。-Xms、-Xmx表示初识堆空间大小和最大堆空间大小。 《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer, TLAB) 。 《Ja转载 2021-09-14 11:13:48 · 2330 阅读 · 1 评论 -
JVM 内存结构
内存结构转载 2021-09-10 14:46:30 · 141 阅读 · 0 评论