Loading

摘要: 1. 概述 执行引擎是 Java 虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系 阅读全文
posted @ 2021-05-19 20:37 tree6x7 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这个过程被称作虚拟机的「类加载机制」。 与那些在编译时需要进行连接的语言不同,在 Java 语言里面,类型的加载、连接和初始化过程都是在程序运 阅读全文
posted @ 2021-05-19 19:58 tree6x7 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 在 Java 技术下谈“编译期”而没有具体上下文语境的话,其实是一句很含糊的表述: 因为它可能是指一个前端编译器(叫“编译器的前端”更准确一些)把 *.java 文件转变成 *.class 文件的过程; 也可能是指 Java 虚拟机的即时编译器(常称 JIT 编译器,Just In Ti 阅读全文
posted @ 2021-05-19 19:13 tree6x7 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Java 虚拟机的指令由 1 个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的 0~N 个代表此操作所需的参数(称为操作数,Operand)构成。 由于 Java 虚拟机采用“面向操作数栈”而不是“面向寄存器”的架构,所以大多数指令都不包含操作数,只有 阅读全文
posted @ 2021-05-19 16:46 tree6x7 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 1. 平台无关、语言无关 Java 在刚刚诞生之时曾经提出过一个非常著名的宣传口号“一次编写,到处运行(Write Once,Run Anywhere)”,这句话充分表达了当时软件开发人员对冲破平台界限的渴求。 “与平台无关”的理想最终只有实现在操作系统以上的应用层:Oracle 公司以及其他虚拟机 阅读全文
posted @ 2021-05-19 15:32 tree6x7 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 1. 前置知识 1.1 根节点枚举 固定可作为 GC Roots 的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,尽管目标明确,但查找过程要做到高效并非一件容易的事情,现在 Java 应用越做越庞大,光是方法区的大小就常有数百上千兆,里面的类、常量等更是恒河 阅读全文
posted @ 2021-05-19 14:41 tree6x7 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 哪些内存需要回收? 什么时候回收? 如何回收? 1. HotSpot 对象 1.1 对象的创建 Java 是一门面向对象的编程语言,Java 程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个 new 关键字而已,而在虚拟机中,对象(文中讨论的对象 阅读全文
posted @ 2021-05-19 13:59 tree6x7 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 0. review JVM JVM 是一台执行 Java 字节码的虚拟计算机,它拥有独立的运行机制,其运行的 Java 字节码也未必由 Java 语言编译而成。 Java 虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应的平台上的机器指令执行。每一条 Java 指令,Jav 阅读全文
posted @ 2021-05-19 13:24 tree6x7 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 1. JDK & JRE 2. Java语言与Java虚拟机 3. Java发展的重大事件 4. 虚拟机与Java虚拟机 5. JVM的整体结构 HotSpot VM 是目前市面上高性能虚拟机的代表作之一。 它采用 [解释器] 与 [即时编译器] 并存 的架构。 解释器:保证响应时间。及时对字节码文 阅读全文
posted @ 2021-05-19 11:57 tree6x7 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 1. SELECT 语句完整的执行顺序 FROM 子句组装来自不同数据源的数据 WHERE 子句基于指定的条件对记录行进行筛选 GROUP BY 子句将数据划分为多个分组 使用聚集函数进行计算 使用 HAVING 子句筛选分组 计算所有的表达式 SELECT 的字段 使用 ORDER BY 对结果集 阅读全文
posted @ 2021-05-19 08:26 tree6x7 阅读(99) 评论(0) 推荐(0) 编辑