如何得到各个字节码对应的实例对象?

每个类被加载后,系统会为该类生成对应的Class对象,通过Class对象可以访问到JVM中的这个类,

3种方式:

1、调用某个类的class属性获取Class对象,如Date.class会返回Date类对应的Class对象(其实就是得到一个类的一份字节码文件);

2、使用Class类的forName(String className)静态方法,className表示全限定名;如String的全限定名:java.lang.String;

3、调用某个对象的getClass()方法。该方法属于Object类;

Class<?> clz = new Date().getClass();

Eg:

package junereflect624;

public class ClassDemo1 {

public static void main(String[] args) throws Exception {

//获得Class对象的方法(三种)

//一:调用属性

Class<String> c = String.class;

System.out.println(c);//打印结果:class java.lang.String                String.class就表示JVM中一份表示String类的字节码

Class<String> c2 = String.class;

System.out.println(c == c2);//true都是String类的字节码        一个类在虚拟机中只有一份字节码;

//二:使用forName()方法

//Class cla = Class.forName("String");//ERROR,

Class<String> cla =                                                         (Class<String>)Class.forName("java.lang.String");//必须用上全限定名,否则报错

System.out.println(c == cla);//true

//三:利用对象调用Object的getClass方法;

Class c3 = new String().getClass();

System.out.println(c == c3);//ture

}

}

我的总结:获取Class对象最常用的是利用属性的方法!

最新文章

  1. 曲线参数化的Javascript实现(代码篇)
  2. 多系统PE win UBUNTU OSX
  3. Quality assessment and quality control of NGS data
  4. Objective-C之Block
  5. canvas小知识
  6. 搭建sentry(一个分布式日志聚合系统)
  7. JAVA基础之StringBuilder基础方法
  8. C# 字符串常用操作 分类: C# 2014-08-22 15:07 238人阅读 评论(0) 收藏
  9. CH Round #48 - Streaming #3 (NOIP模拟赛Day1)
  10. qt之窗口换肤(一个qss的坑:当类属性发现变化时需要重置qss,使用rcc资源文件)
  11. Ajax应用-Ajax传输JSON数据实例
  12. 皓轩的jquery mobile之路(二)
  13. Mysql(六):数据备份、pymysql模块
  14. BeanNameAware和BeanFactoryAware接口
  15. 使用LFSR搭建误差补偿系统
  16. 你可能不知道的BFC在实际中的应用
  17. angularjs中阻止事件冒泡,以及指令的注意点
  18. iOS数据库操作之coredata详细操作步骤
  19. 百度地图 隐藏百度地图Logo
  20. SQL Server数据库——数据库的数据导出与数据导入

热门文章

  1. Effective Modern C++:07并发API
  2. iPhone开发之深入浅出 (7) — ARC总结
  3. KDD2016,Accepted Papers
  4. 设置脚本sh
  5. Directx11教程(45) alpha blend(2)
  6. 2019-11-12-WPF-添加窗口消息钩子方法
  7. Leetcode733.Flood Fill图像渲染
  8. Ubuntu官方源
  9. CDH5.13.1安装
  10. 【Leetcode链表】旋转链表(61)