JVM
文章平均质量分 78
一洛
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记一 之 GC
一、GC分类 串行、并行、并发 二、判断对象是否存活一般有两种方式: 引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单, 无法解决对象相互循环引用的问题。 可达性分析(Reachability Analysis):从GC Roots开始向下搜原创 2017-09-27 14:13:11 · 197 阅读 · 0 评论 -
JVM学习笔记一 之 ClassLoader
一、.类加载器所做的工作实质上是把类文件从硬盘读取到内存中 二、java的类大致分三中:系统类、扩展类、自定义类 三、类加载方法两种: 1.隐式装载,程序在运行过程中碰到new等方式生成对象时,隐式调用类加载器加载对应的类到JVM中 2.显示装载,通过class.forName()等方法,显示加载需要的类 四、类加载有3种:bootstrap-Class原创 2017-09-27 15:01:19 · 204 阅读 · 0 评论 -
JVM学习笔记一 之 内存泄露与内存溢出
内存溢出(memory overflow):程序运行过程中无法申请到足够的内存而导致的一种错误。垃圾回收后,仍然无内存空间容纳新的Java对象的情况。 内存泄露(memory leak):内存申请后,用完没有释放,造成可用内存越来越少,从而降低性能。即被分配的对象可达但已无用 从定义上可以看出内存泄露是内存溢出的一种诱因,不是唯一因素。 可能发生内存溢出情况例子:转载 2017-10-11 09:12:38 · 231 阅读 · 0 评论 -
JVM学习笔记一 之 调优
一.根据Java虚拟机规范,JVM将内存划分为: 1.New(年轻代) 2.Tenured(年老代) 3.永久代(Perm)(备注:jdk1.8之后 改为元本地元空间) 其中,New和Tenured属于堆内存。-xmx:指定jvm堆内存最大值,-xms:jvm堆初始化值。 永久代,Perm(非堆)不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX转载 2017-10-11 13:54:53 · 224 阅读 · 0 评论 -
JVM学习笔记一 之 内存结构
JVM内存结构jvm内存结构:堆、方法区、Java栈(虚拟机栈)、本地栈、PC寄存器 堆: 线程共享。存放对象实例(new、数组)。堆耗尽的时候,JVM会抛出java.lang.OutOfMemoryError 异常。堆的大小可以通过JVM选项-Xms和-Xmx来进行调整。分为:新生代、老年代、持久代. 注意: 持久代-JDK1.8将换成元空间新生代: Eden区、from Surviv原创 2017-09-27 13:46:49 · 263 阅读 · 0 评论