1. Properties
了解:
Properties类表示一组持久的属性。
Properties可以保存到流中或从流中加载。
属性列表中的每个键及其对应的值都是一个字符串。
Properties常用做配置文件使用
定义使用步骤:
1.src下新建文件 xx.properties。
2.创建Properties类型的对象。
3.调用load(InputStream|Reader)。
4.根据key获取value getProperty(key)。
2. 反射
是JAVA有着一个非常突出的动态相关机制:Reflection。
反射是发生在程序运行期间的行为。
Java反射机制,可以实现以下功能:
①在运行时判断任意一个对象所属的类;
②在运行时构造任意一个类的对象;
③在运行时判断任意一个类所具有的成员变量和方法;
④在运行时调用任意一个对象的方法;
反射的源头 :
Class : 类类实例表示正在运行的Java应用程序中的类和接口。
Class类型的对象: 在一个类型加载到内存中就存在一个属于表示当前类型的Class对象,唯一的,不变的。
-
反射的源头 :
Class对象 1.类名.class。 2.Class.forName(权限定名) 权限定名: 包名.类名 。 3.对象.getClass()。
-
通过反射创建对象:
1.Class ->newInstance() 默认调用空构造为对象初始化信息。 2.Constructor->newInstance() 创建对象。 1.获取某一个类中构造器: 构造器<T> getConstructor(类<?>... parameterTypes) 返回一个 构造器对象,该对象反映此 类对象所表示的类的指定公共构造函数。 构造器<?>[] getConstructors() 返回一个包含 构造器对象的数组, 构造器对象反映了此 类对象所表示的类的所有公共构造函数。 构造器<T> getDeclaredConstructor(类<?>... parameterTypes) 返回一个 构造器对象,该对象反映此 类对象所表示的类或接口的指定构造函数。 构造器<?>[] getDeclaredConstructors() 返回 构造器对象的数组, 构造器对象反映由此 类对象表示的类声明的所有构造函数。 2.调用Constructor类提供的newInstance方法,创建对象的时候调用当前构造器初始化信息。
-
通过反射操作成员:
操作方法: 1.获取方法 方法 getMethod(String name, 类<?>... parameterTypes) 返回 方法对象,该对象反映此 类对象表示的类或接口的指定公共成员方法。 方法[] getMethods() 返回一个包含 方法对象的数组, 方法对象反映此 类对象所表示的类或接口的所有公共方法,包括由类或接口声明的那些以及从超类和超接口继承的那些。 方法 getDeclaredMethod(String name, 类<?>... parameterTypes) 返回 方法对象,该对象反映此 类对象表示的类或接口的指定声明方法。 方法[] getDeclaredMethods() 返回一个包含 方法对象的数组, 方法对象反映此 类对象表示的类或接口的所有已声明方法,包括public,protected,default(package)访问和私有方法,但不包括继承的方法。 2.调用方法 Object invoke(Object obj, Object... args) 在具有指定参数的指定对象上调用此 方法对象表示的基础方法。 操作属性: 1.获取属性 字段 getField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定公共成员字段。 字段[] getFields() 返回一个包含 字段对象的数组, 字段对象反映此 类对象所表示的类或接口的所有可访问公共字段。 字段 getDeclaredField(String name) 返回 字段对象,该对象反映此 类对象表示的类或接口的指定声明字段。 字段[] getDeclaredFields() 返回 字段对象的数组, 字段对象反映由此 类对象表示的类或接口声明的所有字段。 2.获取属性值 Object get(Object obj) 返回指定对象上此 字段表示的字段的值。 3.设置属性值 void set(Object obj, Object value) 将指定对象参数上此 字段对象表示的字段设置为指定的新值。
3. 注解
标注,jdk1.5新特性。
-
作用:
1.注释,解释的作用。 2.标志检查的作用。 3.添加注解的时候可以通过配置传递参数,运行期间通过反射获取到配置的数据,程序中进行使用。 4.注解可以存在与Class文件中。 5.注解大量的代替了配置文件的存在。
-
语法:
@注解名(实参)
-
位置:
任意位置
-
分类:
jdk内置注解: @Override 限定重写父类方法 @Deprecated 标记已过时 @SuppressWarnings 抑制警告 @FunctionalInterface 函数式接口 元注解 : 注解注解的注解。 自定义注解。
-
参数个数划分:
标记注解 : 没有参数。 单值注解 : 一个参数。 完整注解 : 多个参数。
-
原注解 :
注解注解的注解@Target 用于描述注解的使用范围(即:被描述的注解可以用在什么地方)。 @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有)。 @Documented 表示使用该注解的元素应被javadoc或类似工具文档化。 @Inherited 表示一个注解类型会被自动继承。
-
自定义注解 :
1.通过@interface自定义注解类型。 2.自定义的注解类型默认实现java.lang.annotation Annotation接口。 3.自定义的注解类型不能显示的继承其他父类,实现其他接口。 4.注解类中可以定义注解类型的字段,特殊的定义方法,需要字段名后面添加() --> 修饰符 类型 字段名(); 5.如果注解类型中只有一个字段,建议这个字段名定义为value,赋值的时候可以直接赋值。 6.注解类型中的字段的数据类型,只能为以下几种类型 : 基本数据类型,String,Annotation,枚举类型,或者这几种类型的数组。 7.字段的修饰符只能为public|default。 8.通过default关键字为字段定义默认值。