类加载器
加载:当程序要使用某个类时,如果该类还未被加载到内存,系统会通过加载,连接,初始化三步来对这个类初始化
加载字节码文件
加载
就是指将class文件读入内存,并为之创建一个Class对象。
任何类被使用时系统都会建立一个Class对象。
连接
验证 : 是否有正确的内部结构,并和其他类协调一致
准备 : 负责为类的静态成员分配内存,并设置默认初始化值
解析: 把类中的符号引用转换为直接引用
初始化 就是我们以前讲过的初始化步骤
分类
根类 jdk/jre/lib/rt.jar 也被称为引导类加载器,负责Java核心类的加载 ex:System,String... 在JDK中JRE的lib目录下rt.jar
扩展类 jdk/jre/lib/ext 负责JRE的扩展目录中jar包的加载, JDK中JRE的lib目录下ext目录
系统类 自己写的字节码文件.class及classpath环境变量所指定的jar包和类路径
反射 运行状态中的动态调用方法或属性的一种机制 获取字节码文件对象,剖析改类中存在的构造方法,成员变量,成员方法
类的成员:成员变量Field/构造方法Constructor/成员方法Method
解析类的成员,获取字节码文件对象方式:
Object类中的getClass
静态的class属性
Class类中的forName 开发中最常用 最灵活
理解:获取运行在JVM中的类Class对象并剖析 把各个部分抽取映射出一个独立的java类对象,就可针对每个独立对象进行操作
动态代理**** 本来应自己做的事情,请了别人来做,被请的人就是代理对象
为其他对象提供一种代理以控制对这个对象的访问
UserDao增删改查
JDK1.5以及1.7的新特性
枚举 enum //春夏秋冬 前后左右
枚举:一个类只能存在几个固定的对象 一种数据类型,一组有共同特性的数据的集合
特点:
1.枚举类要用关键字enum
2.所有枚举类都是Enum的子类
3.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的
4.枚举类可以有构造器,但必须是private的
5.可以有抽象方法,但是枚举项必须重写该方法
加载:当程序要使用某个类时,如果该类还未被加载到内存,系统会通过加载,连接,初始化三步来对这个类初始化
加载字节码文件
加载
就是指将class文件读入内存,并为之创建一个Class对象。
任何类被使用时系统都会建立一个Class对象。
连接
验证 : 是否有正确的内部结构,并和其他类协调一致
准备 : 负责为类的静态成员分配内存,并设置默认初始化值
解析: 把类中的符号引用转换为直接引用
初始化 就是我们以前讲过的初始化步骤
分类
根类 jdk/jre/lib/rt.jar 也被称为引导类加载器,负责Java核心类的加载 ex:System,String... 在JDK中JRE的lib目录下rt.jar
扩展类 jdk/jre/lib/ext 负责JRE的扩展目录中jar包的加载, JDK中JRE的lib目录下ext目录
系统类 自己写的字节码文件.class及classpath环境变量所指定的jar包和类路径
反射 运行状态中的动态调用方法或属性的一种机制 获取字节码文件对象,剖析改类中存在的构造方法,成员变量,成员方法
类的成员:成员变量Field/构造方法Constructor/成员方法Method
解析类的成员,获取字节码文件对象方式:
Object类中的getClass
静态的class属性
Class类中的forName 开发中最常用 最灵活
理解:获取运行在JVM中的类Class对象并剖析 把各个部分抽取映射出一个独立的java类对象,就可针对每个独立对象进行操作
动态代理**** 本来应自己做的事情,请了别人来做,被请的人就是代理对象
为其他对象提供一种代理以控制对这个对象的访问
UserDao增删改查
JDK1.5以及1.7的新特性
枚举 enum //春夏秋冬 前后左右
枚举:一个类只能存在几个固定的对象 一种数据类型,一组有共同特性的数据的集合
特点:
1.枚举类要用关键字enum
2.所有枚举类都是Enum的子类
3.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的
4.枚举类可以有构造器,但必须是private的
5.可以有抽象方法,但是枚举项必须重写该方法