J2EE框架(二)Class

本文深入探讨Java反射机制的基础——Class对象。通过实例演示了Class对象的获取方式及其如何表示正在运行的应用程序中的类和接口。文章还解释了Class对象的创建过程及其实例化行为,帮助读者理解反射在Java中的应用。

Class是反射的基础,我们先看看API的说明:


Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。 Class 没有公共构造方法Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。


注意几个关键语句:


1、共享该 Class 对象,证明Class是一个对象

2、Class 没有公共构造方法,证明创建Class对象时不会调用构造方法来创建Class对象(我们知道普通对象的创建都会去调用构造方法来实现创建)

3、Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。这里类加载器证明是在我们需要的时候把.class动态加载到内存,并创建对象,创建对象的类型为Class


2、我们再来看看几段代码:


普通类Cat

public class Cat {
	// 静态模块
	static {
		System.out.println("我是静态内容");
	}


	// 无参构造方法
	public Cat() {
		System.out.println("我是构造方法");
	}

}

测试类1

public class T {

	@Test
	public void testClass() throws InstantiationException, IllegalAccessException, ClassNotFoundException{	
		Class<?> cl=	 Class.forName("com.lovo.Cat",true,Cat.class.getClassLoader());
		System.out.println(cl.toString());
		
	}
}


运行结果:

我是静态内容
class com.lovo.Cat

测试类2
public class T {


	@Test
	public void testClass() throws InstantiationException, IllegalAccessException, ClassNotFoundException{	
		Class<?> cl=	 Class.forName("com.lovo.Cat",true,Cat.class.getClassLoader());
		//System.out.println(cl.toString());
	     System.out.println(cl.newInstance());
		//Cat cat=new Cat();
		
	}
}
运行结果:

我是静态内容
我是构造方法
com.lovo.Cat@18bf6bf

分析结果:

1、测试类1静态模块代码打印在控制台上,证明Cat类已经加载到内存,因为我们知道静态代码在类加载的时候会去实例化放(静态类我们都是去点出方法或属性而不是先去new对象,因为在类加载时候已经实例化放入到静态池),这里仅代表加载到内存

2、我们注意到Cat的构造方法并没执行,说明Cat并没有被实例化,而我们在测试1用了一个Class来接收(想一想我们普通类被new时都会用一个类型进行接收),所以这时候只代表我们创建了Class对象,在这个对象中我们可以得到此对象引用类的所有方法、属性、构造方法、修饰,这就为反射做好铺垫。

3、测试2调用Class对象的newInstance()方法,结果静态模块执行,构造方法也执行,证明我们在调用newInstance()方法时,虚拟机把Class对象再次实例化成一个具体的Object对象,此时就和我们new Cat() 是一回事调用构造方法来实例化对象。



基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性和准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测和用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解和拓展应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值