Java基础—反射

news2024/11/27 10:22:05

反射

我们来探讨Java中的一些动态特性,包括反射、注解、动态代理、类加载器等。利用这些特性,可以优雅地实现一些灵活通用的功能,它们经常用于各种框架、库和系统程序中,比如:

1)14.5节介绍的Jackson,利用反射和注解实现了通用的序列化机制。

2)有多种库(如Spring MVC、Jersey)用于处理Web请求,利用反射和注解,能方便地将用户的请求参数和内容转换为Java对象,将Java对象转变为响应内容。

3)有多种库(如Spring、Guice)利用这些特性实现了对象管理容器,方便程序员管理对象的生命周期以及其中复杂的依赖关系。

4)应用服务器(如Tomcat)利用类加载器实现不同应用之间的隔离,JSP技术利用类加载器实现修改代码不用重启就能生效的特性。

5)面向方面的编程AOP(Aspect Oriented Programming)将编程中通用的关注点(如日志记录、安全检查等)与业务的主体逻辑相分离,减少冗余代码,提高程序的可维护性,AOP需要依赖上面的这些特性来实现。

本章主要介绍反射机制,后续章节介绍其他内容。

在一般操作数据的时候,我们都是知道并且依赖于数据类型的,比如:

1)根据类型使用new创建对象。

2)根据类型定义变量,类型可能是基本类型、类、接口或数组。

3)将特定类型的对象传递给方法。

4)根据类型访问对象的属性,调用对象的方法。

编译器也是根据类型进行代码的检查编译的。
反射不一样,它是在运行时,而非编译时,动态获取类型的信息,比如接口信息、成员信息、方法信息、构造方法信息等,根据这些动态获取到的信息创建对象、访问/修改成员、调用方法等。

https://www.bilibili.com/video/BV1DP4y1R7ub/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421cicon-default.png?t=M85Bhttps://www.bilibili.com/video/BV1DP4y1R7ub/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MAC苹果电脑关闭系统完整性保护SIP

苹果电脑从 macOS 10.11 开始引入了系统完整性保护机制SIP(System Integrity Protection),目的是帮助普通用户避免恶意 app 通过用户授权的方式获得所有系统权限。通过 System Integrity Protection,苹果实现了对第三方软件的限制…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.14 SpringBoot 整合 quartz

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.14 SpringBoot 整合 quartz5.14.1 任务【定时任务…

Linux-cut

cut命令介绍 cut命令将文件的每一行剪切字节,字符和字段,并将这些字节,字符和字段写到标准输出 提取列,cut命令不能提取空格,可以是制表符或者其他字符 cut [选项][文件] 选项: -b:以字节为单…

2.5、信道的极限容量!

2.5、信道的极限容量! 2.5.1、因素影响 由于信号在传输过程中会受到各种因素的影响 例如:这是一个数字信号 当它通过实际的信道后,波形会产生失真。 失真不严重时,在输出端还可根据已失真的波形还原出发送的码元 当失真严重…

G1D20-AnacondaCSKE综述AttacKG终于配好环境啦KG book CTF

先下一个anaconda emmmpipenv install requirements.txt好像不太好用,还不如pycharm中的自动安装 先读论文啦~ 一、CS KE综述 (一)NER systems 1、判别式模型&生成式模型 判别式模型:学习P(Y|X)&am…

C语言-结构体(7)

目录 思维导图: 1. 结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 2. 结构体成员的访问 3. 结构体传参 写在最后: 思维导图: 1. 结构体的声明 1.1 结构的基础知识 结构是一些…

python一键去PDF水印,只需十行代码,超级简单...

用python制作去除 pdf 文件水印脚本前因后果去除水印原理代码剖析1、先查看PDF文档中的水印rgb值是多少2、pdf转换成图片,并去除水印3、图片转为pdf代码整合总结前因后果 弟弟最近要考试,临时抱佛脚在网上找了一堆学习资料复习,这不刚就来找…

机器学习-sklearn-高斯混合模型-学习笔记

文章目录前言一、如何估计参数二、二分类原生代码实现三、sklearn实现模型总结前言 学习笔记 学习视频:https://www.bilibili.com/video/BV1rB4y1v7dA/?spm_id_from333.788&vd_sourceaf83080eba7b379d3fda36e341bdb195 使用高斯混合模型的原因: 模…

03137计算机网络原 - 物理层

物理层 基础概念 OSI模型最底层 功能 为在链路实体间传送比特流而对物理连接的 接通 维持 和 拆除 提供机械,电气,功能和规程方面的方法作用 尽可能屏蔽现有多种多样的硬件设备,传输媒体和通信手段的差异。确保原始数据可以在各种物理媒介上传输任务特性 机械特性 指明接…

Linux环境变量与程序地址空间

Linux环境变量与程序地址空间 文章目录Linux环境变量与程序地址空间1.环境变量1.1 环境变量概念与深入理解1.2 代码获取环境变量的方法1.3 系统调用获取和设置环境变量的方法2.程序地址空间2.1 程序地址空间图(准确来说是进程地址空间图)2.2 程序地址空间的验证2.3 进程地址空间…

概率论中的几个重要悖论问题

1. 蒙提霍尔问题(三门问题) 三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔(Monty Hall&…

【笑小枫的SpringBoot系列】【十八】SpringBoot中的Properties配置

本文简介🎨 随着我们的演示功能越来越多,里面的配置也越来越多,我们怎么更好的来管理这些配置呢? 实际项目中,我们肯定会有开发环境、测试环境、生产环境,我们又该怎么便捷的配置这些环境呢? …

CANopen之SDO,PDO

一、简述 CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于 CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层(数据链路层&#xff09…

nodejs+mysql网上书店图书销售购物商城系统vue

系统功能 此系统的功能分为用户模块和管理员模块: 1、用户后台功能模块包括:首页、个人中心、订单评价管理、我的收藏管理、订单管理模块。 2、前台首页功能模块包括:首页、图书信息、图书资讯、个人中心、后台管理、购物车、在线聊天模块。 …

SAP MDG —— 更好地理解你的数据变更

概念 在SAP MDG on SAP S/4HANA 2021中,SAP发布了一种全新的数据分析框架:变更请求中的主数据变更分析。依赖该框架,你可以为你的最终用户提供强大的数据分析功能,以深度洞悉变更请求中到底变化了哪些数据。 使用这些分析功能&a…

Thinkphp6 分布式事务异常处理 1440 XAER_DUPID: The XID already exists

Mysql分布式事务,前提条件 MySQL中只有当隔离级别设置为Serializable的时候才能使用分布式事务。 执行两个命令确认环境 show variables like innodb_support_xa;show variables like %tx_iso%;异常信息 根据官方分布式示例 public function test(){Db::transa…

input空格回车输入标签

分析 我们自己封装input输入标签需要注意一下几点: 样式实现,span实现标签效果、input隐藏边框(Element-UI可以直接使用tag)。事件监听,确定生成标签的操作,可以是回车,并且需要监听离开焦点的情况。标签限制,最多几个,以及输入验证 html:&…

使用CDC模式改造遗留系统

项目改造背景及挑战 在我们经历的各种遗留系统改造之旅中,使用**绞杀者模式**来改造一个巨大的单体服务,是一种被广泛采用且验证行之有效的手段,在应用传统的绞杀者模式时,通常采用逐步替换的方式,将遗留系统中某一独…

b站pink老师JavaScript的ES6面向对象课程中:正则表达式案例代码——表单验证

目标效果: 1.当输入的手机号,QQ号,昵称,短信验证码,登录密码,确认密码:如果符合标准,就提示正确的文字;如不符合标准,则提示不正确。 2.判断确认密码是否与登录密码相等…

落实交通强国,鄂州临空区联手蘑菇车联打造新时代内陆开放高地

临空经济与智能网联、自动驾驶能擦出什么样的火花?今年7月,鄂州花湖机场投运,标志着这个湖北省“一号工程”正式蝶变为亚洲规模最大、自动化程度行业领先的航空货运枢纽。鄂州花湖机场项目也是湖北加快建设交通强国示范区、打造新时代“祖国立…