一、饥饿模式: 典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要判断了,节省了运行时间。 1 public class HungrySingleton { 2 3 private static HungrySingleton instance = ...
分类:
编程语言 时间:
2020-03-29 22:41:26
阅读次数:
106
1.JVM体系结构 2. 类装载子系统 类装载子系统负责查找并装载类型,Java虚拟机有两种类装载器:启动类装载器(Java虚拟机实现的一部分)和自定义类装载器(Java程序的一部分)。类装载子系统负责定位和加载二进制class文件,并且保证加载的类的正确性,为类变量分配内存并初始化,以及帮助解析符 ...
分类:
其他好文 时间:
2020-03-23 15:23:26
阅读次数:
68
一 Java类装载过程如上。装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证 ...
分类:
其他好文 时间:
2020-03-16 23:10:12
阅读次数:
69
运行时数据区: 在类加载阶段的第2,3步可以涉及有运行时数据,堆,方法区等名词。( 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3.在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口 ) 说白了就是类文件被类装载器装载进来之后 ...
分类:
其他好文 时间:
2020-03-10 15:37:30
阅读次数:
70
获取src路径下的文件的方式 >ClassLoader 类加载器:可以加载类的字节码文件进内存,随便一个字节码文件都可以 | getClass():取得当前对象所属的Class对象 | getClassLoader():取得该Class对象的类装载器,类装载器负责从Java字符文件将字符流读入内存, ...
分类:
其他好文 时间:
2020-02-28 13:35:47
阅读次数:
58
JVM结构 JVM是 Java Virtual Machine的简称,意为Java虚拟机 。是Java可以在不同平台保证编译运行程序的保证。主要分为五大模块: 类装载器子系统 、 运行时数据区 、 执行引擎 (堆操作)、 本地方法接口 (对接本地方法栈)和 垃圾收集模块 (GC操作)。 类装载器子系 ...
分类:
其他好文 时间:
2020-02-25 12:48:54
阅读次数:
94
一.YMAL的占位符,松散绑定,实体类装载配置文件信息用于属性赋值 占位符: ${random.int} 松散绑定:Dog.java中的属性名为dogName,YMAL中对应的为dog-name 实体类装载配置文件信息: @ConfigurationProperties(prefix = "dog" ...
分类:
编程语言 时间:
2020-02-23 09:40:55
阅读次数:
105
类加载与实例化 基本步骤 类装载分为以下 5 个步骤: 加载:根据查找路径找到相应的 class 文件然后导入 检查:检查加载的 class 文件的正确性 准备:给类中的静态变量分配内存空间 解析:虚拟机将常量池中的符号引用替换成直接引用的过程。符号引用理解为一个标示,而直接引用直接指向内存中的地址 ...
分类:
其他好文 时间:
2020-02-20 00:04:27
阅读次数:
74
类加载机制与JDK调优监控工具 类的生命周期 1.加载将.class文件从磁盘读到内存2.连接2.1 验证验证字节码文件的正确性2.2 准备给类的静态变量分配内存,并赋予默认值2.3 解析类装载器装入类所引用的其它所有类 3.初始化为类的静态变量赋予正确的初始值,上述的准备阶段为静态变量赋予的是虚拟 ...
分类:
其他好文 时间:
2020-01-29 18:24:01
阅读次数:
89
一、JRE、JDK、JVM 要了解java程序运行原理,首先需要了解知道 jre、jdk、jvm 这三者是什么,他们之间又有什么联系。 JRE(JavaRuntimeEnvironment,Java运行环境) ,也就是Java平台。所有的Java 程序都要在JRE下才能运行。 JDK(Java De ...
分类:
编程语言 时间:
2020-01-16 01:01:25
阅读次数:
128