![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
code-布丁
这个作者很懒,什么都没留下…
展开
-
对象创建过程与内存分配
对象创建过程与内存分配对象创建主要流程类加载检查例如:虚拟机接到一个new User() 指令的时候,会先去检查User()这个符号引用是否在常量池中,并且检查User类是否已经被加载,如果没有,就必须先加载类。分配内存通过类加载检查之后,就会为new 出来的对象分配内存。划分内存的方法: ①指针碰撞 ②空闲列表并发问题解决办法: ①CAS ②本地线程分配缓冲(Thread Local Allocation Buffer )初始化内存分配完成后,将分配到的原创 2020-11-09 16:54:28 · 314 阅读 · 0 评论 -
自定义类加载器及双亲委派机制验证
自定义类加载器项目结构准备一个User类和MyClassLoader类,项目结构如下MyClassLoader代码package com.cwf.resource.jvm;import java.io.FileInputStream;public class MyClassLoader extends ClassLoader { // 自定义加载路径 private String classPath; //构造方法,初始化加载路径 public MyClas原创 2020-10-12 23:41:24 · 120 阅读 · 0 评论 -
JVM类加载机制及源码分析
JVM类加载机制当我们运行某个类的main函数时,首先需要通过类加载器将主类加载到JVM中去。类加载过程加载在硬盘上找到对应的.class文件,并且通过IO 读入验证校验字节码文件的正确性准备给类的静态变量分配内存,并赋予默认值解析将符号引用替换为直接引用,该阶段会把一些静态方法(静态方法,例如main()方法,替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成),动态链接是在程序运行期间完成的将符号引用替换成直接引用)符号引用&直接引用原创 2020-10-10 23:39:13 · 450 阅读 · 0 评论