摘要: 特别说明:本篇侧重理论,涉及的定义和结论,都是基于Java虚拟机规范定义或者由规范推导出来。因此学习本篇内容前,必须对虚拟机有深入的理解,特别是字节码指令部分。 1 Java内存模型背景 计算机为了弥补处理器与内存的访存速度差异,引入高速缓存,构成存储器层次结构(详情参考3、计算机系统漫游 。 带来 阅读全文
posted @ 2022-12-14 18:05 拿了桔子跑-范德依彪 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 特别说明: 本章内容基于HotSpot虚拟机: 编译器指HotSpot内置的即时编译器 虚拟机指HotSpot 机器码:能够被被当前机器直接执行的代码,机器属于某个平台:SPARC、x86-AMD64、ARMv8-AArch64 1 广义理解:解释执行与编译执行 阅读原文2天,我仍然没理解 什么是解 阅读全文
posted @ 2022-12-12 23:59 拿了桔子跑-范德依彪 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1 编译器分类 Java的编译过程:将源代码转化成机器可执行的二进制代码。实际上,编译过程,是分阶段进行的,由此产生了不同的编译器。 编译器分类: | 类别 | 工作内容 | 代表 | | | | | | 前端编译器 | 把源代码转变成字节码 | JDK的Javac、Eclipse编译器(ECJ) 阅读全文
posted @ 2022-12-08 17:29 拿了桔子跑-范德依彪 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 1 解释执行与编译执行 解释执行:通过解释器执行 编译执行:通过即时编译器产生本地代码(机器码)执行 虚拟机的执行引擎支持以上两种方式 java语言的编译及执行过程: C语言的编译过程: 2 基于栈/寄存器的指令集 基于栈的指令集架构:指令不带参数,使用操作数栈中的数据作为指令的运算输入,指令的运算 阅读全文
posted @ 2022-12-07 17:57 拿了桔子跑-范德依彪 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 1 动态/静态类型语言比较 | | 对比1 | 对比2 | 对比3 |举例 | | | | | | | | 动态 | 运行时进行类型检查 | 在运行期确定类型,灵活 | 变量无类型而变量值才有类型 |Groovy、JavaScript、Lua、PHP、Python| | 静态 | 编译时检查 | 编 阅读全文
posted @ 2022-12-06 17:58 拿了桔子跑-范德依彪 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 特别备注: 本章节内容我认为比较难理解,对于【编译、运行阶段方法选择分析】这部分内容还不是很理解,需要多次去理解消化todo 1 关于方法调用 javac编译后Class文件存储方法的符号引用,而不是直接引用(方法在实际运行时内存地址) 该特性给Java带来了更强大的动态扩展能力 方法调用阶段的任务 阅读全文
posted @ 2022-12-04 20:28 拿了桔子跑-范德依彪 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 1 初谈执行引擎 一、关于Java虚拟机和计算机系统层面的物理机 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力 物理机的执行引擎是直接建立在处理器、缓存、指令集(例如x86-64)和操作系统面上 虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引 阅读全文
posted @ 2022-12-01 14:37 拿了桔子跑-范德依彪 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1 关于类加载器 类加载器泛指一段代码 该代码实现的功能:通过一个类的全名来获取描述该类的二进制字节流 虚拟机角度,类加载器有两种:一种是启动类加载器(Bootstrap ClassLoader),由C++语言实现,属于虚拟机一部分;另外一种加载器是由Java实现,独立存在于虚拟机外部,并且全都继承 阅读全文
posted @ 2022-11-25 16:02 拿了桔子跑-范德依彪 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1 概述 ArrayList的元素:有序、可重复、允许null ArrayList没有实现同步(synchronized),因此线程不安全的。(vector线程安全) ArrayList底层数据结构为数组,容量(capacity):表示底层数组长度。容量不足则触发扩容,创建一个更长的数组,并将元素迁 阅读全文
posted @ 2022-11-22 16:00 拿了桔子跑-范德依彪 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 本章学些目标: jvm如何加载字节码文件? 字节码文件的内容如何被jvm读取? 特别备注: 以下内容中的【类】:包含java类和java接口 1 类的生命周期 一、生命周期定义: 类被加载到虚拟机内存,到释放出内存的过程 二、生命周期的七个阶段: 将加载、验证、准备、解析、初始化这五个阶段所执行的具 阅读全文
posted @ 2022-11-13 20:52 拿了桔子跑-范德依彪 阅读(74) 评论(0) 推荐(0) 编辑