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

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基础知识学习教程-12注解和反射.pptx

    本章节主要讲述Java中的注解和反射机制,涵盖了注解的基本概念、内置注解、元注解和自定义注解等知识点,并引入反射机制,详细介绍了反射的概念、Class类、通过反射获取注解、通过反射创建对象、通过反射调用方法和...

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

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

    java课堂练习.pdf

    9. **反射机制**:Java反射机制允许在运行时检查类的信息,创建和调用类的对象,增强了程序的动态性。 10. **JavaFX与Swing**:这两个是Java的图形用户界面(GUI)库,用于构建桌面应用程序。学习者可能需要创建...

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

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

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

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

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

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

    java最新高薪面试题库

    4. **Java反射机制**:反射机制允许在运行时动态地获取类的信息(如类名、属性、方法等),并能创建和操作类的对象,广泛应用于Spring、MyBatis等框架中。 5. **抽象类与接口的区别**:抽象类可以包含抽象方法和非...

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

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

    Java基础学习43.pdf

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并进行操作。在Java基础学习中,理解并掌握反射是非常关键的一步,因为这不仅可以帮助你深入理解Java的内在机制,还能提升你在...

    疯狂java讲义

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

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

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

    JAVA程序设计习题库及答案

    以上内容只是Java程序设计的基础概述,实际学习和应用中还需要深入理解和实践,包括深入理解类库、异常处理机制、集合框架、反射、设计模式等高级主题。Java的广泛应用使得掌握这些知识对于成为一名专业的Java开发者...

    Java程序设计课后练习答案 (2).pdf

    了解这些基础知识后,可以开始深入学习Java的类库、异常处理、IO流、集合框架、网络编程、多线程编程以及更高级的概念,如反射、注解和模块化等。对于初学者,理解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讲义.第二版.part1.rar

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

    经典java面试题30道

    Java 中的反射机制和动态代理机制是用于动态地获取和修改类的信息,例如,使用反射机制来实现动态代理。 28. 函数式接口 Java 中的函数式接口是一种接口,用于定义函数式编程的接口,例如,Predicate、Function 和 ...

Global site tag (gtag.js) - Google Analytics