//TesDynamicLoading.java
public class TestDynamicLoading {
public static void main(String[] args) {
new A();
System.out.println("********************************************");
new B();
new C();
new C();
new D(1);
new D(1);
}
}
class A{
}
class B{
}
class C{
static{//类加载时被执行
System.out.println("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC");
}
}
class D{
D(int i){
}
{//为对象分配内存时执行
System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
}
}
//TestJDKClassloader.java
public class TestJDKClassLoader {
public static void main(String[] args) {
/*System.out.println(String.class.getClassLoader());
System.out.println(com.sun.crypto.provider.DESKeyFactory.class
.getClassLoader().getClass().getName());
System.out.println(TestJDKClassLoader.class.getClassLoader().getClass()
.getName());
System.out.println(ClassLoader.getSystemClassLoader().getClass().getName());*/
ClassLoader c=TestJDKClassLoader.class.getClassLoader();
while(c!=null){
System.out.println(c.getClass().getName());
c=c.getParent();
}
}
}
//TestReflection.java
import java.lang.reflect.Method;
public class TestReflection {
public static void main(String[] args) throws Exception {
String str = "T";
Class c = Class.forName(str);
Object o = c.newInstance();
Method[] methods = c.getMethods();
for (Method m : methods) {
if (m.getName().equals("mm")) {
m.invoke(o, new Object[] {});
}
if (m.getName().equals("m1")) {
m.invoke(o, 1, 2);
for(Class parameterTypes:m.getParameterTypes()){
System.out.println(parameterTypes.getName());
}
}
if(m.getName().equals("getS")){
Class returnType = m.getReturnType();
System.out.println(returnType.getName());
}
}
}
}
class T {
static {
System.out.println("T is Loading !");
}
public T() {
System.out.println("Constructor Called !");
}
int i;
String s;
public void mm() {
System.out.println("m invoked !");
}
public void m1(int i, int j) {
this.i = i + j;
System.out.println(" i = " + this.i);
}
public String getS() {
return s;
}
}
分享到:
相关推荐
·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...
·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...
动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...
- 使用Java反射机制获取类信息的方法; 阅读建议: - 在阅读过程中,请结合实际代码运行,加深对概念和原理的理解。 - 尝试修改示例代码,观察结果的变化,以加强对原理的掌握。 - 学习过程中保持耐心和反复练习,...
动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...
Java 中的反射机制是指可以使用反射机制来实现动态调用方法和访问成员变量。在 Java 中,我们可以使用反射机制来实现动态调用方法和访问成员变量。 Java 中的注解是指可以使用注解来实现元数据编程。在 Java 中,...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制;...
动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
15.2 使用Java反射机制414 15.2.1 获取类型信息414 15.2.2 创建对象417 15.2.3 调用方法419 15.2.4 访问成员变量的值421 15.2.5 操作数组422 15.3 反射与动态代理424 15.3.1 静态代理424 15.3.2 动态代理426 15.4 本...
1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提问:不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 8 ...
RetentionPolicy.RUNTIME则表明注解会在运行时依然有效,可以通过反射机制获取和处理。 2. **@Target** - 该元注解用来限制自定义注解的应用范围,即注解可以被应用到哪些类型的程序元素上,如类、接口、方法、字段...
162 8.5.8 重写equals方法 163 8.6 final与继承的关系 164 8.7 abstract与继承的关系 165 8.8 什么是多态 166 8.9 什么是枚举类 168 8.10 什么是反射机制 169 8.11 什么是泛型 170 8.12 综合练习 172 8.13 小结 172 ...