
JVM&DVM
文章平均质量分 96
且听风吟9527
这个作者很懒,什么都没留下…
展开
-
字节码层面分析 class 类文件结构
本从字节码层面分析 class 类文件结构。首先来看一道面试题:java中 String 字符串的长度有限制吗?平时项目开发中,我们经常会用到 String 来声明字符串,比如 String str = “abc”, 但是你可能从来没有想过等于号之后的字符串常量到底有没有长度限制。要彻底答对这道题,就需要先学会今天所讲的内容——class 文件。class 的来龙去脉Java 能够实现"一次编译,到处运行”,这其中 class 文件要占大部分功劳。为了让 Java 语言具有良好的跨平台能力,Ja原创 2021-03-26 19:54:27 · 670 阅读 · 0 评论 -
GC 回收机制与分代回收策略
垃圾回收(Garbage Collection,简写为 GC)可能是虚拟机众多知识点中最为大众所熟知的一个了,也是Java开发者最关注的一块知识点。Java 语言开发者比 C 语言开发者幸福的地方就在于,我们不需要手动释放对象的内存,JVM 中的垃圾回收器(Garbage Collector)会为我们自动回收。但是这种幸福是有代价的:一旦这种自动化机制出错,我们又不得不去深入理解 GC 回收机制,甚至需要对这些“自动化”的技术实施必要的监控和调节。前面介绍了 Java 内存运行时区域的各个部分,其中程序计转载 2021-03-25 17:49:59 · 546 阅读 · 0 评论 -
程序运行时,内存到底是如何进行分配的?
有很多人将 Java 的内存分为堆内存(heap)和栈内存(Stack),这种划分方式在一定程度上体现了这两块区域是 Java 工程师最关注的内存区域。但是其实这种划分方式并不完全准确。Java 的内存区域划分实际上远比这复杂:Java 虚拟机在执行 Java 程序的过程中,会把它所管理的内存划分为不同的数据区域。下面这张图描述了一个 HelloWorld.java 文件被 JVM 加载到内存中的过程:HelloWorld.java 文件首先需要经过编译器编译,生成 HelloWorld.class转载 2021-03-24 10:45:13 · 1072 阅读 · 0 评论