社区
Java SE
帖子详情
关于 类.class 与对象.getClass() 以及 Class.forName("类名");
adrain_sengtang
2008-12-26 02:45:08
请问 :
有一个类A
Class cl=A.class;
jvm究竟在内存中做了什么 ?
而 对象.getClass() 以及 Class.forName("类名"); jvm 又做了什么 ?
...全文
290
5
打赏
收藏
关于 类.class 与对象.getClass() 以及 Class.forName("类名");
请问 : 有一个类A Class cl=A.class; jvm究竟在内存中做了什么 ? 而 对象.getClass() 以及 Class.forName("类名"); jvm 又做了什么 ?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jhr924
2008-12-26
打赏
举报
回复
[Quote=引用 4 楼 jiangnaisong 的回复:]
引用楼主 adrain_sengtang 的帖子:
请问 :
有一个类A
Class cl=A.class;
jvm究竟在内存中做了什么 ?
而 对象.getClass() 以及 Class.forName("类名"); jvm 又做了什么 ?
答:
1)Class cl=A.class; JVM将使用类A的类装载器,将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象
2)Class cl=对象引用o.getClass();返回引用o运行时真正所指的对象(因为:儿子对象的引用可能…
[/Quote]
高手
云上飞翔
2008-12-26
打赏
举报
回复
[Quote=引用楼主 adrain_sengtang 的帖子:]
请问 :
有一个类A
Class cl=A.class;
jvm究竟在内存中做了什么 ?
而 对象.getClass() 以及 Class.forName("类名"); jvm 又做了什么 ?
[/Quote]
答:
1)Class cl=A.class; JVM将使用类A的类装载器,将类A装入内存(
前提是:类A还没有装入内存
),
不
对类A
做类的初始化工作
.返回类A的Class的对象
2)Class cl=对象引用o.getClass();返回引用o
运行时真正所指的对象
(因为:儿子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象
3)Class.forName("类名"); JAVA人都知道.
装入类A
,并
做类的初始化
.
gongfuliang
2008-12-26
打赏
举报
回复
getClass是获取对象的Class对象,
Class.forname是要求JVM查找并加载指定的类,JVM会执行该类的类域和静态代码段
二者还是有区别的哦
helei123a
2008-12-26
打赏
举报
回复
学习
树成
2008-12-26
打赏
举报
回复
前面两个放法就是获得一个Class类对象而已,没做什么;
Class.forName通过用户当前类加载器根据提供的类名加载类到虚拟机中,然后返回这个类的Class对象。
java中
Class
对象
获取方式:
类
名
.
class
,
class
.forName(), get
Class
()区别
本文探讨了Java中的
Class
对象
,包括它的概念、作用,以及通过
类
名
.
class
、
Class
.forName()和
对象
.get
Class
()三种方式获取
Class
对象
的区别。
Class
对象
是Java反射的基础,允许在运行时获取
类
型信息。.
class
用于静态加载,
Class
.forName()则在运行时加载并执行
类
的静态初始化。get
Class
()是
对象
实例的方法,返回
对象
的实际
类
型。
Java中的“
类
名
”.
class
、
Class
.forName()、“引用名”.get
Class
()
本文详细解析了Java中获取
Class
对象
的三种常见方式:
类
名
.
class
、
Class
.forName()及引用名.get
Class
(),并阐述了它们在
类
加载过程中的具体作用与区别。
java中
类
名
.
class
,
class
.forName(), get
Class
()区别
博客介绍了Java中
Class
对象
的三种生成方式,包括
类
名
.
class
、
Class
.forName(\
类
名
字符串\)、实例
对象
.get
Class
(),并通过程序测试结果发现三种方式生成的
Class
对象
相同,且只进行一次静态参数初始化,说明生成
Class
对象
时会先判断内存是否已加载。
反射.
class
、
class
.forname() 和 get
Class
() 的区别
本文深入探讨Java反射机制的概念,解释其如何在运行时获取
类
信息和调用方法,包括
类
加载过程、反射与传统编程的区别及应用。同时,对比了.
class
、
Class
.forName()和get
Class
()的不同,介绍了反射在工厂设计模式中的运用。
java中
Class
对象
详解和
类
名
.
class
,
class
.forName(), get
Class
()比较
本文深入解析Java反射机制,探讨
Class
对象
的生成方式及其在反射中的应用。通过实例演示
Class
对象
如何在运行时获取
类
信息,包括
类
名
、父
类
、接口、是否为数组或枚举等,并介绍了asSub
class
方法的使用场景。
Java SE
62,621
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章