① 对象的内存分配,总体上讲就是在堆上分配,对象主要分配在新生代的Eden区,少数情况也会直接分配在老年代。分配的规则并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数配置。 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区分配。当Eden区 ...
分类:
其他好文 时间:
2019-10-08 22:22:17
阅读次数:
90
GC的收集器种类: 收集器存在连线的说明他们可以配合使用。 新生代垃圾收集器 1.串行GC(serial)垃圾回收器 单线程收集器,必须暂停所有的工作线程直到结束: 最古老,稳定效率高的垃圾回收器 对应的JVM参数是: -XX:+UseSerialGC 开启后会使用:Serial(Young区用) ...
分类:
其他好文 时间:
2019-10-06 13:31:58
阅读次数:
157
JVM平台上还可以运行其他语言,运行的是Class字节码。只要能翻译成Class的语言就OK了。挺强大的。 JVM厂商很多 垃圾收集器、收集算法 JVM检测工具 关于类的加载: Java代码中,类型(interface, class,enum等,有些是在运行时候生成的,比如动态代理)的加载、连接与初 ...
分类:
其他好文 时间:
2019-10-02 10:35:52
阅读次数:
87
垃圾收集器垃圾收集(Garbage Collection,GC)。当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统更高并发量的瓶颈时,我们需要去了解GC和内存分配。 检查对象的"存活"状态 虚拟机栈(栈帧中的本地变量表)中引用的对象; 方法区中静态属性引用的对象; 方法区中常量引用的对象; ...
分类:
其他好文 时间:
2019-09-30 23:56:47
阅读次数:
194
①:Serial(串行)收集器 最基本,历史最悠久的串行收集器,单线程组赛队列,jdk1.5之前默认的收集器。 优点:简单高效,没有线程交互的开销。 缺点:单线程,只会使用一个cpu/一条收集线程去完成垃圾收集。 对应算法:年轻代复制算法,老年代标记整理算法。 ②:ParNew收集器(Serial收 ...
分类:
其他好文 时间:
2019-09-27 01:11:55
阅读次数:
82
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们对各个收集器进行比较,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。试想一下:如果有一种四海之内、任何场景 ...
分类:
其他好文 时间:
2019-09-24 08:01:00
阅读次数:
106
贴个图 + Serial收集器 最简单的收集器,单线程,收集器会暂停用户线程,称为"stop the world"。 + ParNew收集器 Serial收集器的多线程版本,其它类似。默认线程数为CPU线程数,通过 XX:ParallelGCThreads=? 可以指定线程数 + Parallel ...
分类:
其他好文 时间:
2019-09-23 22:24:14
阅读次数:
135
先上个图 这是根据《Java虚拟机规范(第二版)》所画的jvm内存模型。 + 程序计数器:程序计数器是用来记录当前线程方法执行顺序的,对应的就是我们编程中一行行代码的执行顺序,如分支,跳转,循环,异常处理等。所以在多线程下,程序计数器必然是线程隔离的,每个线程都有自己独立的程序计数器。注意,Java ...
分类:
其他好文 时间:
2019-09-23 22:14:47
阅读次数:
117
目的:写给自己看的,不如其他大神全,以后慢慢修修改改 一:如何判断数据是否垃圾数据 1.引用计数法 当创建一个对象时,为此对象分配一个引用计数器。当有其他对象引用这个对象时,计数器就+1。当引用失效了,计数器-1。 当一个对象的引用计数器=0时,此对象就可以被回收。 优点:原理简单,实现方便。 缺点 ...
分类:
其他好文 时间:
2019-09-21 23:40:15
阅读次数:
125
记一次有关于Jvm垃圾收集器的整理 垃圾回收器 算法: 引用计数法 复制算法 标记清楚 标记整理 垃圾回收的方式 1、Serial:串行回收 2、Parallel:并行回收 3、CMS:并发标记清除 4、G1:G1 截止到java10 之后有ZGC Seial:串行垃圾回收,单线程垃圾回收的时候会停 ...
分类:
其他好文 时间:
2019-09-21 21:18:26
阅读次数:
102