深入理解Java虚拟机(2)
2019独角兽企业重金招聘Python工程师标准>>>
1、GC过程
2、对象已死判断算法
3、对象的引用:
4、垃圾收集算法
补充堆中区域划分
5、垃圾收集器
Parallel Scavenge:吞吐量优先收集器,与ParNew区别在于多了自适应调节策略
CMS:以获取最短回收停顿时间为目标的收集器,是基于标记-清除算法实现的收集器。
补充两个概念:
并行(Parallel):指多个垃圾收集线程工作、但此时用户线程仍然处于等待状态。
并发(ConCurrent):指用户线程与垃圾收集线程同时执行。
6、内存分配过程
一般过程:
1、TLAB((Thread Local Allocation Buffer))
2、优先堆新生代eden区
3、大对象进入堆老年代
4、新生代GC(Minor GC)发生,存活对象则优先新生代Survivor区,若存活对象大于Survivor区,则通过担保机制进入老年代。
1)默认新生代Eden、Survivor比例是多少?
-8:1,整个新生代包括Eden区和2个Survivor区,也就是如果新生代共10M,则Eden分配8M,2个Survivor各为1M。
-XX:SurvivorRatio=8设置比例值。
2)新生代GC和老年代GC的有啥不一样?
-新生代GC发生频繁,速度快。
-新生代GC采用复制算法,老年代GC采用标记整理算法。
3)新生代Survivor区的对象如何进入老年代?
-Survivor存活年龄(新生代GC一次,年龄+1)大于MaxTenuringThreshold值。
-相同年龄的对象之和大于Survivor大小的一半。
转载于:https://my.oschina.net/u/2526015/blog/860849
深入理解Java虚拟机(2)相关推荐
- mysql种编译码写在哪_深入理解Java虚拟机(程序编译与代码优化)
对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化.本文就从虚拟机层面来看看虚拟机对我们所编写的代码采用了哪些优 ...
- 《深入理解Java虚拟机》(第二版)学习3:垃圾收集器
垃圾收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. 我们这里讨论的收集器主要是基于JDK 1.7 Update 14之后的 Hotspot VM . Serial 收 ...
- JAVA好书之《深入理解Java虚拟机》
最近打算做好现有工作的前提下,扎实一下自己专业的技术知识,并将相关的经典书也记录一下.今天看了一些JVM相关的知识,这里面的经典是<深入理解Java虚拟机>,适合有点基础又想深入理解其中原 ...
- 深入理解Java虚拟机-如何利用 JDK 自带的命令行工具监控上百万的高并发的虚拟机性能...
虚拟机系列文章 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析 深入理解 Java 虚拟机(第二弹) - 常用 vm 参数分析 深入理解 Java 虚拟机-如何利用 Visual ...
- 深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
来自:好好学Java 虚拟机系列文章 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析 深入理解 Java 虚拟机(第二弹) - 常用 vm 参数分析 深入理解 Java 虚拟机- ...
- 深入理解 Java 虚拟机(第二弹) - 常用 vm 参数分析
来自:好好学java 话不多说,今天就分析一下一些常用的Java虚拟机的参数设置,以及如何更好的使用! 1 JVM参数简介 首先想说的是其实这些参数我们并不是陌生的,在平时的开发和使用中经常都会遇到, ...
- 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析
来自:好好学java 这篇文章主要介绍Java内存区域,也是作为Java虚拟机的一些最基本的知识,理解了这些知识之后,才能更好的进行Jvm调优或者更加深入的学习,本来这些知识是晦涩难懂的,所以希望能够 ...
- 深入理解java虚拟机之类文件结构以及加载
我们都知道,java是一种平台无关的语言.java代码通过java编译器(如javac等),将.java文件编译成字节码,也就是.class文件.字节码是运行在jvm虚拟机之上的.而不同的平台则 有不 ...
- 深入理解java虚拟机(7)---线程安全 锁优化
关于线程安全的话题,足可以使用一本书来讲解这些东西.<Java Concurrency in Practice> 就是讲解这些的,在这里 主要还是分析JVM中关于线程安全这块的内容. 1. ...
- 怎么把虚拟机清空内存_深入理解java虚拟机1——内存管理机制与回收机制
文中涉及JVM底层知识大多来自<深入理解Java虚拟机>第2版,内容枯燥乏味,如果看,认真看.跟着撸一遍也可以受益良多. 1.JVM:是运行在操作系统之上的,它与硬件没有直接的交互. 运行 ...
最新文章
- Nodejs核心模块之net和http的使用详解
- 为什么阿里巴巴不建议boolean类型变量用isXXX?
- 使用LWA和Lync模拟外部测试无边缘单前端环境
- kafka java api 删除_使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)...
- android volley 上传图片 和参数,Android使用Volley实现上传文件功能
- web加减乘除法c#_C#的加减乘除的问题
- 转载,点评:使用开源软件设计、开发和部署协作型 Web 站点
- 加性噪声--传递概率密度函数=噪声概率密度函数
- UOS统信系统任务栏不见解决方案
- [Minitab]如何製作柏拉圖(Pareto chart)?
- 万豪国际集团推出“双十一”多样化旅行套餐产品
- 第七届泰迪杯挑战赛C题
- 调频电视发射机工作原理
- 请问外贸独立站靠谱的收款工具有哪些,求推荐!?
- 用nodejs写一个命令行应用-前言
- 怎么运行python外星人入侵_Python入门项目:外星人入侵
- (Java高级程序设计-案例)-通过JDBC连接MySQL并对表进行增、删、改、查
- js定时器实现右下角弹窗广告缓慢弹出
- 这本书,豆瓣评分9.3,送给大家!
- C. Basketball Exercise dp
热门文章
- javaweb学习总结(三十一)——国际化(i18n)
- 别为了学编程而学编程
- OpenCV中Mat类的图像如何设置ROI
- 循环神经网络教程Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs
- 用Maven构建Mahout项目
- 我犯了一个错误,您能指出吗?(结论)
- python正则表达式--分组、后向引用、前(后)向断言
- complete_code_Chapter2
- Ambrosus宣布推出用于Web Apps、iOS、Android的源代码开发套件
- 找到 mysql 数据库中的不良索引