程序计数器 虚拟机栈 本地方法栈 堆 (新生代和老生代) 新生代(eden,two survivor) 老生代(永久代(现在变成元数据)) 元数据->类的字节流,常量,静态方法 (metaSpace的默认值在64位中20.75M)当第一次满的时候回触发GC; GC的算法: 引用计数法,标识清理法,复 ...
分类:
其他好文 时间:
2020-03-17 19:24:31
阅读次数:
72
1.内存模型以及分区。 内存模型主要由方法区、堆、栈、本地方法栈、程序计数器。 方法区:供各线程共享的运行时的内存区域。存储了类信息,运行时常量池等,还存放static变量。 堆:通过new关键字,创建对象都会使用到堆内存。存放所有new出来的对象,只保存对象本身,不保存对象的引用。 栈:程序运行时 ...
分类:
其他好文 时间:
2020-03-12 18:45:22
阅读次数:
71
首先要说一下JVM内存空间分为五部分,分别是:方法区、堆、Java虚拟机栈、本地方法栈、程序计数器 方法区主要用来存放类信息、类的静态变量、常量、运行时常量池等,方法区的大小是可以动态扩展的, 堆主要存放的是数组、类的实例对象、字符串常量池等。 Java虚拟机栈是描述JAVA方法运行过程的内存模型, ...
分类:
其他好文 时间:
2020-03-07 12:58:31
阅读次数:
60
线程池: 线程池的好处:线程使应用能更加充分利用CPU、内存、网络、IO等系统资源。线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等线程私有的内存空间。 在线程销毁时需要回收这些系统资源。因此频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程风险。另外,在服务器负载过大的时候,如何让新的线程 ...
分类:
编程语言 时间:
2020-03-05 22:14:22
阅读次数:
85
JVM结构 JVM是 Java Virtual Machine的简称,意为Java虚拟机 。是Java可以在不同平台保证编译运行程序的保证。主要分为五大模块: 类装载器子系统 、 运行时数据区 、 执行引擎 (堆操作)、 本地方法接口 (对接本地方法栈)和 垃圾收集模块 (GC操作)。 类装载器子系 ...
分类:
其他好文 时间:
2020-02-25 12:48:54
阅读次数:
94
https://juejin.im/post/5a15be736fb9a044fc4464d6 jvm jvm把内存分为 1.方法区(Method Area) 2.堆区(Heap) 3.虚拟机栈(VM Stack) 4.本地方法栈(Native Method Stack) 5.程序计数器(Progr ...
分类:
其他好文 时间:
2020-02-23 09:15:59
阅读次数:
51
[toc] JVM的内存结构一般指Java的运行时数据区: 由方法区,堆区,虚拟机栈,程序计数器和本地方法栈组成。下面我们依次介绍这5部分。 1.程序计数器(Program Counter Register) 程序计数器:记录下一条要执行的JVM指令的执行地址,字节码解释器工作时就是通过改变程序计数 ...
分类:
其他好文 时间:
2020-02-19 17:34:45
阅读次数:
77
1.如何判定对象为垃圾对象 1.1引用计数法 1.2可达性分析 作为GCROOT的对象 虚拟机栈 本地方法区的类属性所引用的对象 方法区中常量所引用的对象 本地方法栈中引用的对象 2.如何回收 2.1回收策略 1.标记-清除算法 通过可达性分析法标记-->清除 缺点:效率较低、空间问题(出现很多不连 ...
分类:
编程语言 时间:
2020-02-14 22:59:48
阅读次数:
135
参考1 参考2 1.线程独占区 1.1程序计数器 1.2Java虚拟机栈 递归调用方法本身的时候,没用递归出口,就会出现stackOverFlow。 1.3本地方法栈 2.线程共享区 2.1Java堆 2.2方法区 运行时常量 ...
分类:
编程语言 时间:
2020-02-13 13:23:35
阅读次数:
63
VM 中文名java虚拟机,是用来运行java程序的一个平台,这篇文章 主要讲述 JVM的内存模型。 首先JVM将内存划分为了5大块,如下图所示: JVM内存模型 这5大块可以分为 两大类,分别是 线程私有的,和 线程共享的 线程私有的 虚拟机栈,本地方法栈,程序计数器 这块区域的数据是每个线程私有 ...
分类:
其他好文 时间:
2020-02-12 18:04:33
阅读次数:
52