社区
Java
帖子详情
为什么.class不会引起类的初始化
duoyu5555
2015-05-13 01:25:03
如题,有个类是ClassA
为什么Class class_a=ClassA.class;
不会引起ClassA的初始化过程;
而改成Class class_a=Class.forName("package.ClassA");
则会引发初始化过程
...全文
286
7
打赏
收藏
为什么.class不会引起类的初始化
如题,有个类是ClassA 为什么Class class_a=ClassA.class; 不会引起ClassA的初始化过程; 而改成Class class_a=Class.forName("package.ClassA"); 则会引发初始化过程
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DAVE-BLACK
2019-06-11
打赏
举报
回复
,class可以理解为告诉虚拟机这个类我要用。你赶紧看看有没有类模板供我使用
DAVE-BLACK
2019-06-11
打赏
举报
回复
.class是加载类模板。你可以用类模板.newinstance来构造对象。或者调用带参数的构造方法。详细的话参考反射
DAVE-BLACK
2019-06-11
打赏
举报
回复
.class是加载类模板。你可以用类模板.newinstance来构造对象。或者调用带参数的构造方法。详细的话参考反射
林蜗牛snail
2019-06-11
打赏
举报
回复
.class可能就相当于loadclass()? maybe,这块不是很懂
Leeycw96
2019-06-11
打赏
举报
回复
我个人的理解是:虽然ClassA.class看上去是调用了ClassA的类变量,应当是要初始化ClassA的,也就是要执行<clinit>,但是你可以直接去看.class文件关于这条语句的调用处,会发现该语句对应的指令不是invokestatic 所以这里是不会初始化ClassA,当然肯定是会加载ClassA的;至于Class.forName()为什么会初始化这个类,你可以去看下源码,最终底层会执行forName0()这个方法,而这个方法有个boolean参数initialize,默认为true,initialize就是初始化的意思,这么默认为true,所以是会初始化的,特别的一点是,Class类还提供了一个重载的forName()方法,可以指定boolean initialize,也就意味着你可以输入false,来让这个forName不执行初始化过程
S117
2015-05-13
打赏
举报
回复
这个要去看java虚拟机规范了
zapdos
2015-05-13
打赏
举报
回复
这个问题问的好,不过大概也就是实现问题而已 此外使用classloader来define一个class也是不会进行初始化的 所以我觉得forName其实也没必要初始化,可以留到使用时再初始化,不知道要初始化的原因是什么 等高手解答
彻底搞懂python元
类
meta
class
彻底了解python元
类
meta
class
: 如何用type创建
类
什么是元
类
及元
类
如何定义 案例:wtforms源码分析 案例:元
类
实现单例模式
类
的
初始化
会
不会
引起
初始化
?区别是什么?
类
的实例化都干了什么? 接口的
初始化
时机? 2
类
的
初始化
步骤 假如这个
类
还没有被加载和连接,那就先进行加载和连接。 假如
类
存在直接父
类
,并且这个父
类
还没有被
初始化
,那就先...
class
对象及
类
的
初始化
过程
第十四章
类
型信息14.2 加载,链接,
初始化
具体详细 简洁明了 Java字节代码的表现形式是字节数组(byte[]),而Java
类
在JVM中的表现形式是java.lang.
Class
类
的对象...而链接和
初始化
则是在使用Java
类
之前会发生的动作。
java
类
初始化
_Java
类
的
初始化
Java
类
的
初始化
我们知道一个
类
(
class
)要被使用必须经过装载,连接。
初始化
这种过程。以下先对这三阶段做一个简单的描写叙述。之后会结合一个简单的样例来说明java中
类
的
初始化
过程。在装载阶段,
类
装载器(Bootstrap ...
深入理解Java对象的创建过程:
类
的
初始化
与实例化
在实例化一个对象时,JVM首先会检查相关
类
型是否已经加载并
初始化
,如果没有,则JVM立即进行加载并调用
类
构造器完成
类
的
初始化
。在
类
初始化
过程中或
初始化
完毕后,根据具体情况才会去对
类
进行实例化。本文试图对JVM...
Java
50,549
社区成员
85,621
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章