摘要: 垃圾收集(Garbage Collection,GC)需要考虑3件事: 1、哪些内存需要回收 2、什么时候回收 3、如何回收 Java内存运行时区域中,程序计数器、虚拟机栈、本地方法栈3个区域生命周期与线程相同,这几个区域的内存分配和回收都具备确定性,不需要考虑回收的问题,在方法结束或线程结束后内存 阅读全文
posted @ 2019-07-10 20:23 浮音 阅读(134) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机的执行引擎输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 1、运行时栈帧结构 栈帧是JVM的虚拟机栈中的结构,存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 阅读全文
posted @ 2019-07-08 23:34 浮音 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 记录下常用的IDEA快捷键,忘记的时候便于查询。 1、常用的快捷键 Ctrl + W 选择单词然后语句 Ctrl + Shift + Insert 选择剪切板内容并插入 Alt + Insert 生成构造器/getter/setter等 Alt + Enter 导入包或自动修正 Ctrl + Alt 阅读全文
posted @ 2019-07-02 00:00 浮音 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Java提出了"一次编写,到处运行"的口号,同一份程序可以在不同的平台上运行,实现语言无关性的基础是虚拟机和字节码存储格式,Java虚拟机不和包括Java在内的任何语言绑定。根据《深入理解Java虚拟机》中的内容,下面以《Java虚拟机规范(第2版)》,对应JDK1.4的Java虚拟机说明类文件的结 阅读全文
posted @ 2019-07-01 23:50 浮音 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 虚拟机把Class文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是JVM的类加载机制,其中的Class文件除了存于磁盘中的文件,以其他形式存在也可以,具体指一串二进制的字节流。 1、生命周期 类从被加载到虚拟机内存到卸载出内存, 阅读全文
posted @ 2019-06-28 23:28 浮音 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 最近看了《深入理解Java虚拟机》,把其中重要的知识点记录下来。 1、运行时数据区 在Java虚拟机中有下面几个运行时数据区:虚拟机栈、本地方法栈、程序计数器、方法区、堆。 1.1程序计数器 当前线程执行字节码的行号指示器。Java虚拟机的多线程是通过线程轮流切换获取内核资源执行的,对于同一个内核, 阅读全文
posted @ 2019-06-15 15:05 浮音 阅读(134) 评论(0) 推荐(0) 编辑