JVM
文章平均质量分 62
烟锁迷城
这个作者很懒,什么都没留下…
展开
-
JVM基础(五)JVM参数
1、JVM参数 标准参数:java -version就是标准参数 -X参数:java -Xint -version将显示变为解释执行 -XX参数:-XX:[+/-],意思是开启或关闭,如-XX+UseG1GC。-XX:<name>=<value> ,如-XX:InitialHeapSize=100M 其他参数:-Xms100M就等同于:XX:InitialHeapSize=100M 2、JVM命令 jps:当前的java进程,输入jps可查看所有java进程,jps -l可原创 2021-07-30 00:13:35 · 163 阅读 · 0 评论 -
JVM基础(四)GC(垃圾回收机制)
1、判断垃圾的标准 引用计数:可以通过判断一个对象被引用的次数来决定这个对象是否可以被回收,但这种判断具有缺点,如果一个对象和另一个对象互相引用,即循环引用,这就导致这个对象永远不可能被回收。 可达性分析:由GC Root开始寻找某个对象是否可达,即无论是间接引用还是直接引用,都可以到达某个对象,证明这个对象仍在使用。这对于GC Root提出了较高要求,适合成为GC Root的对象有:类加载器,Thread,本地变量表,static成员,常用引用,本地方法栈中的变量。 2、垃圾回收算法 标记清除:标记原创 2021-07-27 00:26:19 · 116 阅读 · 0 评论 -
JVM基础(三)JVM内存模型
1、Young区 刚刚创建的对象会被分配到Young区,每经过一次GC,年龄就增加一,等到年龄到达一个临界值的时候,就会被分配到Old区,在默认情况下,这个分界线是15。 除了GC年龄,大对象也会因为存储问题直接被分配到Old区。 2、Eden区,Survivor区 因为新对象会被分配到Young区,可能导致空间紧张,需要进行垃圾回收,这时就会造成磁盘碎片,存储空间变得不连贯,导致一个本来可以存储的对象因为磁盘碎片无法存储,再次触发GC。 为了减少GC次数,将Young区划分为Eden区和Su..原创 2021-07-20 23:07:42 · 181 阅读 · 0 评论 -
JVM基础(二)数据区
1、方法区(Method Area) 方法区是各个线程共享的内存区域,在虚拟机启动时创建,因此在方法区内的数据线程不安全。 用于存储已经被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。 java虚拟机规范把方法区描述为堆的一个逻辑部分,但它别名非堆(Non-Heap),木齐市与java堆区分开。 当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 方法区在Java8中被称为Meta Space(元空间),在Java7,6中被称为Perm Space(永久代)原创 2021-07-19 00:44:49 · 164 阅读 · 1 评论 -
JVM基础(一)类加载机制
1、类加载机制 类加载机制就是class装载到JVM的过程,可以划分为装载,链接,初始化三个阶段。链接都包含验证,准备,解析三个步骤。 1.1、装载 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口 1.2、链接 验证:保证被加载类的正确性,进行文件格式验证,元数据验证,字节码验证,符号引用验证 准备:为类的静态变量分配内存,并将其原创 2021-07-16 00:53:50 · 77 阅读 · 0 评论