- #JVM进阶(十五)——JAVA 类加载器 今天我们将类加载机制5个阶段中的第一个阶段,加载,又叫做装载。为了便于阅读,以下都叫做装载。 装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。 有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加... #JVM进阶(十五)——JAVA 类加载器 今天我们将类加载机制5个阶段中的第一个阶段,加载,又叫做装载。为了便于阅读,以下都叫做装载。 装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。 有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加...
- #JVM进阶(十七)——准备-解析-初始化 在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只说一下大概的用处,让大家有个概念性的认识。 装载之后的阶段就是校验阶段了,该阶段的目的就是确保上一阶段读进来的二进制字节流中包含的信息符合虚拟机的规范,并且不会危害... #JVM进阶(十七)——准备-解析-初始化 在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只说一下大概的用处,让大家有个概念性的认识。 装载之后的阶段就是校验阶段了,该阶段的目的就是确保上一阶段读进来的二进制字节流中包含的信息符合虚拟机的规范,并且不会危害...
- #JVM进阶(十四)——初识JAVA 类加载机制 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操... #JVM进阶(十四)——初识JAVA 类加载机制 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操...
- #JVM进阶(十六)——JAVA 双亲委派模型 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。 那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗? 首先我们来看一张图: 图中除了最底下的那个加载... #JVM进阶(十六)——JAVA 双亲委派模型 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。 那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗? 首先我们来看一张图: 图中除了最底下的那个加载...
- #JVM进阶(十八)——初识Class文件 关于类加载机制的相关知识在前面的博文中暂时先讲那么多。中间留下了很多问题,从本篇博文开始,我们来一一解决。 从我们最陌生而又最熟悉的.class文件开始说起。.class文件是一个由8位二进制构成一个字节的字节码文件,里面的格式都是按照规定好的顺序紧凑的排列在文件中。 在.class文件中,他的数据都是以无符号数和... #JVM进阶(十八)——初识Class文件 关于类加载机制的相关知识在前面的博文中暂时先讲那么多。中间留下了很多问题,从本篇博文开始,我们来一一解决。 从我们最陌生而又最熟悉的.class文件开始说起。.class文件是一个由8位二进制构成一个字节的字节码文件,里面的格式都是按照规定好的顺序紧凑的排列在文件中。 在.class文件中,他的数据都是以无符号数和...
- #JVM进阶(七)——从GC日志分析堆内存 在前面的文章中,我们只设置了整个堆的内存大小。但是我们知道,堆又分为了新生代,年老代。他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比例大小能改变吗?其实这些都是可控的,以前没有讲到是因为就算讲了也只是讲讲而已,看不到实质性的东西。因此这章我们通过分析GC日志来一步步讲解如何细化设置堆内存。 ... #JVM进阶(七)——从GC日志分析堆内存 在前面的文章中,我们只设置了整个堆的内存大小。但是我们知道,堆又分为了新生代,年老代。他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比例大小能改变吗?其实这些都是可控的,以前没有讲到是因为就算讲了也只是讲讲而已,看不到实质性的东西。因此这章我们通过分析GC日志来一步步讲解如何细化设置堆内存。 ...
- 剑指Offer——简述堆和栈的区别 堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建; Java虚拟机规范描述:所有的对象实例及数组都要在堆上分配; Java堆可以处于物理上不连续的内存空间,只要逻辑上连续即可; &nb... 剑指Offer——简述堆和栈的区别 堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建; Java虚拟机规范描述:所有的对象实例及数组都要在堆上分配; Java堆可以处于物理上不连续的内存空间,只要逻辑上连续即可; &nb...
- #JVM进阶(十一)——JAVA G1收集器 在前两篇博文中讲解了新生代和年老代的收集器,在本篇博文中介绍一个收集范围涵盖整个堆的收集器——G1收集器。 先讲讲G1收集器的特点,他也是个多线程的收集器,能够充分利用多个CPU进行工作,收集方式也与CMS收集器类似,因此不会有太久的停顿。 虽然回收的范围是整个堆,但还是有分代回收的回收方式。在年轻代依然采用复制算法... #JVM进阶(十一)——JAVA G1收集器 在前两篇博文中讲解了新生代和年老代的收集器,在本篇博文中介绍一个收集范围涵盖整个堆的收集器——G1收集器。 先讲讲G1收集器的特点,他也是个多线程的收集器,能够充分利用多个CPU进行工作,收集方式也与CMS收集器类似,因此不会有太久的停顿。 虽然回收的范围是整个堆,但还是有分代回收的回收方式。在年轻代依然采用复制算法...
- 堆空间的内存分配 public class Test { public static void main(String[] args) { //-Xms 调整初始堆内存 ,-Xmx 最大堆内存 //返回JVM中堆的内存总量 long initMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024... 堆空间的内存分配 public class Test { public static void main(String[] args) { //-Xms 调整初始堆内存 ,-Xmx 最大堆内存 //返回JVM中堆的内存总量 long initMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024...
- 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客... 大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客...
- Java内存溢出OOM 前言架构StackoverFlowErrorOutOfMemoryErrorjava heap spaceGC overhead limit exceededDirect buffer memoryunable to create new native threadMetaspace元空间是什么代码 总结 前言 JVM中... Java内存溢出OOM 前言架构StackoverFlowErrorOutOfMemoryErrorjava heap spaceGC overhead limit exceededDirect buffer memoryunable to create new native threadMetaspace元空间是什么代码 总结 前言 JVM中...
- 前言 本博客介绍一种创建型模式:单例模式 这是一种比较容易理解的设计模式,可以理解为创建对象的一种很好的做法。可以尽量避免创建过多的对象,给JVM造成很大的负载。 应用场景 单例模式的一些应用场景: 1、比如数据连接类,这是需要经常调用的 2、网站访问量统计的服务类,需要多次调用 3、导出导入Excel表,一些业务复杂的系统需要多次调用 … 总结起来就... 前言 本博客介绍一种创建型模式:单例模式 这是一种比较容易理解的设计模式,可以理解为创建对象的一种很好的做法。可以尽量避免创建过多的对象,给JVM造成很大的负载。 应用场景 单例模式的一些应用场景: 1、比如数据连接类,这是需要经常调用的 2、网站访问量统计的服务类,需要多次调用 3、导出导入Excel表,一些业务复杂的系统需要多次调用 … 总结起来就...
- Java中的引用 前言整体架构强引用软引用弱引用软引用和弱引用的使用场景WeakHashMap是什么? 虚引用概念场景引用队列 ReferenceQueue GCRoots和四大引用小总结 前言 在原来的时候,我们谈到一个类的实例化 Person p = new Person() 1 在等号的左边,就是一个对象的引用,存储在栈中 而等号右边... Java中的引用 前言整体架构强引用软引用弱引用软引用和弱引用的使用场景WeakHashMap是什么? 虚引用概念场景引用队列 ReferenceQueue GCRoots和四大引用小总结 前言 在原来的时候,我们谈到一个类的实例化 Person p = new Person() 1 在等号的左边,就是一个对象的引用,存储在栈中 而等号右边...
- ClassNotfoundException java开发中经常遇到java.lang.ClassNotfoundException异常,ClassNotfoundException异常一般就是编译时找不到类,Console台就会输出异常信息。一般情况下,我们都会rebuild或者clean一下工程,让项目重新编译一遍。 两个异常的区别 不过一遇到NoClassD... ClassNotfoundException java开发中经常遇到java.lang.ClassNotfoundException异常,ClassNotfoundException异常一般就是编译时找不到类,Console台就会输出异常信息。一般情况下,我们都会rebuild或者clean一下工程,让项目重新编译一遍。 两个异常的区别 不过一遇到NoClassD...
- JVM参数调优 前言JVM参数类型查看运行的Java程序,JVM参数是否开启,具体值为多少?题外话(坑题)查看JVM默认参数工作中常用的JVM基本配置参数查看堆内存打印JVM默认参数生活常用调优参数GC垃圾收集Full GC垃圾回收 -XX:SurvivorRatio-XX:NewRatio(了解)-XX:MaxTenuringThreshold 前言... JVM参数调优 前言JVM参数类型查看运行的Java程序,JVM参数是否开启,具体值为多少?题外话(坑题)查看JVM默认参数工作中常用的JVM基本配置参数查看堆内存打印JVM默认参数生活常用调优参数GC垃圾收集Full GC垃圾回收 -XX:SurvivorRatio-XX:NewRatio(了解)-XX:MaxTenuringThreshold 前言...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
去报名
热门标签