垃圾收集GC(Garbage Collection)目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 引用计数收集器 引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象(不是
分类:
编程语言 时间:
2016-03-11 20:44:10
阅读次数:
190
程序的计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈侦随着方法的进入和退出而有条不紊地执行出栈和如栈操作。 判断对象是不是已经死亡的方法: 一、引用计数算法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对
分类:
编程语言 时间:
2016-03-10 23:29:22
阅读次数:
223
ParNew收集器其实就是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数,其中Par是Paralle简写l 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户
分类:
其他好文 时间:
2016-03-10 12:38:11
阅读次数:
119
个人觉得此话很有道理:任何与字符串相关的问题一定可以从字符串的属性里面的线索中找到。 为什么存储密码字符数组比字符串更合适? 1、因为字符串是不可变对象,如果作为普通文本存储密码,那么它会一直存在内存中直至被垃圾收集器回收。因为字符串从字符串池中取出的(如果池中有该字符串就直接从池中获取,否则new
分类:
编程语言 时间:
2016-03-09 10:33:09
阅读次数:
136
虚拟机在内存中申请一片区域,由虚拟机自动管理,用来满足应用程序对象分配的空间需求,即堆空间。 由于程序运行的局部特性,程序创建的大多数对象都具有非常短的生命周期,而程序也会创建一些生命周期特别长的对象。简单的复制收集器无论对象的 生命周期是长是短,都会进行复制操作。而生命周期较长的对象在多次垃圾回收...
分类:
编程语言 时间:
2016-03-04 22:31:19
阅读次数:
367
前言: 组成.Net平台一个很重要的部分----垃圾收集器(Garbage Collection),今天我们就来讲讲它。想想看没有GC,.Net还能称之为一个平台吗?各种语言虽然都被编译成MSIL,但是运行时的资源回收工作却“各自为战”,这样不但增加了编程难度,也会使内存管理工作变得复杂无比(不同语
分类:
Web程序 时间:
2016-03-03 10:15:28
阅读次数:
219
为什么要讨论这个问题呢? 在堆里面存放着java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。 下面有几种算法判断对象是否已经死去。(注意是判断对象是否可回收的算法,并不是回收算法) 1.引
分类:
其他好文 时间:
2016-03-02 01:40:34
阅读次数:
148
长期以来,大家在收集华为交换机日志是往往通过syslog协议转发的方式,将华为交换机日志转发到日志收集器上,简单存储,但这样并没有将日志标准化,也就是OSSIM中对日志的归一化处理,在《开源安全运维平台-OSSIM最佳实践》一书的第七章专门讲解了日志收集与插件的自定义,本..
分类:
其他好文 时间:
2016-02-28 17:03:03
阅读次数:
358
说明:本文主要参考自《分布式Java应用:基础与实践》 1、JVM的调优主要是内存的调优,主要调两个方面: 各个代的大小 垃圾收集器选择 2、各个代的大小 常用的调节参数 -Xmx -Xms -Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold -XX:Pe
分类:
其他好文 时间:
2016-02-08 21:13:37
阅读次数:
271
上一章记录了几种常见的垃圾收集器,见《第五章 JVM垃圾收集器(1)》 1、G1 说明: 从上图来看,G1与CMS相比,仅在最后的"筛选回收"部分不同(CMS是并发清除),实际上G1回收器的整个堆内存的划分都与其他收集器不同。 CMS需要配合ParNew,G1可单独回收整个空间 原理: G1收集器将
分类:
其他好文 时间:
2016-02-06 14:21:15
阅读次数:
133