一旦类被加载了到了内存中,那么不论通过哪种方式获得该类的Class对象,它们返回的都是指向同一个java堆地址上的Class引用。jvm不会创建两个相同类型的Class对象

public class Cat {static {System.out.println("wwwww");}
}class T1 {public static void main(String[] args) throws ClassNotFoundException {System.out.println("inside main");Class c1 = Cat.class;Class c2 = Class.forName("com.example.demo.Cat");Class c3 = new Cat().getClass();System.out.println(c1 == c2);System.out.println(c2 == c3);System.out.println("finish main");}
}

从上面我们可以看出执行不同获取Class引用的方法,返回的其实都是同一个Class对象。

其实对于任意一个Class对象,都需要由它的类加载器和这个类本身一同确定其在就Java虚拟机中的唯一性,也就是说,即使两个Class对象来源于同一个Class文件,只要加载它们的类加载器不同,那这两个Class对象就必定不相等。这里的“相等”包括了代表类的Class对象的equals()、isAssignableFrom()、isInstance()等方法的返回结果,也包括了使用instanceof关键字对对象所属关系的判定结果。所以在java虚拟机中使用双亲委派模型来组织类加载器之间的关系,来保证Class对象的唯一性。

java Class对象返回的都是指向同一个java堆地址上的Class引用相关推荐

  1. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递

    参考链接: 用Java传递和返回对象 看完绝对清晰~ java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? pdd:所谓java只有按值传递:基本类型  值传递:引用类型,地址值传递,所 ...

  2. java中的事件都继承自_下列说法中不正确的是()。A.Java语言中的事件都是继承自Java.awt.AW-TEvent类B.AWTEve...

    下列说法中不正确的是().A.Java语言中的事件都是继承自Java.awt.AW-TEvent类B.AWTEve 更多相关问题 [单选] 月经后期而至,量少,色淡,质清稀,少腹隐痛,喜暖喜按,脉沉迟 ...

  3. java 判断对象中所有属性都为空

    /*** 判断对象中的属性是否全为null** @param o* @return 全为空返回true*/public boolean allFieldIsNULL(Object o) {try {f ...

  4. java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...

    将java对象转换为on对象,市面上有很多第三方jar包,如下: jackson(最常用) com.fasterxml.jackson.core jackson-databind 2.11.2 gso ...

  5. java中如何返回四维数组_如何从Java中的方法返回数组?

    我们可以从Java中的方法返回Java中的数组.在这里,我们有一个createArray()方法,通过从用户那里获取值来动态创建一个数组并返回创建的数组. 示例import java.util.Arr ...

  6. java json对象 输出_拼json字符串输出java对象

    @SuppressWarnings("serial") public class AddBankCardLog { private String custno;//客户号 priv ...

  7. Java String 对象,你真的了解了吗?| CSDN 博文精选

    作者 | 平头哥的技术博文 责编 | 屠敏 出品 | CSDN 博客 String 对象的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的 ...

  8. java中将json字符串_Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  9. java判断对象无数据_java 对象属性不能为空判断

    如何判断一个对象里的属性是否都为空的 怎么判断一个对象里的属性是否都为空的怎么判断一个对象里的属性是否都为空的,或者判断该对象是否是一个实体!引用:怎么判断一个对象里的属性是否都为空的,或者判断该对象 ...

最新文章

  1. 建议收藏!从零开始学PyTorch
  2. .Net程序员学用Oracle系列(10):系统函数(中)
  3. ubuntu as86
  4. @import注解_Spring 注解之@Import 注入的各种花活
  5. vts传感器采取船舶的_【火炬高企】船舶通讯导航设备专家新诺航科
  6. 【数据结构】栈的压入、弹出序列
  7. EF架构~为IEnumerable接口添加增删查等操作,原因是IEnumerable导航属性更放心
  8. java 多线程下载 开源_Android Downloader是一个开源的多线程,多任务下载框架
  9. 移动端cube界面设计html,滴滴 Web 移动端组件库 cube-ui 开源
  10. Linux学习笔记(四)之用户登录
  11. 构建之法首周阅读体会
  12. Java日志记录最佳实践
  13. kettle的hello world
  14. 汇编语言将十六进制数转换成十进制数_汇编语言--键盘输入两个一位十进制数 ,以十进制数的形式输出其和...
  15. JavaScript数据结构和算法(转载)
  16. Bootstrap---dateTimePicker时间控件配置与应用
  17. 在线DES加密/解密工具
  18. 如何把视频生成二维码,手机扫一扫就可以看
  19. DTAS棣拓三维公差分析软件容差分析软件蒙特卡洛法:DTAS Talk尺寸联盟参与公益课
  20. NEON码农指导 Chapter 4 : NEON Intrinsics

热门文章

  1. BufferedInputStream学习笔记
  2. 【转】删除已经存在的 TFS Workspace
  3. iOS开发:通过经纬度获得城市、省份等信息
  4. 多功能节点连线绘图控件Nevron Diagram for .NET使用方法及下载地址
  5. 嵌入式NVR发展浅析
  6. 使用标定板对相机位姿进行估计
  7. 拿到项目怎么开始整理PCB原理图
  8. 字符串常量与字符串变量
  9. python scrapy爬虫遇见301_在Pycharm中运行Scrapy爬虫项目的基本操作
  10. 555定时器回差电压计算公式_555时基电路引脚解析