您的位置:首页 > 职场人生

黑马程序员—javaSE—反射和新特性

2015-12-03 23:00 429 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

1、类的加载概述和加载时机

2、类加载器的概述和分类

3、反射概述

获取字节码文件对象的方式
Class类中的静态方法:
static Class<?> forName(String className)  -- 全路径类名

数据类型的静态属性
例如:
String.class
int.class
int[].class

Object类中提供的getClass() 方法


4、Class.forName()读取配置文件举例

5、通过反射获取带参构造方法并使用

// 获取字节码文件对象

Class.forName(String classPath)

// Class类提供了newInstance()方法,使用无参构造创建一个新对象

// 通过字节码文件对象获取构造器对象
getConstructor(Class... parameterTypes); // 获取公共构造中的一个

getDeclaredConstructor(Class... parameterTypes); // 获取所有中的一个

// 通过构造器对象创建类的实例
Constructor类提供的newInstance(Object... parameters)


6、通过反射获取成员变量并使用

// 获取字节码文件对象
Class.forName(String classPath)

// 通过字节码文件对象获取构造器对象
getConstructor(Class... parameterTypes); // 获取公共构造中的一个

getDeclaredConstructor(Class... parameterTypes); // 获取所有中的一个
setAccessible(true);

// 通过构造器对象创建类的实例
Constructor类提供的newInstance(Object... parameters)

// 通过字节码文件对象获取字段(Field) -- 成员变量、属性、域、字段
getField(String name); // 获取公共字段中的一个

getDeclaredField(String name);// 获取所有字段中的一个
setAccessible(boolean flag); // 暴力访问(取消java语言访问检查)

// 使用字段
Field类的方法   set(Object obj, Object value); // 为obj对象的字段赋值为value


7、通过反射获取方法并使用 – Method

// 获取字节码文件对象
Class.forName(String classPath)

// 通过字节码文件对象获取构造器对象
getConstructor(Class... parameterTypes); // 获取公共构造中的一个

getDeclaredConstructor(Class... parameterTypes); // 获取所有中的一个
setAccessible(true);

// 通过构造器对象创建类的实例
Constructor类提供的newInstance(Object... parameters)

// 通过字节码文件对象获取方法
getMethod(String name, Class... parameterTypes) // 获取公共中的一个(包含父类的)

getDeclaredMethod(String name, Class... parameterTypes) // 获取所有中的一个(不包含父类的)
setAccessible(true);

// 通过方法对象执行方法
Method类提供功能   Object invoke(Object obj, Object... objs) // new Class[]{String.class, int.class}


8、通过反射越过泛型检查

9、设置某个对象的某个属性为指定的值

10、反射练习

11、动态代理的概述和实现

12、模版(Template)设计模式概述和使用

创建型:

工厂模式

简单工厂模式

工厂方法模式

单例模式

饿汉式

懒汉式 – 延迟加载,多线程数据安全问题

结构型:对象间的关系
装饰设计模式

行为型:对象能够做什么
模板方法模式


13、JDK5新特性(自己实现枚举类)

14、通过enum实现枚举类

15、枚举的注意事项

16、枚举类的常见方法

int ordinal() – 枚举项的索引

int compareTo(Object obj) – 比较枚举项的顺序

String name() – 枚举项的名称

String toString() – 默认返回枚举项的名称,可以重写

Object[] values() – 返回所有枚举项

17、JDK7的六个新特性回顾和讲解

18、JDK8的新特性

1、接口中可以定义实现的方法了,但是必须加default修饰。

2、接口中可以定义静态方法了。

3、局部内部类使用方法中的局部变量,现在可以不必手动加final修饰了,JDK会默认加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java