Day15_Java(8.12)_反射

Day15_Java_Properties_类的加载_反射

java.util.Properties:用来保存键值对
1.使用所有Map的方法
2.经常用来做配置信息
	数据保存的方式:临时保存
		数组
		集合
	持久保存:
		文件
		数据库
	Properties能过读取内容是文本,并且保存的数据是key_value形式的数据,并且根据key获取value
	jvm也是Properties保存的
3.通过eclipse添加jvm的运行参数和程序的运行参数
	右键-->runas-->
4.创建一个文件
info.properties
这种形式的文件叫做properties文件
5.读取文件,需要的前置知识
	数据的流向IO--->input output
	Scanner,programing arguments,VM arguments--->程序--->输出--->控制台(console)
	文件-->程序-->文件
	获取到文件的路径

// 创建实例的过程

Teacher t = new Teacher();

1.在栈中开辟空间,保存引用t

2.在堆中开辟空间保存实际数据

3.将堆区空间地址赋给栈区变量

4.对对象中的变量进行隐形赋值

5.对对象中的变量进行显性赋值

6.执行类中的代码块

7.执行对应的构造器

类加载

加载—>连接—>初始化
1.加载
.class 加载进内存的过程
java.lang.Class
如何对一个类在JVM中做唯一标识
包名+类名 = 全限类名
Student s1 = new Student();
Student s2 = new Student();
只会产生一个Class实例
2.连接:
验证:
分配空间:静态成员
解析功能:
info();//简介引用
3.初始化
用到该类的时候进行初始化
产生该类的对象的时候
使用该类的静态成员
使用该类子类的时候,父类也要跟着初始化
通过反射来创建的时候,Class.forName(全限类名);
初始化静态变量(显性的初始化),静态代码块,静态方法
静态成员是按照顺序从上到下执行的
JVM可以强制提前对某些类进行初始化
类加载器 ClassLoader
1.类加载器的类的来源
2.类加载器的类型:
跟类加载器(BooStrapClassLoader)
其他类加载器
都是ClassLoader 的子类
扩展类加载器(ExtensionClassLoader)
系统类加载器(SystemClassLoader)
3.类加载器的范围:
BootstrapClassLoader:提前加载JDK中的rt.jar,resource,jar
ExtensionClassLoader:为JDK添加一些功能拓展的jar包,jre/ext下面的所有jar包里的class
如果想对JDK做一些功能拓展,可以把自己写好的工具类的.class文件使用jar命令打成jar包,放在该目录下
SystemClassLoader:我们自己写的.class文件,由classpath指定目录下所有class文件
4.类加载器之间是有一个子父关系的
该子父关系不是指继承关系,而是实例之间的父子关系

拓展
系统
5.类加载器的工作的一些机制
全局加载:
父类委托:
有什么事情找父亲帮忙,如果父亲不帮你,你再自己干

缓存加载:

6.使用类加载器来加载类

反射

一个java程序分为:编译运行
Person p = new Student();
p的编译类型Person
p的运行类型Student
通过该反射产生的镜像对象拥有和原对象一样的属性和方法
镜像对象的属性就是原对象的属性
镜像对象可以获得原对象的与所有方法,构造器,属性,实现的接口,继承的父类,添加的注解,使用的泛型

static int i = 10;
i 抽象成类
class Filed{
String type= “int”
String name = “i”
int value = 10;
int modified ;
}

1.学会使用获得镜像对象,三种方式
1>.知道类的全限类名com.briup.day06.Student
Class.forName(全限类名)
2>.只知道类名
Student.class;
3>.只知道对象的名字,stu1
stu1.getClass();
2.创建一个测试的例子 ReflectTest.java
java/lang.Class 的实例叫做镜像对象
java.lang.reflect
3.具体参见代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值