![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA优化
文章平均质量分 71
弥熏
菜鸟开发
展开
-
JAVA引用 从零开始的内存释放学习
JAVA引用 从零开始的内存释放学习当计算机内存被过多无用代码占用时,我们可以通过释放内存这种形式来节省java 程序运行时所占用的内存。但是,这样就存在一个弊端。因为并不是电脑内存越空旷我们的程序就跑的越快。用简单的方法想,就是你实例化类以后。将该类内存释放,然后内存就空了一块。但是你如果还需要继续使用该类的方法就又要重新实例化该类,所以就需要我们要自己判断需不需要释放掉某个类的内存。原创 2017-09-06 16:15:10 · 1464 阅读 · 0 评论 -
JVM运行时数据内存区域划分笔记
JVM运行时数据内存区域划分运行时数据区域 是java启动时在计算机内存中的数据区域运行时数据区域会把计算机内存进行划分分为以下几种内存区域1.程序计数器 Program Couter Register 2.java 堆 Java Heap(Heap)3.虚拟机栈 VM Stack (Stack)4.方法区 Method Area (Stack)5.本地方法栈 Native Method Stac...原创 2018-04-11 10:04:27 · 269 阅读 · 0 评论 -
OOM是什么?笔记
OOM(Out Of Menmory Error)JAVA虚拟机中 除程序计数器意外 虚拟机的内存其他几个运行时区域都有发生OOM的可能Java 堆溢出GC Roots 到对象之间有可达路径来避免垃圾回收机智清理这些对象 就会在对象数量达到最大堆的绒容量 然后产生内存溢出异常Eclipse 的 Debug 页面中设置虚拟机参数代码:-verbose:gc -Xms20M -Xmx20M Xmn10...原创 2018-05-02 17:34:29 · 7430 阅读 · 0 评论 -
JVM垃圾收集 GC 简介
垃圾收集 GC (Gardage Collection)程序计数器 虚拟机栈 本地方法栈 随进程而生 随进程而灭GC在对堆进行回收钱第一件事是要确定这些对象哪些还在“存活”状态而哪些已经“死去”(不能在被引用的对象)引用计数法很多判断对象是否存活的算法是这样的 在对象中添加一个引用计数器 没当有一个地方引用时 计数器 +1 当失效时 -1 任何时刻计数器都为0 的对象是不可能在被使用的GC不是通过...原创 2018-05-02 17:35:12 · 101 阅读 · 0 评论 -
JAVA对象访问
对象访问Object obj = new Object();Object obj 的语义会映射到java栈的本地变量表中 作为一个 reference(引用) 类型数据出现而 new Object() 这部分语义将会反映到java堆中形成一块存储了Object类型所有数据值(Instance Date)的结构化内存 根据具体类型以及虚拟机实现的对象内存布局 (Object Memory Layou...原创 2018-05-02 17:36:12 · 234 阅读 · 0 评论 -
JVM GC的垃圾收集器
垃圾收集器JVM 虚拟机没有提供的垃圾回收规范 所以各种虚拟机提供的垃圾收集器都不一样 这里我们讨论 Sun HotSpot虚拟机1.6版的Update 22 Update22 虚拟机有一以下几种垃圾收集器1.Serial 收集器2.ParNew 收集器3.Parallel Scavenge 收集器4.Serial Old 收集器5.Parallel Old 收集器6.CMS 收集器7.G1 收...原创 2018-05-03 19:01:34 · 159 阅读 · 0 评论 -
GC垃圾收集算法
垃圾收集算法标记 - 清除算法 (Mark Sweep)最基础的垃圾收集算法 该算法分为 标记和清除 两个阶段 首先标记处所有需要回收的对象 在标记完成后 统一回收掉被标记的对象标记清除法的缺点 效率不高 标记清楚后会产生大量不连续的内存碎片复制算法 复制算法将内存按照容量划分为大小相等的两块 每次只使用其中一块 当这块内存用完了就还将存活着的对象复制到另一块上面 再把已经使用过的内存一次清理掉现...原创 2018-05-02 18:04:50 · 105 阅读 · 0 评论