随笔分类 -  Java 类加载机制与反射

摘要:从 JDK5 以后,Java 的 Class 类增加了泛型功能,从而允许使用泛型来限制 Class 类,例如,String.class 的类型实际上是 Class<String>。如果 Class 对应的类暂时未知,则使用 Class<?>。通过在反射中使用泛型,可以避兔使用反射生成的对象需要强制类 阅读全文
posted @ 2020-03-27 15:57 认真对待世界的小白 阅读(409) 评论(0) 推荐(0)
摘要:在 Java 的 java.lang.reflect 包下提供了一个 Proxy 类和一个 InvocationHandler 接口,通过使用这个类和接口可以生成 JDK 动态代理类或动态代理对象。 使用 Proxy 和 InvocationHandler 创建动态代理 Proxy 提供了用于创建动 阅读全文
posted @ 2020-03-27 14:44 认真对待世界的小白 阅读(436) 评论(0) 推荐(0)
摘要:Class 对象可以获得该类里的方法(由 Method 对象表示)、构造器(由 Constructor 对象表示)、成员变量(由 Field 对象表示),这三个类都位于 java.lang.reflect 包下,并实现了 java.lang.reflect.Member 接口。程序可以通过对象来执行 阅读全文
posted @ 2020-03-26 16:15 认真对待世界的小白 阅读(1050) 评论(0) 推荐(0)
摘要:Java 程序中的许多对象在运行时都会出现两种类型:编译时类型和运行时类型,例如代码: Person p = new Student(); 这行代码将会生成一个p变量,该变量的编译时类型为 person,运行时类型为 Student;除此之外,还有更极端的情形,程序在运行时接收到外部传入的一个对象, 阅读全文
posted @ 2020-03-26 14:41 认真对待世界的小白 阅读(331) 评论(0) 推荐(0)
摘要:类加载机制 类加载器负责加载所有的类,系统为所有被载入内存中的类生成一个 java.lang.Class 实例。一旦一个类被载入 JVM 中,同个类就不会被再次载入了。现在的问题是,怎么样才算“同一个类”? 正如一个对象有一个唯一的标识一样,一个载入 JVM 中的类也有一个唯一的标识。在 Java 阅读全文
posted @ 2020-03-25 19:41 认真对待世界的小白 阅读(292) 评论(0) 推荐(0)
摘要:系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类。本节将会详细介绍类加载、连接和初始化过程中的每个细节。 JVM 和类 当调用 java 命令运行某个 Java 程序时,该命令将会启动一个 Java 虚拟机进程,不管该 Java 程序有多么复杂,该程序启动了多少个线程,它们都处 阅读全文
posted @ 2020-03-25 15:56 认真对待世界的小白 阅读(410) 评论(0) 推荐(0)