博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Class.forName、Class.class、getClass示例区分
阅读量:6220 次
发布时间:2019-06-21

本文共 1483 字,大约阅读时间需要 4 分钟。

hot3.png

本文标签

差异:

1、出现的时期不同:Class.forName()在运行时加载;Class.class和getClass()是在编译器加载

2、Class.class只是在编译时用来存放类的相关信息,并没有实例化对象;而getClass()既实例化了对象,又存放了类信息
3、例:
Test t=new Test();
Class c=t.getClass();
Class c=Class.class;
Class c=Class.forName("Test");

 

示例:

package com.hsia.util;

public class Test {

Test(){}

private String test;

public String getTest() {

return test;
}

public void setTest(String test) {

this.test = test;
}

public static void f(Test t)

{
System.out.print(t);
}

public static void main(String[] arg) throws Exception

{
System.out.println(Test.class);
System.out.println(new Test());
System.out.println(Test.class.newInstance());

Class clas = null;

try {
clas = Class.forName("Test");        //此处必须为完整路径  com.hsia.util.Test
System.out.println(clas);
} catch (ClassNotFoundException ex) {
// handle exception case
}
System.out.println(clas);

Test t=new Test();

System.out.println(t.getClass().newInstance());
System.out.println(t);
f(t);
}
}

输出结果:

第一次输出:

class com.hsia.util.Test
com.hsia.util.Test@1df38fd
com.hsia.util.Test@16a786
null
com.hsia.util.Test@1efb836
com.hsia.util.Test@126e85f
com.hsia.util.Test@126e85f

第二次输出:

class com.hsia.util.Test
com.hsia.util.Test@de6ced
com.hsia.util.Test@c17164
null
com.hsia.util.Test@61de33
com.hsia.util.Test@14318bb
com.hsia.util.Test@14318bb

结论:

Test.class:输出类名

new Test():输出类实例的内存物理地址
Test.class.newInstance():输出类实例的内存物理地址
t.getClass().newInstance():输出类实例的内存物理地址
t:也是类实例内存地址

声明: 本文由()原创编译,转载请保留链接:

转载于:https://my.oschina.net/mythroad/blog/160756

你可能感兴趣的文章
Linux 常用命令记录
查看>>
线性代数与矩阵论 习题 1.2.2
查看>>
1. Two Sum
查看>>
portal单点登录的原理与实现还有ESB
查看>>
当页面加载完成时,JQ触发添加页面的元素的事件触发不了。。
查看>>
索尼Sony ATI显卡驱动 Win7 Win8 Win8.1 视频黑屏 解决方法
查看>>
中介者模式(Mediator Pattern)
查看>>
vim 简单笔记
查看>>
js功能实现top轮播图
查看>>
IOS系列swift语言之课时四
查看>>
Luogu P3935 Calculating
查看>>
passive的作用和原理
查看>>
projecteuler Summation of primes
查看>>
2018百度之星资格赛A B F
查看>>
App 卸载记录
查看>>
Chisel3 - util - BitPat
查看>>
多线程
查看>>
【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
查看>>
python 判断101-200之间有多少个素数,并输出所有素数。
查看>>
[转载]position的四个属性值: relative ,absolute ,fixed,static
查看>>