开头的数字代表了GC发生的时间,也就是从java虚拟机启动以来经过的秒数 GC日志开头的[GC和[FULL GC说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。如果有FULL,说明这次GC是发生了Stop-The-World的。如果是调用了System.gc()触发的收集,则 ...
分类:
其他好文 时间:
2019-09-06 00:59:51
阅读次数:
96
GC回收算法 什么是垃圾? 类比日常生活中,如果一个东西经常没被使用,那么就可以说是垃圾。 同理,如果一个对象不可能再被引用,那么这个对象就是垃圾,应该被回收。 垃圾:不可能再被引用的对象。 finalize方法 在对象没有被引用时调用 在Object类里定义 新生代与老年代 IBM公司的研究表明, ...
分类:
编程语言 时间:
2019-09-01 16:35:45
阅读次数:
72
前言 上一篇中,我们了解了JVM中的线程独占区,这节课我们就来了解一下JVM中的线程共享区,JVM中的线程共享区是跟随JVM启动时一起创建的,包括堆(Heap)和方法区()两部分,而线程独占区的程序计数器,虚拟机栈,本地方法栈的生命周期都是跟随线程的,随线程的创建而诞生,随线程的销毁而销毁。 堆(H ...
分类:
编程语言 时间:
2019-08-29 09:14:48
阅读次数:
97
各方面无形的压力都在慢慢靠近,大环境下 社会老年人已经达到2.5亿;贫富差距虽然新闻报道再慢慢缩小 但是还是很明显的差距啊。 有的人买件衣服就花几万,有的人连肉都吃不起。这些事情都是真实存在的啊,2019年了它也是存在的! 对于我个人而言,长远目标是实现自己制定的第一个“五年计划”,实现全家脱贫,实 ...
分类:
其他好文 时间:
2019-08-28 19:57:11
阅读次数:
159
1、标记-清除算法 最基础的收集算法、主要对内存中的不使用的内存标记为可回收状态,进行回收 缺点: 标记、回收效率不高还会导致内存分配不够连续,容易触发新生代垃圾回收 2、复制算法 讲可用内存分为两部分,每次只是用一部分,当其中一部分内存使用完之后,就将存活的对象复制到另外一块,然后对已使用的进行清 ...
分类:
编程语言 时间:
2019-08-27 17:41:25
阅读次数:
90
我从未想过,一个仅仅快三十的年轻人,会得痛风。 我以为这种病是老年人的专属,如老花眼、风湿,没想到我竟然提前体验了那种灵魂都在颤栗的痛楚。 难道三十已经不算年轻人? 初现端倪是在上周日,那天晚上突然觉得左脚脚趾有些酸痛,只不过没有在意,觉得这只不过是许久不动的酸麻,当时还兴冲冲地泡了碗鲜虾面吃。 到 ...
分类:
其他好文 时间:
2019-08-26 00:34:34
阅读次数:
80
一、起源 1960年Lisp语言: 第一门真正使用内存动态分配和垃圾回收的语言。 二、概要 线程相关:程序计数器、虚拟机栈、本地方法栈,不需要考虑垃圾回收 Java堆、方法区:需要考虑垃圾回收 三、垃圾回收算法 1 引用计数算法 2 可达性分析算法 垃圾收集算法 1 标记-清除算法 Mark-Swe ...
分类:
编程语言 时间:
2019-08-23 22:12:47
阅读次数:
122
《深入理解 Java 虚拟机》学习 垃圾回收算法 1. 说明 程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭,这几个区域的内存分配和回收都具备确定性 Java 堆和方法区这部分内存的分配和回收都是动态的,垃圾收集器所关注的是这部分内存 新生代和老年代 Java 中的堆是 JVM 所管 ...
分类:
编程语言 时间:
2019-08-23 13:20:24
阅读次数:
83
前言:新生代的收集器有:Serial,ParNew,Parallel Scavenge等。老年代有:CMS,SerialOld,Paraller Old等。接下来将深入理解各个垃圾收集器的原理,以及它们如何在不同场景下进行搭配使用。 同时,先解释几个名次: (一) 新生代的收集器们 (1) ParN ...
分类:
其他好文 时间:
2019-08-19 18:54:40
阅读次数:
85
JVM参数: 1)-Xmn: 新生代内存上限值 2)-Xms: 整个堆区初始内存分配的大小 3)-Xmx: 堆区内存的最大分配大小 4)-XX:SurvivorRatio: 决定eden与一个survivor大小之比 5)-XX:PretenureSizeThreshold: 大对象直接放入老年代, ...
分类:
其他好文 时间:
2019-08-16 17:13:15
阅读次数:
84