类加载和反射

1.      JVM和类

当一个Java程序运行时,将开启一条Java虚拟机进程。同一个JVM的所有线程、所有变量都集中在一个进程里,他们都使用JVM进程的内存区。当系统出现以下几种情况时JVM进程将被终止。

1) 程序运行到最后正常结束。

2) 程序运行到使用System.exit()或Runtime.getRuntime().exit()代码结束程序。

3) 程序执行过程中遇到未捕获的异常或错误。

4) 程序所在平台强制结束了JVM进程。

2.      类的加载

当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载,连接,初始化三个步骤来进行类加载和初始化。

1) 类加载。将类得class文件读入内存中,并为之创建一个java.lang.Class对象。类得加载通常使用类加载器来完成。类加载器通常由JVM提供(系统类加载器)。开发者可以继承ClassLoader基类来建立自己的类加载器。

a.      从本地文件系统加载class文件。

b.      从JAR包加载class文件

c.      通过网络加载

d.      把一个java源文件动态编译,并执行加载。

2) 类的连接

3) 类的初始化

3.      类加载器机制。

4.      获得Class对象

1) 使用Class类得forName(“添加包名的全额限定名”)静态方法。

2) 调用某个类得class获取。例如:Person.class

3) 调用某个对象的getClass()方法。

5.      从class中获取信息

1) 获取构造器

2) 获取方法

3) 获取属性

4) 获取注解

5) 判断该类是否为接口,注解,枚举类型

6.      通过反射如何生成对象

7.      方法调用

Object invoke(Object obj, Object…args)

8.      访问属性值

9.使用反射生成JDK动态代理

10. 通过动态代理实现AOP

11. 反射和范型

1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值