文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】Java 类中的类加载初始化细节 ( 只使用类中的常量时加载类不会执行到 ‘初始化‘ 阶段 )

文章目录一、类加载初始化时机二、常量加载示例三、数组加载示例一、类加载初始化时机类加载时机 : Java 程序执行时 , 并不是一开始将所有的字节码文件都加载到内存中 , 而是用到时才进行加载 ;通过 new 关键字创建实例对象 ;通过 Class 反射 获取类 ; 如 : Class.forName(“Xxx”) 获取类 ;序列化 / 反序列化 ;调用 clone 克隆对象 ;有 main 函....

【Java 虚拟机原理】Java 类中的类加载初始化细节 ( 只使用类中的常量时加载类不会执行到 ‘初始化‘ 阶段 )
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】Java 反射原理 ( 反射作用 | 反射用法 )

文章目录一、Java 反射原理二、反射作用三、反射用法一、Java 反射原理Java 反射原理 :Java 类源码 被 javac 工具 编译成 Class 字节码文件 后 , 加载到 Java 虚拟机 内存中 , Class 字节码数据 会被加载到 运行内存中的 方法区 , 该区域又称为 元空间 ;参考下图回顾下 JVM 方法区存储内容 : 静态变量 , 常量 , Class 字节码数据 , ....

【Java 虚拟机原理】Java 反射原理 ( 反射作用 | 反射用法 )
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】Java 类加载过程 ( 加载 | 连接 - 验证 准备 解析 | 初始化 | 使用 | 卸载 )

文章目录一、Java 类加载过程0、字节码编译1、加载2、连接3、初始化总结一、Java 类加载过程0、字节码编译编写好 Java 源码 Student.java ,使用 javac 将上述 Java 源码编译成 Class 字节码文件 Student.class ,1、加载加载 : 通过 " 类加载子系统 " 将该字节码文件 , 加载到 Java 虚拟机内存中 的 方法区 , 然后开始执行 "....

【Java 虚拟机原理】Java 类加载过程 ( 加载 | 连接 - 验证 准备 解析 | 初始化 | 使用 | 卸载 )
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )

文章目录一、Java VisualVM 工具安装 Visual GC 插件二、使用 Java VisualVM 分析 GC 内存一、Java VisualVM 工具安装 Visual GC 插件使用jvisualvm命令 , 打开 Java VisualVM 工具 ,在弹出的 " 插件 " 对话框中 , 选择安装 " Visual GC " 插件 ,点击 " 安装 " 按钮 , 弹出如下界面 ,....

【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )

文章目录一、静态变量二、 Java 引用类型 ( 强、软、弱、虚 )一、静态变量GC Root 对象 :线程栈 中的 栈帧 中的 局部变量表 中的 引用对象 ;方法区 中的 静态引用对象 ;方法区 中的 常量引用对象 ;本地方法栈 中的 JNI 中的 引用的对象 ;所有的 静态变量 都是 GC Root 对象 , 一旦使用了静态变量 , 该变量涉及到的所有引用对象 , 都在以 GC Root 为....

文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )

文章目录一、Java 虚拟机内存分区二、垃圾回收机制三、引用计数器算法 ( 无法解决循环引用问题 )一、Java 虚拟机内存分区Java 虚拟机内存分区 :所有线程共有的内存区域 : 堆 , 方法区 ( 元空间 ) ;方法区 : 存放 静态变量 , 常量 , class 编译后的代码数据 , 永久代对象数据 ( 很少 GC , 永久代的 GC 就是卸载常量池及类型 ) ;堆 : 存放 创建的 对....

文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】堆区 | Java VisualVM 工具

文章目录一、Java VisualVM 工具二、堆区一、Java VisualVM 工具Java 中提供了一个监控当前设备 Java 程序的工具 Java VisualVM ;在命令行中执行jvisualvm命令 , 可以打开该工具 ;可以通过该程序监控 JVM 以及 Java 程序的运行参数 ;二、堆区堆区的对象分步如下图 :堆区的对象 分为 年轻代 , 老年代 ;老年代 占比大约 2 3 \....

【Java 虚拟机原理】堆区 | Java VisualVM 工具
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器

文章目录一、线程栈二、栈帧三、栈帧 - 局部变量表四、反汇编字节码文件五、Java 虚拟机指令手册六、程序计数器一、线程栈装载 HelloWorld.class 字节码文件到 Java 虚拟机内存中 , 会将该字节码文件中的数据进行分解 , 放到不同的内存区域中 ;public class HelloWorld { public int add() { int a = 1...

【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
文章 2022-02-06 来自:开发者社区

【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存

文章目录一、JDK 体系结构二、Java 源码运行原理三、Java 虚拟机内存结构一、JDK 体系结构JDK 体系结构 : 下图所有的内容都是 JDK 体系中的组成元素 ;Java Language : 最上层是 Java 语言 ;Tools & Tool APIs : 指令工具集 , 手动编译 Java 源码时会用到 , 如 java 执行字节码程序 , javac 编译字节码程序 ,....

【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等