`
tempsitegoogle
  • 浏览: 874410 次
文章分类
社区版块
存档分类
最新评论

Java 反射机制 练习代码

 
阅读更多
//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;
	}
}


分享到:
评论

相关推荐

    尚硅谷_宋红康_第15章节练习_Java反射机制.doc

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    尚硅谷_宋红康_第15章_Java反射机制.pdf

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    Java练习算法代码(排序,数据结构,小算法练习题).zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    Java零基础 - Java的加载与执行原理剖析.md

    - 使用Java反射机制获取类信息的方法; 阅读建议: - 在阅读过程中,请结合实际代码运行,加深对概念和原理的理解。 - 尝试修改示例代码,观察结果的变化,以加强对原理的掌握。 - 学习过程中保持耐心和反复练习,...

    java基础练习demo,算法练习,leetecode操练.zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    2021年JAVA面向对象程序设计练习题库B.doc

    Java 中的反射机制是指可以使用反射机制来实现动态调用方法和访问成员变量。在 Java 中,我们可以使用反射机制来实现动态调用方法和访问成员变量。 Java 中的注解是指可以使用注解来实现元数据编程。在 Java 中,...

    疯狂java讲义.第二版.part5.rar

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...

    疯狂java讲义

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制;...

    牛客网BAT算法精品课练习题答案,包括JAVA和C++两个版本,代码中附上大量注释帮助理解程序.zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    疯狂java讲义.第二版.part2.rar

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...

    疯狂java讲义.第二版.part3.rar

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...

    疯狂java讲义.第二版.part1.rar

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...

    疯狂java讲义.第二版.part4.rar

    全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、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 本...

    疯狂JAVA讲义

    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 ...

    java元注解的介绍说明

    RetentionPolicy.RUNTIME则表明注解会在运行时依然有效,可以通过反射机制获取和处理。 2. **@Target** - 该元注解用来限制自定义注解的应用范围,即注解可以被应用到哪些类型的程序元素上,如类、接口、方法、字段...

    21天学通Java-由浅入深

    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 ...

Global site tag (gtag.js) - Google Analytics