- 这一篇我们来学习一下JVM中的类加载过程。说到类的加载过程,我们需要先了解一下JVM中类的生命周期。在JVM中类的生命周期有七个阶段。分别是: 加载(Loading):加载是通过类加载器从不同的地方加载进二进制字节流,类加载器可以参考类加载器与双亲委派模型验证(Verification):验证阶段是为了确保Class文件的字节流中包含的信息是否符合《JVM虚拟机规范》... 这一篇我们来学习一下JVM中的类加载过程。说到类的加载过程,我们需要先了解一下JVM中类的生命周期。在JVM中类的生命周期有七个阶段。分别是: 加载(Loading):加载是通过类加载器从不同的地方加载进二进制字节流,类加载器可以参考类加载器与双亲委派模型验证(Verification):验证阶段是为了确保Class文件的字节流中包含的信息是否符合《JVM虚拟机规范》...
- 文章目录 前言一些基本的设置说明堆内存溢出Java栈内存异常方法区和运行时常量池溢出直接内存溢出内存泄露内存泄露的定义:解决办法 内存溢出的原因分析:线上内存溢出的处理方法总结 前言 上一篇我们介绍了JVM03–JVM垃圾收集机制的一些基本概念,这一篇介绍一下JVM中各种内存溢出(包括内存泄露)及其处理方法。 本文会按照JVM中内存划分来介绍各种内存... 文章目录 前言一些基本的设置说明堆内存溢出Java栈内存异常方法区和运行时常量池溢出直接内存溢出内存泄露内存泄露的定义:解决办法 内存溢出的原因分析:线上内存溢出的处理方法总结 前言 上一篇我们介绍了JVM03–JVM垃圾收集机制的一些基本概念,这一篇介绍一下JVM中各种内存溢出(包括内存泄露)及其处理方法。 本文会按照JVM中内存划分来介绍各种内存...
- 您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们,有啥想看的,想问的,欢迎积极留言告诉我喔。 前面我写了一篇低效编码的文章,我很痛心。【低效编码】一个@ResponseBody注解没加让我这个菜鸟原形毕露 。于是我决定痛定思痛,好好反思。不能在低效编程下去了,我要支楞起来;我要高效编程;非常非常高效的编程。所以这篇文章来了,他主... 您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们,有啥想看的,想问的,欢迎积极留言告诉我喔。 前面我写了一篇低效编码的文章,我很痛心。【低效编码】一个@ResponseBody注解没加让我这个菜鸟原形毕露 。于是我决定痛定思痛,好好反思。不能在低效编程下去了,我要支楞起来;我要高效编程;非常非常高效的编程。所以这篇文章来了,他主...
- JVM之垃圾回收-垃圾收集算法 如何判断对象是否存活 引用计数算法 可达性分析(GC Roots Tracing)算法 效率 对象之间相互循环引用的问题 使用引用计数算法 使用可达性算法 Java引用的四种状态 强引用(Strong Reference) 软引用(Soft Reference) 弱引用(Weak Reference... JVM之垃圾回收-垃圾收集算法 如何判断对象是否存活 引用计数算法 可达性分析(GC Roots Tracing)算法 效率 对象之间相互循环引用的问题 使用引用计数算法 使用可达性算法 Java引用的四种状态 强引用(Strong Reference) 软引用(Soft Reference) 弱引用(Weak Reference...
- 前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录 1. 内存模型 & 分区 Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区 在运行时数据区里,会根据用途进行划分: Java虚拟机栈(栈区) 本地方法栈 Java堆... 前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录 1. 内存模型 & 分区 Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区 在运行时数据区里,会根据用途进行划分: Java虚拟机栈(栈区) 本地方法栈 Java堆...
- JVM系列之类加载机制(从类文件到虚拟机) 文章目录 一、类加载机制简介二、类加载机制过程2.1、加载(Load)2.2、连接(Linking)2.2.1、验证(Verify)2.2.2、准备(Prepare)2.2.3、解析(Resolve) 2.3、初始化(Initialize) 三、类加载器Classloader3.1、类加载器简介3.2、类加载器分类3... JVM系列之类加载机制(从类文件到虚拟机) 文章目录 一、类加载机制简介二、类加载机制过程2.1、加载(Load)2.2、连接(Linking)2.2.1、验证(Verify)2.2.2、准备(Prepare)2.2.3、解析(Resolve) 2.3、初始化(Initialize) 三、类加载器Classloader3.1、类加载器简介3.2、类加载器分类3...
- main 方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么 main 方法是 public、static、... main 方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么 main 方法是 public、static、...
- 案例介绍 按照如下虚拟机规范,本文主要介绍java版本jvm提取class字节码方式。在java中没有无符号类型,例如js中byte取值是0~256、java中是-128 ~ +172,所以在实际处理字节码时[虚拟机规范u1、u2、u4],需要进行转换。 [java虚拟机规范]每个Class文件都是由8字节为单位的字节流组成,所有的16位、32位和64位长度的数... 案例介绍 按照如下虚拟机规范,本文主要介绍java版本jvm提取class字节码方式。在java中没有无符号类型,例如js中byte取值是0~256、java中是-128 ~ +172,所以在实际处理字节码时[虚拟机规范u1、u2、u4],需要进行转换。 [java虚拟机规范]每个Class文件都是由8字节为单位的字节流组成,所有的16位、32位和64位长度的数...
- 案例介绍 本案例初步实现运行时数据区里;线程、Java虚拟机栈、帧、操作数栈、局部变量表。 在运行Java程序时,Java虚拟机需要使用内存来存放各种各样的数据。Java虚拟机规范把这些内存区域叫作运行时数据区。运行时数据区可以分为两类:一类是多线程共享的,另一类则是线程私有的。多线程共享的运行时数据区需要在Java虚拟机启动时创建好在Java虚拟机推出时销毁。... 案例介绍 本案例初步实现运行时数据区里;线程、Java虚拟机栈、帧、操作数栈、局部变量表。 在运行Java程序时,Java虚拟机需要使用内存来存放各种各样的数据。Java虚拟机规范把这些内存区域叫作运行时数据区。运行时数据区可以分为两类:一类是多线程共享的,另一类则是线程私有的。多线程共享的运行时数据区需要在Java虚拟机启动时创建好在Java虚拟机推出时销毁。...
- 在前面,我们已经了解了JVM的分代收集,知道JVM垃圾收集在新生代主要采用标记-复制算法,在老年代主要采用标记-清除和标记-整理算法。接下来,我们看一看JDK默认虚拟机HotSpot的一些垃圾收集器的实现。 1、常见垃圾回收器 首先来看一下JDK 11之前全部可用的垃圾收集器。 图中列出了七种垃圾收集器,连线表示可以配合使用,所在区域表示它是属于新生代收集器或... 在前面,我们已经了解了JVM的分代收集,知道JVM垃圾收集在新生代主要采用标记-复制算法,在老年代主要采用标记-清除和标记-整理算法。接下来,我们看一看JDK默认虚拟机HotSpot的一些垃圾收集器的实现。 1、常见垃圾回收器 首先来看一下JDK 11之前全部可用的垃圾收集器。 图中列出了七种垃圾收集器,连线表示可以配合使用,所在区域表示它是属于新生代收集器或...
- 背景描述 为了更好的学习jvm阅读过《Java虚拟机规范》、《自己动手写Java虚拟机》,尤其是《自动动手写java虚拟机》可以更加清晰的看到全貌。对于程序开发者来说学习一个新东西最好事必躬亲,亲力亲为的做出一些demo,只有输出了结果心里才踏实。 案例简述 本章节主要是通过编写java代码,从main方法入口进行获取指令。例如;-version 环境准备 1、jd... 背景描述 为了更好的学习jvm阅读过《Java虚拟机规范》、《自己动手写Java虚拟机》,尤其是《自动动手写java虚拟机》可以更加清晰的看到全貌。对于程序开发者来说学习一个新东西最好事必躬亲,亲力亲为的做出一些demo,只有输出了结果心里才踏实。 案例简述 本章节主要是通过编写java代码,从main方法入口进行获取指令。例如;-version 环境准备 1、jd...
- 作者:小傅哥 博客:https://bugstack.cn Wiki:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀、分享、成长,让自己和他人都能有所收获 一、前言 你开发的系统是裸奔的吗?深夜被老板 Diss 一套系统是否稳定运行,取决于它的运行健康度,而这包括;调用量、可用率、响应时长以及服务器... 作者:小傅哥 博客:https://bugstack.cn Wiki:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀、分享、成长,让自己和他人都能有所收获 一、前言 你开发的系统是裸奔的吗?深夜被老板 Diss 一套系统是否稳定运行,取决于它的运行健康度,而这包括;调用量、可用率、响应时长以及服务器...
- Java虚拟机和Class文件是Java实现系统无关性的基石。 Class文件是JVM实现语言无关性的基石。 Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。 每一个 Class 文件对应于一个如下所示的 ClassFile 结构体: ClassFile { u4 magic; u2 minor_version; u2 majo... Java虚拟机和Class文件是Java实现系统无关性的基石。 Class文件是JVM实现语言无关性的基石。 Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。 每一个 Class 文件对应于一个如下所示的 ClassFile 结构体: ClassFile { u4 magic; u2 minor_version; u2 majo...
- 作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言 看了一篇文章30岁有多难! 每篇文章的开篇总喜欢写一些,从个人视角看这个世界的感悟。 最近看到一篇文章,30岁有多难。文中的一... 作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言 看了一篇文章30岁有多难! 每篇文章的开篇总喜欢写一些,从个人视角看这个世界的感悟。 最近看到一篇文章,30岁有多难。文中的一...
- 1、对象创建过程 单纯从语言层面,新建一个对象,可以通过new、反射、复制、反序列化等等。接下来,我们探究以下在虚拟机中,对象的创建是一个什么样的过程。 我们以虚拟机遇到一个new指令开始: 首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用 检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,就先执行相应的类加载过程 类加载检查通过后... 1、对象创建过程 单纯从语言层面,新建一个对象,可以通过new、反射、复制、反序列化等等。接下来,我们探究以下在虚拟机中,对象的创建是一个什么样的过程。 我们以虚拟机遇到一个new指令开始: 首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用 检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,就先执行相应的类加载过程 类加载检查通过后...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签