深深受 Emacs 组合键的影响,在编辑的时候使用组合键快速移动,而不比像 VIM 需要切换模式,但不得不吐槽 Emacs 的插件安装那个叫恶心,所以尝试了新生代产品 Sublime,但是还是离不开 Emacs 组合键的思想,所以将几个常用的组合键在 Sublime 中进行了重新绑定,真实愉快的不得 ...
分类:
其他好文 时间:
2017-04-23 17:59:32
阅读次数:
173
01)Serial 是历史悠久的收集器,在垃圾回收期间或中断用户线程,适合于单个CPU,单线程的情况下面,如果在桌面运行程序下面 即Client模式下面虚拟机来说是一个很好的选择,因为停顿时间很小。是新生代收集器 02)ParNew收集器 ParNew 是Serial的多线程版 是新生代收集器 公用 ...
分类:
其他好文 时间:
2017-04-16 17:43:12
阅读次数:
165
JVM垃圾收集算法有引用计数、标记-清除(mark-sweep)(主要用于老年代),复制(copying)(主要用于新生代),标记-整理(mark-compact)(主要用于老年代),分代收集算法,我们分别介绍 1、引用计数: 原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的 ...
分类:
编程语言 时间:
2017-04-15 17:56:59
阅读次数:
175
判断对象是否存活 无用的类标准 垃圾收集算法:标记-清除算法(CMS)、复制算法(新生代)、标记整理算法 HotSpot算法 没有为所有指令都生成OopMap,程序并发所有地方都能停下来执行GC,只有到了安全点才能暂停 主动式中断:GC需要中断线程时,设置一个标志,线程执行时主动去轮询这个标志,再中 ...
分类:
其他好文 时间:
2017-04-15 14:50:30
阅读次数:
154
Java内存分配和回收,主要就是指java堆的内存分配和回收。java堆一般分为2个大的区域,一块是新生代,一块是老年代。在新生代中又划分了3块区域,一块eden区域,两块surviver区域。一般称为from surviver和to surviver。这些区域的大小可以自己指定。比如:(-Xms2 ...
分类:
编程语言 时间:
2017-04-11 14:38:07
阅读次数:
206
1、io/nio2、多线程3、集合、线程安全的集合(vector,statck,hashTable,concurrentHashMap)4、类的加载顺序,静态块 构造函数 静态方法的加载顺序5、jvm6、gc,g1(新生代老生代的判断依据,实现原理 http://www.360doc.com/con ...
分类:
编程语言 时间:
2017-04-11 13:15:54
阅读次数:
135
1)合理配置参数 jvm内存=堆内存+非堆内存 堆内存=新生代+年老代 新生代=1个Eden区+2个survivo区 非堆内存=持久代+代码缓存 -server:服务器模式,该参数放置在配置项的首位置 -Xms:堆的初始大小,单位MB 配置-Xms与-Xmx一致,为可用内存的80% -XmX:堆的最 ...
分类:
其他好文 时间:
2017-04-08 21:33:33
阅读次数:
305
堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示: 新生代。新建的对象都是用新生代分配内存,Eden空间不 ...
分类:
其他好文 时间:
2017-04-05 01:06:53
阅读次数:
231
分代垃圾回收,基于的是“大部分的对象,在生成后马上就会变成垃圾”这一经验上的事实为设计出发点。此前讨论过基于引事实的另一个垃圾回收算法,引用计数出的一些优化思路。 分代的关键是: 分代垃圾回收的典型是Ungar的分代垃圾回收。 它将堆分成如下形式: 如上,分成新生代与老年代。 在新生代内,又分成了生 ...
分类:
编程语言 时间:
2017-04-02 22:01:03
阅读次数:
310