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

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凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    疯狂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讲义.第二版.part1.rar

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

    疯狂java讲义.第二版.part2.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讲义.第二版.part3.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 ...

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

    Java 高级特性.doc

    以上的一些程序代码均为张老师课堂即兴发挥所写,也可以看出,张老师对JAVA特性的深刻理解能力!现在说说我对这些程序代码的理解,说实话,才开始听张老师讲的时候,我感觉很模糊的,但是当我真正理解了之后,觉得...

    LearnHow2J:练习How2J的代码

    JavaSE3 ------ :后续理解框架的基础,包括反射机制,注解。 JavaUse ------ :开发中常用的工具包,包括Log4j,测试Junit等。 网站------:前端内容,包括前端基础内容和流行框架。 JavaEE ------ :JavaEE...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    13.3通过反射机制访问对象 13.3.1如何实例化对象 13.3.2如何给成员变量赋值 13.3.3如何调用成员函数 13.4何时使用反射 13.5动态异常处理框架 13.5.1框架功能简介 13.5.2重要技术 13.5.3框架代码编写 13.5.4...

Global site tag (gtag.js) - Google Analytics