Four Day
一、常量的本质与反编译及助记符详解
配置类的加载过程:
-XX:+TranceClassLoading,用于追踪类的加载信息并打印出来
-XX:+,表示打开option选项
-XX:-,表示关闭option选项
-XX:=,表示将option选项的值设置为value
常量在编译阶段会存入到调用这个常量的方法所在的类的常量池中,本质上,调用类并没有直接引用到定义常量的类,因此并不会触发
二、编译期常量与运行期常量的区别及数组创建本质分析
UUID.randomUUID().tostring()是在编译期间确定的
数组创建本质分析:
三、接口初始化规则与类加载器准备阶段和初始化阶段的重要意义分析
静态函数从上到下按顺序执行,先初始化静态变量,再按顺序运行。
四、类加载器深入解析及重要特性剖析
类的加载的最终产品是位于内存中的Class对象,Class对象封装了类在方法区的数据结构,并且向java程序员提供了访问方法区内的数据结构的接口。
类加载器:
1、java虚拟机自带的类加载器
①根类加载器(Bootstrap)
②扩展类加载器(Extension)
③系统(应用)类加载器(system)
2、用户自定义类加载器
①java.lang.ClassLoader的子类
②用户可以定制类的加载方式
类加载器并不需要等到某个类别“首次主动使用”时再加载它:
类的初始化: