-
反射的概述
类加载器(ClassLoader)
负责将类的字节码文件加载到内存中,并生成对应的Class对象
Class 对象
java.lang.Class类的对象,也叫字节码文件对象,每个Class对象对应一个字节码文件
类加载时机
1.创建类的实例
1
|
Student stu= new Student(); |
当程序创建了一次该类的对象时,再次创建该类的对象时,类的加载器不会再次将字节码文件加载到内存当中
2.访问类的静态成员
1
|
Calendar.getInstance*(); |
3.初始化类的子类
1
2
|
class User extends Person(){} User user = new User(); //先加载父类 |
4.反射方式创建的Class对象
1
|
Class clazz =Class.forName( "类的正名" ); |
正名:包名+类名,例如:cn.qq.demo.Student
获取Class对象的三种方式
Object类的getClass()方法
1
|
Class clazz =对象名.getClass(); |
类的静态属性
1
|
Class clazz =类名. class ; |
Class类的静态方法
1
|
Class clazz =Class.forName( "类的正名" ); |
三种获取Class对象的例子:
Student.java
1
2
3
4
5
|
cn.qq.demo.Student public class Student{ } |
Demo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
cn.qq.demo.Demo public class Demo{ public static void main(String[] args) throws ClassNotFoundException{ //方式一 Student stu = new Student(); Class clazz1 = stu.getClass(); //方式二 Class clazz2 = Student. class ; //方式三 Class clazz3 = Class.forName( "cn.qq.demo.Student" ); } } |
原文:https://www.cnblogs.com/kkwt/p/14296051.html
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比