j2ee笔记之反射机制

J2EE框架技术第七章 反射机制与设计模式 在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、Web 应用的配置对象、应用程序中的对话框、系统中的缓存等常常被设计成单例。1、优点:在运行时获得类的各种内容,进行反编译,对于Java这种先编译再运行的语言,能够让我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码的链接,更加容易实现面向对象。责任链简化了对象之间的连接。降低了对象之间的耦合度。 阅读详情
  1. JAVA的反射机制是什么?
    1.1 反射原理
    (1)Java反射机制(Java Reflection)是Java语言中一种动态(运行时)访问、检测 & 修改它本身的能力,主要作用是动态(运行时)获取类的完整结构信息 & 调用对象的方法~
    更简单点的说就是Java程序在运行时(动态)通过创建一个类的反射对象,再对类进行相关操作,比如:

获取该对象的成员变量 & 赋值
调用该对象的方法(含构造方法,有参/无参)
判断该对象所属的类
通俗的说就是:

(2) 一般情况下,我们使用某个类,都会知道这个类,以及要用它来做什么,可以直接通过new实例化创建对象,然后使用这个对象对类进行操作,这个就属于正射~

(3) 而反射则是一开始并不知道要初始化的是什么类,无法使用new来实例化创建对象,主要是通过JDK提供的反射API来实现,在运行时才知道要操作的是什么类,并且可以获取到类的完整构造以及调用对应的方法,这就是反射~

1.2 反射案例
代码如下:

package com.justin.java.lang;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class Student {
private int id;

public void setId(int id) {
    this.id = id;
}
public int getId() {
    return id;
}

public static void main(String[] args) throws Exception{
    //一、正射调用过程
    Student student = new Student();
    student.setId(1);
    System.out.println("正射调用过程Student id:" + student.getId());

    //二、反射调用过程
    Class clz = Class.forName("com.justin.java.lang.Student");
    Constructor studentConstructor = clz.getConstructor();
    Object studentObj = studentConstructor.newInstance();
    
    Method setIdMethod = clz.getMethod("setId", int.class);
    setIdMethod.invoke(studentObj, 2);
    Method getIdMethod = clz.getMethod("getId");
    System.out.println("正射调用过程Student id:" + getIdMethod.invoke(studentObj));
}

}
输出结果:

  1. 正射调用过程Student id:1
  2. 反射调用过程Student id:2
    例子反射的调用过程,可以看到获取一个类的反射对象,主要过程为:

获取类的Class实例对象
根据Class实例对象获取Constructor对象
再根据Constructor对象的newInstance方法获取到类的反射对象
获取到类的反射对象后,就可以对类进行操作了~ 例如,上述示例中对类的方法进行调用过程为:

根据Class实例对象获取到类的Method对象
再根据Method对象的invoke方法调用到具体类的方法
上面示例反向调用过程中我们是通过Class.forName(“类的全局定名”)这种方式来获取到类的Class实例对象,除了这种,常用的还有其他两种

  1. Java反射机制中获取Class的三种方式及区别?

2.1 Class的三种获取方式
获取类的java.lang.Class实例对象,常见的三种方式分别为:

通过Student.class获取,这里的Student指具体类~~
通过Class.forName(“类的全局定名”)获取,全局定名为包名+类名
通过new Student().getClass()获取,这里的Student指具体类~

034-安全开发-JavaEE应用&反射机制&攻击链&类对象&成员变量方法&构造方法 小迪安全2023笔记 阅读详情

相关推荐

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 251

JavaEE基础篇————反射机制

反射机制基本概念获取Class的三种方法通过反射机制实例对象获取类路径(src)下的绝对路径获取Field (类属性)获取Method(类方法)反射Constructor(构造方法)———略 基本概念 ①反射机制可以操作字节码文件(.class) ②反射机制在Java.lang.reflect.*包下 ③反射机制相关的重要的类有哪些 java.lang.class 整个字节码 reflect.Methed 方法 reflect.Constructor 构造方法 reflect.Field

qq_49523975的博客 415

中颖单片机SH79F3213正弦波矢量的电动车小毛驴控制器量产资料

中颖单片机SH79F3213正弦波矢量的电动车小毛驴控制器量产资料 中颖单片机SH79F3213 制作的电动车小毛驴控制器量产资料,已量产十几万片,拿到手即可量产 1、提供原理图 2、提供PCB图 3、提供C语言源代码程序 4、提供清单 ...

m0_69036675的博客 4528

反射-JavaEE

JavaEE中的反射(Reflection)指的是通过Java代码动态地获取类、方法、属性等信息的机制。JavaEE应用程序通常需要处理大量的类和对象,有时候我们需要在代码中动态地获取这些类、对象的信息或者动态地创建这些对象,这就需要利用反射机制。JavaEE(Java Enterprise Edition)是Java平台上的一种开发规范和标准。它包含了一系列API和技术,可以帮助开发者构建企业级的Java应用程序。

SAME_LOVE的博客 350

Unity3D用c#脚本调用前端javascript函数:H5获取unity - webgl 加载并初始化完成的消息

unity3d发布的Webgl 可以作为静态文件加载到H5页面中,并通过javascript 调用unity内置的C#脚本函数,详见Webgl调用unity api。而往往我们需要知道Webgl ready的消息,本文将给出unity 内部调用javascript函数的方案加以解决。

Bravo 2477

如何在非序列模式下使用类似图像模功能

如何在非序列模式下使用类似图像模功能

weixin_72050316的博客 552

4. 小迪安全v2023笔记 javaEE应用

eclipse,tomcat,servlet,JDBC,Filter,Listener,Java反射,Java反序列化初识,Dnslog,maven,log4j,JNDI,fastjson,Spring Boot

google20的博客 1322

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 1万+

J2EE_知识点梳理

文章目录前言章节细解思维导图梳理总结 前言            基于前面对于J2EE的学习本章将对前面的知识进行思维导图的性的梳理。 章节 List集合 Set集合 Map集合 dtd文件 xml解析 xml建模 反射机制 JSP自定义标签(一) JSP自定义标签(二) Web通用分页 自定义MVC 细解            由于是思维导图方

qq_45384482的博客 483

【学习系列】SAP RAP 18:Unmanaged场景开发示例-基本数据更新

本文介绍了在SAP RAP中unmanaged模式下从0到1的开发步骤。unmanaged模式下需要自行实现数据更新、权限检查等逻辑,适用于操作现有数据库表或复杂业务场景。文章以两层的采购订单对象为例,详细说明了创建技术对象(表、视图、行为定义等)的过程,并重点阐述了如何实现CRUD相关方法的核心逻辑。通过创建缓冲类来处理交互阶段和保存阶段的数据操作,确保事务一致性。完整代码展示了抬头层级的增删改查功能实现,为后续明细层级的开发奠定了基础。

DeveloperMrMeng的博客 642

基于物联网技术设计的微型消防小车控制系统(STM32+ESP8266局域网)(181)

基于物联网技术的小微型消防车控制系统。通过远程控制功能,用户能够灵活操作消防车的行驶,方便快速抵达火灾现场。环境感知功能实时采集烟雾浓度、温湿度信息,为灭火决策提供科学依据。火源定位功能采用自动和手动两种模式,准确迅速地定位火源,并通过报警提示用户。灭火功能则根据火源定位结果,自动或手动启动干粉灭火器进行高效灭火。这些功能的结合实现了对小型火灾的全面应对,提升了消防效率与安全性,减少了火灾带来的损失。通过本项目的设计与实现,为消防领域提供了一种创新且实用的解决方案。

3082

Java 反射机制

Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。

新起点的博客 928

漏检率从23%降至1.3%:YOLOv8交通车辆计数与违章识别完整落地方案

本文分享了基于YOLOv8+ByteTrack的交通视频分析系统实战经验,针对车辆计数和违章识别两大核心功能,提出了完整的工程化解决方案。系统采用边缘计算架构,单张GTX 1660即可稳定处理8路1080P视频流,实现了白天98.7%、夜间96%以上的车辆计数准确率。文章详细剖析了交通视频分析的四大落地痛点,系统架构设计思路,以及遮挡处理、光照适应、多路并发等关键技术优化方案,重点介绍了车辆计数三重校验机制和三类违章识别的工程实现细节。通过ROI裁剪、TensorRT加速、动态抽帧等优化手段,显著提升了系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 341

J2EE总结

J2EE总结前言J2EE的环境配置和开发工具XML解析反射自定义标签通用分页自定义MVC 前言 因为知识点太多怕有所遗漏 点击查看 附上思维导图 J2EE的环境配置和开发工具 XML解析 1.什么是XML:可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 2:DTD Schema 都是用来效验XML的 3.什么是格式良好XML: 3.1 有且只有一个根元素 3.2 XML标签大小写正确区分 3.3 正确使用结束标签 3.4 正确嵌套标签 3.5 使用了合

Lzxccas的博客 310

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

javaEE面试【1】(java反射机制)

1、什么是反射机制? 指的是程序在运行时能够获取自身的信息。 在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。 2 Java反射机制的作用: 1)在运行时判断任意一个对象所属的类。 2)在运行时判断任意一个类所具有的成员变量和方法。 3)在运行时任意调用一个对象的方法 4)在运行时构造任意一个类的对象 3、哪里用到反射机制? jdbc中有一行代码

u013551536的博客 683

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

J2EE知识点总结_网络编程与Java反射机制

J2EE知识点总结_网络编程与Java反射机制

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 710

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

反射机制的优点与缺点

反射机制的优点与缺点 静态编译:在编译时确定类型,绑定对象,即通过。 动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,有以降低类之间的藕合性。 优点: 可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中,它的灵活性就表现的十分明显。 比如,一个大型的软件,不可能一次就把把它设计的很完美,当这个程序编译后,发布了。

以木为马 5190

JAVA反射机制

一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName("com.mysql.jdbc.Driver.cla...

weixin_33722405的博客 79

尚学堂j2ee视频教程

尚学堂j2ee视频教程 简介:本课程从最初级的Java开始授课,一直讲授至J2EE。由浅入深, 手把手的讲课风格,深入讲解jsp&servlet、 Struts、Spring、Hibernate、Ejb3.0、uml、oracle、反射机制、weblogic

白云飞JAVA工作室 4492

java的反射机制

1.为什么使用反射? java中反射是在运行中动态的加载进入。有个很大的好处就是可以节省很多资源。为什么这么说呢,首先我们来说一下jvm,jvm是java的虚拟机,java之所以支持跨平台就是因为java虚拟机的存在。程序你有如下语句 Object o=new Object();运行起来的时候,java的虚拟机会首先启动。将你的java文件编译成 .class文件。加载进入你jvm的内...

124

Java反射机制

一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。那么就可以通过反射机制来获得类的所有信息。 二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码,Class.forName("com.mysql.jd...

aogangshua1247的博客 128

javaee-反射机制技术

反射机制技术 反射机制就是可以操作字节码文件(class文件)。 例如:Class c1 = Class.forName(“java.lang.String”); 以上的这行代码就能够把String类装载到了java虚拟机中。相对于直接创建该类,反射机制可以不修改代码就可以获取到该类的字节码,更加灵活,符合“开闭原则”。 classinfo.properties文件 className = java.util.Date 通过反射机制获取该类的字节码: FileReader fr = new FileRead

qq_39071012的博客 149

JavaEE基础第15章反射机制

第15章反射机制 需要掌握 获取Class实例、创建运行时类的对象、调用运行时类的指定结构。 反射概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之

记录学习过程中的笔记 603

Web开发-JavaEE应用&反射机制&类加载器&利用链&成员变量&构造方法&抽象方法

知识点: 1、安全开发-JavaEE-类加载器&反射机制&链安全 2、安全开发-JavaEE-成员变量&成员方法&构造方法

SuperherRo的博客 1159

J2EE从入门到入土08.Java反射机制

java反射机制简单解释

github_67177094的博客 390

JavaEE学习笔记2——Maven

Java文件操作&反射&Maven

vermouth_1412的博客 196
上一篇: Java EE笔记之集合框架01
下一篇: j2ee笔记之DTD
内涵神仙
博客等级 码龄5年 19粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值