Java反射机制(2):java动态性、动态语言、反射机制定义举例

一、java的动态性

1、反射机制。
2、动态编译。
3、动态执行JavaScript代码。
3、动态字节码编译。

二、动态语言

1、定义:程序运行时可以改变程序结构或者变量类型如Python、Ruby、JavaScript。

//执行s语句的时候又会执行s里面的代码
function test(){
	var s="var a=3;var b=5;alert(a+b);";
	eval(s);
}

2、C、C++、JAVA不是动态语言,但是java可以通过动态性获取类似动态语言的特性。

三、反射机制

1、定义:程序在运行时加载、探知、使用编译期间完全未知的类。程序在运行过程中,可以动态加载一个只有名称的类,对于任意一个已加载的类都能够知道这个类的所有属性和方法,都能够调用任意一个属性和方法。

	Class c = Class.forName("org.hu.test.User");

加载完类之后,在堆内存中,就产生一个Class类型的对象(一个类只有一个Class 类型的对象),这个对象就包含了该类的完整的结构信息。我们可以通过这个对象看到类的结构,这个对象像是一面镜子,透过镜子看到类的结构,所以称之为:反射

	@SuppressWarnings("all")		//不显示所有的警告信息
	public class Demo02 {
		public static void main(String[] args) {
			String path="bean.User";
			try {	
				//一个类被加载后,JVM会创建一个对应该类的Class对象,类的真个结构会被对应到对应的CLass对象中
				//通过这个Class对象可以看到整个类的结构信息
				Class c = Class.forName(path);
				System.out.println(c.hashCode());
				Class c1 = Class.forName(path);
				System.out.println(c1.hashCode());
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}
	}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coder鹏鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值