自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 2 jvm内存模型

jvm虚拟机=运行时数据区+类装载子系统+字节码执行引擎 运行时数据区=堆+栈+本地方法栈+方法区+程序计数区 线程的内存空间栈,这里的栈与数据栈是一样的设计结构 这里和程序的运行顺序是一样的,程序在执行时是从最里面先执行然后到最开始的逻辑 main方法先运行,先压栈道底部,后面的接着往上压,执行的时候,先从上面开始执行到底部 栈:线程独有,每个线程一个 栈帧:方法独有, 每个方法对于一个栈帧 栈帧:局部变量表,操作数栈,动态链接,方法出口 操作数栈是方法里面执行数据操作的内存 程序计算器

2021-07-18 11:29:39 70

原创 双亲委派机制 +全盘委托机制+自定义类加载器+打破双亲

launcher 单例创建 launcher 创建了URlClassloader 通过路径去实现类的加载 launcher 创建了extClassloader他的parent是null,这里是C++创建的引导类加载器 ,这个类继承的是URlClassloader,是扩展类加载器 launcher 创建了AppClassloader 他的parent是Exlclassloader,是应用程序加载器 自定义类加载器 先从应用程序加载器中查找是否有加载到,没有就从父类extclassloader类扩.

2021-07-17 17:00:08 400

原创 loadClass的类加载过程

loadClass的类加载过程有:加载-验证-准备-解析-初始化-使用-卸载 加载:在硬盘上查找并通过io读入字节码文件,使用到类时才有加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.calss对象,作为方法区这个类的各种数据的访问入口 验证:校验字节码文件的正确性 准备:给类的静态变量分配内存,并赋予默认值 ,例如命令: javap -v test.可以查看字节码的信息 解析:将符合引用替换为直接引用,该阶段会把一些静态方法如ma..

2021-07-01 20:07:47 395

原创 1 类加载器初始化及加载类的过程

Java com.test.class 在Windows系统下 java.exe调用底层的jvm.dll文件创建java虚拟机(C++实现) 创建一个引导类加载器实例(C++实现) c++调用java代码创建jvm启动器实例sun.misc.Launcher,该类由引导类加载器负责加载创建其他类加载器 sun.misc.Launcher.getLauncher()获取运行类自己的加载器ClassLoader,是AppClassLoader的实例 Launcher.getClassLoader(),

2021-06-30 22:54:55 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除