* 获取Class对象的方式:
1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象
    * 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
2. 类名.class:通过类名的属性class获取
    * 多用于参数的传递
3. 对象.getClass():getClass()方法在Object类中定义着。
    * 多用于对象的获取字节码的方式

* 结论:
    同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。

package cn.learn.domain;public class Person {private String name;private int age;public String a;protected String b;String c;private String d;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", a='" + a + '\'' +", b='" + b + '\'' +", c='" + c + '\'' +", d='" + d + '\'' +'}';}public void eat(){System.out.println("eat...");}public void eat(String food){System.out.println("eat..."+food);}
}
package cn.learn.domain;public class Student {}
package cn.learn.reflect;import cn.learn.domain.Person;
import cn.learn.domain.Student;public class ReflectDemo1 {/**获取Class对象的方式:1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象2. 类名.class:通过类名的属性class获取3. 对象.getClass():getClass()方法在Object类中定义着。*/public static void main(String[] args) throws Exception {//1.Class.forName("全类名")Class cls1 = Class.forName("cn.learn.domain.Person");System.out.println(cls1);//2.类名.classClass cls2 = Person.class;System.out.println(cls2);//3.对象.getClass()Person p = new Person();Class cls3 = p.getClass();System.out.println(cls3);//== 比较三个对象System.out.println(cls1 == cls2);//trueSystem.out.println(cls1 == cls3);//trueClass c = Student.class;System.out.println(c == cls1);}
}

反射_获取字节码Class对象的三种方式相关推荐

  1. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)

    Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...

  2. Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式

    1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...

  3. java反射获取实体类_java 反射获取类对象的三种方式

    Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...

  4. 反射应用和获取Class对象的三种方式

    一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...

  5. java class 生成对象_Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...

  6. 获取Class对象的三种方式

    获取Class对象的三种方式 Object --> getClass() 通过对象.getclass 任何数据类型(包括基本数据类型)都有一个"静态"的class属性 通过类 ...

  7. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/m ...

  8. Redis存储对象的三种方式

    存储对象的三种方式分别为: 1.将对象序列化后保存到Redis 2.将对象用FastJSON转为JSON字符串后存储 3.将对象用Hash数据类型存储 序列化工具类SerializeUtil publ ...

  9. 详解C#实例化对象的三种方式及性能对比

    前言 做项目过程中有个需求要实例化两万个对象并添加到List 中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录. 首先想到的是可能实例化比较耗时,于是开始对每种实例 ...

最新文章

  1. 需求文档可以不签字吗之三-一个实例
  2. 「Swift」Swift与C++和Python
  3. OJ1081: n个数求和 (多实例测试)(C语言数组实现)
  4. 控制台异常:Could not connection
  5. 切换到 oracle的 hr用户下面练习
  6. 关于focus的概念
  7. AI考拉技术分享会--IDE 常用功能 for Node.js
  8. yuml 保存为图片_SLAM建图
  9. NullReferenceException
  10. origin使用指导。pdf_获取所有的最高法指导性案例并保存为pdf
  11. 计算机上安装了新的ie版本,win7电脑自带的IE11浏览器如何降级到IE8
  12. 软件测试基础理论(总结)
  13. IT码农哥放弃50万年薪:辞职卖咖喱凉皮
  14. Apostrophe not preceded by \
  15. 金融级湖仓一体架构——SequoiaDB巨杉数据库初探
  16. html语言无序下拉菜单,(4条消息)HTML语言标记详解
  17. 常规调幅系统matlab结果,matlab课程设计参考题目
  18. cad中填充的剖面线不能被修剪_为什么CAD中填充无法修剪?
  19. android小米推送,Android手机端小米推送Demo解析和实现方法
  20. ES GEO地理空间查询java版

热门文章

  1. 2017-2018-2 20165329 实验五 网络编程与安全
  2. 根据json对象的某一属性对其进行排序
  3. python开发Day05(计算器代码)
  4. Keymob浅析2016网络营销十大趋势
  5. TOJ 4393 Game
  6. 【CentOS 7笔记46】,crondtab任务计划和chkconfig系统服务管理#
  7. 雷林鹏分享:PHP 字符串变量
  8. Git区分文件名大小写
  9. 手动建立Mysql表实体类技巧
  10. LVM的创建与快照和SSM存储管理器的使用