JVM
文章平均质量分 82
iCoding91
KISS
keep it simple and short
展开
-
JVM源码分析之线程局部缓存TLAB
转自:http://www.kejixun.com/article/170523/330012.shtml介绍TLAB之前先思考一个问题: 创建对象时,需要在堆上申请指定大小的内存,如果同时有大量线程申请内存的话,可以通过锁机制或者指针碰撞的方式确保不会申请到同一块内存,在JVM运行中,内存分配是一个极其频繁的动作,这种方式势必会降低性能。 因此,在Hots转载 2017-06-19 22:36:29 · 783 阅读 · 0 评论 -
JVM笔记整理(第3章)
资料来源:《深入理解java虚拟机》本章主要讲解了三部分内容:1、如何判定一个java对象已经死亡(为垃圾收集做准备,因为对象死亡才能进行回收其对应的内存)。2、java对象死亡后,如何去回收内存。即为垃圾收集算法思想的讲解。同时讲解了算法对应的实现:即垃圾收集器,包括其对应实现的原理及其特征和适用场景。3、了解了1和2后,接下来要知道的就是:生成了一个java对象后,内存是怎么给原创 2017-07-07 09:53:22 · 305 阅读 · 0 评论 -
JVM笔记整理(第8章 虚拟机字节码执行引擎)
资料来源《深入理解java虚拟机》 整理到这这一章的时候,越来越觉得这本书在明年的春招前多看多理解几遍。内容真的很好很多,也是为以后的技术之路做好准备。 前一章讲解了类加载机制。那么把字节码加载到虚拟机以后,JVM该如何去执行呢?这就是这章要讲的内容。所谓执行字节码,其实就是执行程序中的一个个和业务相关的方法。我们都知道,每个java方法的执行,其实都对应着一个栈帧从入栈到出栈的过原创 2017-07-22 14:58:37 · 342 阅读 · 0 评论 -
JVM笔记整理(第9章 类加载及执行子系统的案例与实战)
参考资料:《深入理解java虚拟机》首先,这节内容是非常少的,主要是针对从源程序编译为.class文件,到加载到JVM运行过程中,人工可以干预哪些环节,以及对于干预的实例。 前言:在class文件格式和执行引擎这部分中,用户程序能干预到的非常少,比如文件格式存储必须是字节码格式是固定的,类何时加载,如何连接,已经JVM如何执行字节码指令等等,这些都是JVM自己去实原创 2017-07-27 21:48:56 · 381 阅读 · 0 评论 -
JVM笔记整理(第2章)
这一章主要有三部分内容:java虚拟机内存是如何划分的及划分后每部分都存放了哪些内容;其次,讲述了我们常用的虚拟机HotSpot,它里面是如何存储对象的;最后是,简单讲解了各个区域会产生的异常。 一、内存划分总的来说,java虚拟机运行时,内存数据区分为2类,包括线程私有区域和线程公有区域。公有区域有2个,包括:方法区、堆;私有区域有3个,包括:虚拟机栈、本地方法栈、程序计数器。接...原创 2017-07-04 23:27:44 · 321 阅读 · 1 评论 -
JVM笔记整理(第7章 虚拟机类加载机制)
资料来源:《深入理解java虚拟机》 这一章主要讲了2部分内容,其一是:类加载的整个过程。其二,几种类加载器及其工作原理。其实这一章的内容还是比较少而且简单的。 1、综述 1.1、首先,要对类加载机制有个整体上的认识。概括的说就是:虚拟机将class文件中描述类的数据加载到内存当中,并对数据进行校验、转换解析、初始化,最终形成可以被虚拟机直接使用的java类型。原创 2017-07-19 22:50:38 · 355 阅读 · 0 评论 -
JVM笔记整理(第6章)
资料来源:《深入理解java虚拟机》 好久没写了,最近在忙点其他的东西,好在JVM终于是看完第一遍了,赶紧整理总结。 本章节主要讲2部分内容:(1).class文件结构。(2)虚拟机字节码指令:用于解析执行.class文件。通过这一章节的学习,我们就可以了解到为什么java语言是平台无关性的,还有java虚拟机本身在实现平台无关性和语言无关性中扮演了什么重要的角色。原创 2017-07-18 23:41:26 · 292 阅读 · 0 评论 -
JVM笔记整理(第1章)
本章有2个知识点需要掌握: 1、java语言的优点(4个):★摆脱了硬件平台的约束性。★提供了相对安全的内存管理和访问机制。★实现了热点代码检测和运行时编译及优化。★有一套完善的应用程序接口。 2、java技术发展趋势(个):★模块化。这是解决应用系统和技术平台越来越复杂、越来越庞大问题的一个重要途径。无论是开发人员还是产品最终用户,都不希望为了系统中一个小块的原创 2017-07-03 21:30:15 · 329 阅读 · 0 评论 -
Mac终端输入javap报错
1、报错内容: a、错误:找不到类 b、错误:找不到或无法加载主类2、原因:虽然idea里面编译过对应文件,但是终端输入javap时候,依然报错:a或者b,虽然已经进入了对应文件的路径下面。好像是Mac需要首先找到文件所做目录,然后在该环境下利用javac编译一下该.java文件;再运行javap命令查看该.java文件对应的class文件的字节码。原创 2017-06-22 10:26:15 · 1218 阅读 · 0 评论 -
JVM常用参数
JVM常用参数堆-Xms和—Xmx堆的最小值 & 堆的最大值默认值是物理内存的1/4(<1GB) & 默认值是物理内存的1/64(<1GB)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制;通常会将 -Xms 与 -Xmx两个参数配置相同的值,目的是为了能够在java垃圾回...原创 2018-10-03 14:02:36 · 751 阅读 · 0 评论