class.forName和Classloader的区别

【反射中,Class.forName和ClassLoader区别】 阅读详情

class.forName是把类的.class文件加载都jvm中,然后还会对类进行解析,执行类的static块和为staic变量赋值。classloader只是加载.class文件到jvm,并不会执行static块,直到进行newInstance()时,才会执行static块。


public class A {
	{
		System.out.println("A 初始化块");
	}
	
	static{
		System.out.println("A 静态块");
	}
	
	private static Integer integer=getInteger();
	
	public A(){
		System.out.println("A 构造函数");
	}
	
	public static Integer getInteger() {
		System.out.println("A 初始化静态变量");
		return 10000;
	}
	
	public void getA() {
		System.out.println("A 的普通函数");
	}
}

public class B extends A{
	{
		System.out.println("B 初始化块");
	}
	
	static{
		System.out.println("B 静态块");
	}
	
	private static Integer integer=getInteger();
	
	public B(){
		System.out.println("B 构造函数");
	}
	
	public static Integer getInteger() {
		System.out.println("B 初始化静态变量");
		return 10000;
	}
	
	public void getB() {
		System.out.println("B 的普通函数");
	}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test {
	
	public static void main(String []ags) throws Exception{		
		A a=new B();
	}
		 
}

输出结果:

洛谷P5707 【深基2.例12】上学迟到(c语言) 第一篇题解 题目描述 yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 s(s\le 10000)s(s≤10000) 米,而 yyy 可以以 v(v<10000)v(v<10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。 输入格式 两个正整数 s,v,意思已经在题目中给定 阅读详情

相关推荐

MATLAB实战:5步搞定GNSS单点定位解算(附完整代码)

本文提供了一份基于MATLAB的GNSS单点定位实战指南。通过5个核心步骤,详细讲解了如何从卫星坐标和伪距观测值出发,利用最小二乘迭代算法,构建并实现一个完整的单点定位解算器。文章附有完整代码,并涵盖精度评估与结果分析,适合GNSS初学者和MATLAB用户快速上手实践。

a2b3c4d5e的博客 250

class.forname和classloader区别

网上能找到讲class.forname和classloader区别的一堆文章,但多数不是自己想要的,结合别人和自己的分析,重新整理下class.forname和classloader二者区别。 说到class.forname和classloader二者,必须先要了解java类的装载过程。 java类的装载过程 1. 加载 类的加载主要干三件事 通过类的全限定名来获取定义此类的二进制字节流 将这个类字节流代表的静态存储结构转为方法区的运行时数据结构 在堆中生成一个代表此类的java.lang.C

L13763338360的博客 4937

基于Pixhawk与OpenMV的无人机视觉引导精准降落系统设计与实现

本文详细介绍了基于Pixhawk飞控与OpenMV视觉模块的无人机精准降落系统设计与实现。系统通过OpenMV识别Apriltag标签,结合MAVLink通信将视觉数据发送给Pixhawk,实现厘米级精准降落。文章涵盖硬件连接、软件配置、核心代码逻辑解析及实战调试技巧,为无人机自动充电、物流配送等场景提供可靠解决方案。

weixin_29189377的博客 320

java开发:Class.forName 和 ClassLoader的区别和联系 | 使用场景 | 多方位解析

1.两者都可以使用类的全量限定名,通过反射获得实体类。 2.Class.forName完成类的加载后,会继续完成类的初始化,而ClassLoader.loadClass仅仅只会完成类的加载。 3.它们的使用场景略有不同,前者主要用于加载驱动、后台代码的反射等场景,后者主要配合懒加载(主要用于配合加载配置等)。 4.两者的缺点也十分明显,就是在加载类的时候,只能加载类的无参构造函数,不能直接使用类的有参构造函数。

血煞长虹 的专栏 5013

用Multisim仿真AD630锁定放大器:从2012年电赛A题实战到避坑指南

本文详细介绍了如何使用Multisim仿真AD630锁定放大器,从2012年电赛A题实战出发,提供完整的电路搭建、参数优化及避坑指南。重点解析AD630的开关调制架构和双相位检测的工程实现,帮助读者在强噪声背景下有效提取微弱信号,提升电子设计竞赛和工程实践中的信号处理能力。

weixin_42549451的博客 203

深度解析direct path write temp与ASM IO性能问题:Oracle 19.17视图查询优化指南

本文深度解析了Oracle 19.17版本中复杂视图查询出现`direct path write temp`与`ASM IO for non-blocking poll`性能瓶颈的根本原因。通过对比11.2.0.4版本的执行计划差异,文章提供了从CBO参数调整、存储层优化到SQL架构重构的完整实战调优指南,帮助DBA有效解决升级后的查询性能问题。

2y3u4i5o6p的博客 1100

Class.forName和classloader的区别分析

class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。 classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。 Class.forName(name, initialize, loader)带参函数也可控制是否加载static块。并且只有调用了newInstance()方法采用调用构造函数,创建类的对象。 先了解下类加载机制, 5个过程。

小鲁班-JAVA开发 1274

DDS器件原理与应用(AD9833 AD9834)

是DDS的核心组成部分,用于实现相位的累加,并输出相应的幅值。相位累加器由M位宽加法器和M位宽寄存器组成,通过时钟控制,将上一次累加结果反馈到加法器输入端实现累加功能,从而使每个时钟周期内的相位递增数为,并取相位累加结果作为地址输出给ROM查找表部分。DDS的相位信息被存放在累加寄存器中,虽然幅值和相位不是线性关系,但寄存器累加值和相位可以是线性关系,很容易用寄存器的累加值表达相位信息。

m0_49968063的博客 6443

反射中,Class.forName和ClassLoader.loadCalss方法的区别

反射中Class.forName()和ClassLoader.loadClass()的区别 一 Java类装载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;   校验:检查导入类或接口的二进制数据的正确性;(文件格式

小圣_fighting的博客 3392

【华为OD】华为性格测试(综合测试)高分策略

1、性格测试非常重要,是一次否决制,18 个月有效期,所以态度一定要认真对待,不要随便乱选;2、做题原则:正向原则,积极乐观向上3、时间为 25-30 分钟,会频繁出现重复选项重复出现的题目注意一致性。

笑着的程序员的博客 3万+

GEE案例教程:融合Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据,构建完整的洪水监测与影响评估工作流

本文介绍了一个专为巴基斯坦哈扎拉分区设计的洪水监测系统,该系统整合了Sentinel-1 SAR数据、Sentinel-2光学影像和WorldPop人口数据等多源遥感数据。系统通过VV极化SAR数据的水体提取算法(阈值-13dB)实现洪水范围监测,结合10米分辨率的光学影像进行可视化验证,并利用100米分辨率人口数据评估受灾人口。系统提供完整的技术实现,包括研究区加载、遥感数据处理、日期选择界面和洪水变化检测等功能模块,为灾害应急响应提供科学依据。

此星光明博客 191

反射中,Class.forName和ClassLoader区别

今天浏览其他博客的时候,看到一个问题问“反射中,Class.forName和ClassLoader区别”,思考后,发现自己知道这两个都可以用来进行类的加载,但是其区别确实还不了解,经查阅相关资料学习后总结如下: 一、类加载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、...

辛勤的搬运工_ 8187

【Bug已解决】Codex CLI 运行时出现 command not found: codex 解决方案

方案适用场景推荐指数修复 PATH 配置最常见的基础排查方向⭐⭐⭐⭐⭐检查原生二进制完整性PATH 正常但执行仍然异常⭐⭐⭐⭐统一包管理器混用多种包管理器导致混乱⭐⭐⭐⭐确认安装脚本未被跳过CI/CD 或企业策略环境⭐⭐⭐⭐排查网络下载渠道企业内网/受限网络环境⭐⭐⭐需要留意 warning 中是否涉及脚本执行失败、网络超时重试等信息,这类 warning 往往是后续问题的前兆,建议出现明显的下载/网络相关警告时就主动重新安装一次确认。Codex CLI 报。

一键难忘的博客 1万+

Class.forName和ClassLoader区别详解

在Java的反射中,Class.forName和ClassLoader的区别 前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。 解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最...

pocher的博客 383

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java反射中,Class.forName和ClassLoader的区别

前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。 解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的...

AlbenXie的博客 438

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

在Java的反射中,Class.forName和ClassLoader的区别

在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际上也...

matinal 當冬夜漸暖 。公众号:matinal 286

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java中Class.forName和ClassLoader到底有啥区别

Java中Class.forName和ClassLoader到底有啥区别

【可全包】本人程序员,不需要做任何吹嘘,只是实在写点程序,写点文档,熟悉各类主流框架,SSM,SpringBoot,Flask,Djiango,Mysql,Sqlite,VUE,Uniapp等,各类程序设计专家,优质作者 683

Class.forName和ClassLoader有什么区别

本文来说下Class.forName 和 ClassLoader 有什么区别 文章目录概述 概述 在 java 中 Class.forName() 和 ClassLoader 都可以对类进行加载。ClassLoader 就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到 JVM 中。Class.forName() 方法实际上也是调用的 CLassLoader 来实现的。 Class.forName(String .

wh柒八九的博客 315

Class.forName 和 ClassLoader 到底有啥区别?

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |纪莫来源 |https://www.cnblogs.com/jimoer/p/9185662....

程序猿DD 615

Class.forName和ClassLoader区别

解释 Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际上也是调用的ClassLoader来实现的。 Class.forName(String className)的源码是 @CallerSensitive public static Class<?>..

qq_18221459的专栏 344

Class.forName 和 ClassLoader 加载类的区别

简单的说,ClassLoader 只是将类加载到了JVM 当中,而 Class.forName() 在加载类的同时还对类进了初始化,在对类进行初始化的过程中会执行类中的静态代码块,以及对静态变量的赋值等操作。下面,通过 Class.forName() 的代码再进一步说明下: @CallerSensitive public static Class<?> forName(String className) throws ClassNotFoundException {

cab5的博客 532

Class.forName()和ClassLoader区别

转载地址:https://www.cnblogs.com/jimoer/p/9185662.html 前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。 解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoade...

weixin_40805079的博客 234
上一篇: Java 集合类分析
下一篇: Java 父类与子类初始化块,静态块,构造函数执行顺序
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值