A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Zzz...123 初级黑马   /  2019-7-25 14:57  /  982 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. java虚拟机类加载的过程和时机
   - 类加载
     - 内置的类加载器,将class文件加载入虚拟机内存
     - 为当前class文件生成java.lang.Class对象(创建对象的模板,分析类的属性方法)
   - 类链接
     - 验证:验证当前类的语法结构
     - 准备:   类变量的内存分配
     - 解析:    将变量名换成内存地址
   - 类初始化
     - 初始化:  变量进行初始化
2. 何时会触发类的加载和初始化
   - java命令执行相应的class 文件的时候
   - 创建类的对象    new Person()
   - 调用类的静态方法或静态变量  Person.name    Person.eat()
   - 初始化某个类的子类
   - 通过反射机制获取java.lang.Class对象的时候
3. 类加载器的作用
   - 将class文件加载入内存,为class文件生成 java.lang.Class对象
4. Java类加载器分类(父类委托)
   - 应用程序类加载器:负责加载我们工程中自定义的类
   - 平台类加载器:底层类库的加载
   - 根类加载器:底层类库的加载
5. 反射的概念
   - 概念:通过class对象动态的获取类内部结构(构造函数,方法,变量),对其进行调用的过程
6. 获取类class对象的三种方式
   - 类名.class
   - 对象.getClass()
   - Class.forName("完整类路径")
7. 反射获取构造方法
   - 获取共有构造方法: c.getConstructors()
   - 获取全部构造方法: c.getDeclaredConstructors()
   - 获取单个的共有构造方法: c.getConstructor(Class<?>... parameterTypes)
   - 获取单个全部的构造方法:c.getDeclaredConstructor(Class<?>... parameterTypes)
   - 获取到构造方法对应的对象后如何实例化:newInstance()
   - 可以调用私有构造:setAccessible(true);
8. 反射获取字段
   - 获取所有公有属性:getFields()
   - 获取所有属性:getDeclaredFields()
   - 获取单个公有属性:getField(String fieldName)
   - 获取单个所有属性:getDeclaredField(String fieldName)
   - 为属性赋值:addressField.set(obj,"西安");
   - 读取属性的值:addressField.get(obj)
9. 反射调用方法
   - 获取所有公有方法包括继承来的:getMethods()
   - 获取所有方法不包括继承来的:getDeclaredMethods()
   - 获取单个公有方法:getMethod("方法名")
   - 获取单个方法:getDeclaredMethod("方法名")
   - 方法调用:m.invoke(obj);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马