类的加载方式

1、隐式加载:new

2、显式加载,loadClass,forName 等

loadClass 和 forName的区别

类的装载过程

1、加载:通过classLoader加载class文件字节码,生成Class对象,将这些数据放到运行时数据区的方法区中,在运行时,在数据区堆中生成一个代表该类的java.lang.class的字节码文件,这个文件会被用来当做访问入口

2、链接:

2.1 校验: 检查加载的class的正确性和安全性(检查格式)

2.2 准备:为类变量分配存储空间并设置变量初始值

2.3 解析:JVM将常量池内的符号引用转换为直接引用(这个步骤是不是必须的)

3、初始化:执行类变量赋值和静态代码块

forName---》调用这个方法的话,会进行初始化的,则会执行类变量赋值和静态代码块。例如:Class.forName("com.mysql.jdbc.Driver") ,点进去Driver代码里面看,就知道,里面是有写静态代码块的。

loadClass---》不会进行初始化步骤。例如:spring ioc 中大量使用了懒加载,这个时候大量是哦也能改了loadClass。存在就是合理的

转载于:https://www.cnblogs.com/vingLiu/p/10538541.html

loadClass和forName 的区别相关推荐

  1. jvm面试 -- 谈谈ClassLoader ,ClassLoader的双亲委派机制 , loadClass和forName的区别

    谈谈ClassLoader ? ClassLoader的双亲委派机制 ? loadClass和forName的区别 ?

  2. java中Class对象详解和类名.class, class.forName(), getClass()区别

     一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享. 原来为就是涉及到Java的反射----- Java反射学习 所谓反射 ...

  3. 实现自己的类加载时 重写方法loadClass与findClass的区别

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Java ...

  4. 浅析Java内存模型--ClassLoader

    在理解ClassLoader之前,我们先回顾下Java的一些相关知识. 基础 1. Java的主要特性 平台无关性 面向对象 GC(Java的垃圾回收机制) 类库 语言特性 异常处理 2. 为什么JV ...

  5. java招聘职位描述,附学习笔记+面试整理+进阶书籍

    面:为什么要使用双亲委派机制去加载类? 答:避免多份同样字节码的加载,浪费内存. 类的加载方式 隐式加载:new 显示加载:loadClass.forName等 类的装载过程如下图: 面:loadCl ...

  6. 三年Java开发,你连基础的JVM运行时内存布局都忘了

    面:为什么要使用双亲委派机制去加载类? 答:避免多份同样字节码的加载,浪费内存. 类的加载方式 隐式加载:new 显示加载:loadClass.forName等 类的装载过程如下图: 面:loadCl ...

  7. java中class文件如何加载的_jvm如何加载class文件

    编译期: javac是JDK自带的编译器, 可以将java文件编译为class字节码文件, javap是JDK自带的反编译器,将.class字节码反编译为.java文件,javap -help是jav ...

  8. 2021秋招学习笔记

    PS:csdn上有很多图片加载不出来,有PDF版在我的资源.(如果没有1积分可以评论我,直接发给你邮箱) 文章目录 Java基础篇学习(7/3-7/4) 数据类型 泛型.反射.注解.序列化(加实例) ...

  9. 类的加载(装载)过程

    1.首先谈谈类的加载方式 ①隐式加载 :new 隐式调用类加载器加载对应的类到JVM中,支持带参数的构造器 ②显式加载:通过 loadClass()或forName()方法获取到class对象后,调用 ...

最新文章

  1. Blackberry阻碍因素
  2. Vant 1.6.11 发布,有赞轻量级移动端 Vue 组件库
  3. Android协程学习
  4. java 三个点_Java,参数中的3个点
  5. python——进程基础
  6. stm32之GPIO学习笔记
  7. IIS安全设置终极技巧
  8. 求对着目标物体环绕拍摄的相机参数lookAt
  9. C#编程,DateTime使用方法,时间转字符方法总结
  10. PyTorch搭建LSTM实现多变量多步长时间序列预测(三):多模型单步预测
  11. oracle虚拟机安装苹果,虚拟机中如何安装MAC OS系统?虚拟机安装苹果系统教程
  12. 基于docer 构建微服务基础设施
  13. QT QList<T>介绍与应用、详解、使用说明、官方手册翻译
  14. 浙大这个班太牛气!诞生128家创业公司,总市值高达千亿
  15. 生信(八)zlib库操作fq-gz文件
  16. 安装Linux时报错This kernel requires an X86-64 CPU
  17. 在CSS中创建径向菜单
  18. php 如何实现关键字查找,PHP如何实现多个关键词查询?
  19. 设计模式 | 备忘录模式及典型应用
  20. 自然语音处理(NLP)系列(五)——详解智能问答系统

热门文章

  1. python【数据结构与算法】快速幂and矩阵快速幂取模(看不懂你来打我)
  2. python【Matlibplot绘图库】-认识Matploblib
  3. php oracle 问题,Oracle PHP 故障诊断常见问题以及解答
  4. mysql按升序创建索引_MySQL8新特性:降序索引详解
  5. python标准化输出_Python设定模板及标准化输出,输入
  6. python可以修图吗_会照片处理的不只是ps,还有Python!
  7. matlab全景图素材,matlab以simulink的方式建立一个vr模型
  8. 网络广告推广浅析网站中的关键词密度要如何控制呢?
  9. 网络推广专员如何稳定搜索引擎首页排名全力以赴致力于网络推广
  10. arduino并口屏_Arduino 驱动串口屏(入门级)