
JVM
给自己加加油
这个作者很懒,什么都没留下…
展开
-
java常量池
java中的常量池分为两种形态:静态常量池和运行时常量池。静态常量池:即*.class文件中的常量池,class文件中的常量池不仅仅包括字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。静态常量池主要存放两大类常量:字面量(Literal)和符号引用量(Symbolic References),字面量相当于Java语言层面常量的概念,如文本字符串、声明为final的常...原创 2020-02-16 12:51:18 · 344 阅读 · 0 评论 -
类加载器深入剖析
java虚拟机与程序的生命周期在如下的集中情况下,Java虚拟机将结束声明周期:-执行了System,exit()方法-程序正常执行结束-程序在执行的过程中遇到了异常或错误而异常终止-由于操作系统出现错误而导致Java虚拟机进程终止类的加载、连接与初始化加载:查找并加载类的二级制数据连接:-验证:确保被加载的类的正确性-准备:为类的静态变量分配内存,并将其初...原创 2019-11-10 17:27:02 · 187 阅读 · 0 评论 -
实战:OutOfMemoryError
一:Java堆溢出VM参数:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryErrorpublic class DumpOutOfMemory { public static void main(String[] args) { List<OOMObject> list = new ArrayList<>...原创 2019-11-09 18:36:25 · 185 阅读 · 0 评论 -
深入理解Java类加载器(一):Java类加载原理解析续
四、常见问题分析1、由不同的类加载器加载的指定类还是相同的类型吗? 在Java中,一个类用其完全匹配类名(fully qualified class name)作为标识,这里指的完全匹配类名包括包名和类名。但在JVM中,一个类用其 全名 和 一个ClassLoader的实例 作为唯一标识,不同类加载器加载的类将被置于不同的命名空间。我们可以用两个自定义类加载器去加载某自定义类型(注意不要将自...转载 2019-04-11 10:10:12 · 715 阅读 · 0 评论 -
深入理解Java类加载器(一):Java类加载原理解析
一、引子大家对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,其实,这个异常背后涉及到的是Java技术体系中的类加载。Java类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对于理解Java虚拟机的连接模型和Java语言的动态性都有很大的帮助。...转载 2019-04-17 10:47:53 · 264 阅读 · 0 评论 -
深入理解Java类加载器(一):Java类加载原理解析之网络加载器
2、网络类加载器 下面将通过一个网络类加载器来说明如何通过类加载器来实现组件的动态更新。即基本的场景是:Java 字节代码(.class)文件存放在服务器上,客户端通过网络的方式获取字节代码并执行。当有版本更新的时候,只需要替换掉服务器上保存的文件即可。通过类加载器可以比较简单的实现这种需求。 类 NetworkClassLoader负责通过网络下载Java类字节代码并定义出Java类。它的实...转载 2019-04-15 16:44:12 · 1183 阅读 · 0 评论