![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
垃圾继承拖拉机
押井守的巴吉度犬被我偷走辣
展开
-
JAVA 中的解释器与编译器
Java编译器: JAVA编译器(javac.exe)的作用是将java源程序编译成中间代码字节码文件,是最基本的开发工具。编译时首先读入java源程序(即在MS-DOS命令行下键入javac HelloWorld.java等文件名参数和其他选项参数),然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成中间代码即字节码,字节码文件名和源文件名相同,扩展名为.class。(百度百科的解释)注:这里的javac编译器可称为前端编译器,具体可看深入理解java虚拟机第二版P30...原创 2020-11-18 01:11:04 · 2129 阅读 · 0 评论 -
JVM参数类型与一些工具的使用
前言jvm的参数类型分为三类,分别是:标准参数 例如:-help -version-X参数 (非标准参数) 例如:-Xint -Xcomp-XX参数(使用率较高) 例如:-XX:newSize -XX:+UseSerialGC标准参数用java -help 检索出所有的标准参数。例一,通过java -version查看jvm版本例二,通过-D设置系统属性参数publicclassTestJVM{publicstaticvoidmain(Stri...原创 2020-11-16 12:22:23 · 149 阅读 · 0 评论 -
深入理解java虚拟机--第七章读书笔记
类加载机制类从被加载进虚拟机内存,到卸载出内存为止,整个生命周期包括七个阶段。加载,验证,准备,解析(三个阶段称为连接)初始化,使用,卸载加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定。它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。注意,这里笔者写的是按部就班地“开始”,而不是按部就班地“进行”或“完成",强调这点是因为这些阶段通常...原创 2020-07-30 23:42:15 · 170 阅读 · 0 评论 -
深入理解java虚拟机--第六章读书笔记
Class文件是以8进制文件为基础单位的二进制流,在class文件中各种数据排列,没有任何分隔符。类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型,无符号数和表。无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成字符串值。表是由多个无符号数或者其他表作为数据项构成的复合数据类型,所有表都习惯性地以“info"结尾。表用于描述有层...原创 2020-07-30 23:40:52 · 137 阅读 · 0 评论 -
深入理解java虚拟机--第三章读书笔记
判断对象已死的算法引用计数法给对象添加一个引用计数器,该对象被引用时计数器数值+1,引用失效时数值-1,计数器为零的对象可认为该对象不会被使用。该算法不能解决对象相互引用带来的问题。2,可达性分析算法 GCroot的对象包括四种: 虚拟机栈中引用的对象 方法区中类静态属性引用的对象 方法区中常量引用的对象 本地方法栈中JNI引用的对象 以GC ROOT作为起点,向下搜索,搜索过的路径称为...原创 2020-07-30 23:39:08 · 196 阅读 · 1 评论 -
深入理解java虚拟机--第二章读书笔记
Java虚拟机运行时数据区有局部变量表中存储了各种基本数据类型(int float Boolean等),对象引用(reference类型)Hotspot虚拟机中将虚拟机栈和本地方法栈合二为一。堆中则存放了对象实例和数组。方法区存储了已经被虚拟机加载的类信息,常量,静态变量和即时编译器编译后的代码等数据。别名叫Non-Heap。Hotspot虚拟机的垃圾收集器可以像堆一样管理方法区的内存,故将方法区称为永久代。运行时常量池用于存放 class文件中 编译器生成的各种字...原创 2020-07-30 23:37:22 · 196 阅读 · 0 评论