【Java基础 下】 031 -- 反射 动态代理

一、什么是反射?

换句话说就是(从类里拿出来)

可以获取到:(利用反射,我们可以获取到类中所有的东西)
获取是先从class字节码文件中获取的

二、获取class对象的三种方式

三种方式也对应了三种阶段
1、Class.forName("全类名");

全类名 = 包名+类名
2、类名.class

3、对象.getClass();

4、代码实现
三种方式获取到的字节码文件对象其实是一样的

三、反射获取

1、利用反射获取构造方法


①、示例代码:

②、获取所有的构造方法:

③、获取单个构造方法:

④、获取方法权限修饰符:


⑤、获取参数个数、获取参数类型、获取所有参数:


⑥、获取私有:(暴力反射)


2、利用发射获取成员变量

①、获取class字节码文件的对象

②、获取所有公共成员变量

③、获取所有成员变量

④、获取单个的成员变量

⑤、获取权限修饰符

⑥、获取成员变量的名字

⑦、获取成员变量的数据类型

⑧、获取成员变量记录的值


⑨、修改对象里面记录的值

3、利用反射获取成员方法

①、获取class字节码文件对象

②、获取里面所有的公共方法对象

包含父类中所有的公共方法
③、获取里面所有的方法对象

④、获取单个的方法

⑤、获取方法的修饰符

⑥、获取方法的名字

⑦、获取方法的形参

⑧、获取方法的抛出的异常

⑨、方法运行



四、反射的作用

1、练习1:保存信息

示例代码:




完整代码:(创建IO流存入本地文件)


2、练习2:跟配置文件结合动态创建

示例代码:
(配置文件 prop.properties)

反射和配置文件结合,动态创建对象



3、小结
getClass()是定义在Object类中的,因此所有的对象都可以调用它


五、动态代理
1、什么是动态代理?
动态代理可以无侵入式的给代码增加额外的功能

2、程序为什么需要代理?代理长什么样?

①、示例代码
BigStar.java(JavaBean)

Star.java(接口)

3、小结

4、如何为Java对象创建一个代理对象?
①、newProxyInstance(1,2,3)

②、示例代码:(创建一个代理)
ProxyUtil.java


参数一:固定格式
参数二:指定数组,如果有多个接口,可以将多个接口都放入数组
参数三:匿名内部类

测试类:


JavaBean(BigStar)

③、小结


相关文章:
【Java基础 下】 031 -- 反射 动态代理
一、什么是反射? 换句话说就是(从类里拿出来) 可以获取到:(利用反射,我们可以获取到类中所有的东西) 获取是先从class字节码文件中获取的 二、获取class对象的三种方式 三种方式也对应了三种阶段…...
springcloud3 GateWay
一 GateWay 1.1 GateWay的作用 gateway相当于所有服务的门户,将客户端请求与服务端应用相分离,客户端请求通过gateway后由定义的路由和断言进行转发,路由代表需要转发请求的地址,断言相当于请求这些地址时所满足的条件ÿ…...
万字长文:Stable Diffusion 保姆级教程
万字长文:Stable Diffusion 保姆级教程 2022年绝对是人工智能爆发的元年,前有 stability.ai 开源 Stable Diffusion 模型,后有 Open AI 发布 ChatGPT,二者都是里程碑式的节点事件,其重要性不亚于当年苹果发布iPhone&a…...
WAMP搭建靶场
WAMP W:windows A:apache M:mysql,mariadb P:php 1. 下载phpstudy Windows版phpstudy下载 - 小皮面板(phpstudy) 2. 安装phpstudy 默认安装即可 3. 下载DVWA靶场 https://github.com/digininja/DVWA/archive/…...
Uipath Excel 自动化系列13-ForEachExcelSheet(遍历Sheet)
活动描述 ForEachExcelSheet(遍历Sheet):遍历Excel中的工作表,可以对 Excel 工作簿中的每个工作表重复一个或多个活动,该活动需与Use Excel File 活动选择的 Excel 文件一起使用。 使用场景:当处理包含多张工作表的 Excel 文件,…...
JDBC快速入门
🍎道阻且长,行则将至。🍓 目录 一、JDBC入门 1.概述 (1)JDBC本质 (2)JDBC好处 2.快速入门 (1)步骤 (2)实践 (3)两个小问题 一、JDBC入门 1.概述 JDBC就是使用Java语言操作关系型数据库的一套API,全称:( Java…...
蓝桥杯三月刷题 第六天
文章目录💥前言😉解题报告💥星期计算🤔一、思路:😎二、代码:💥考勤刷卡🤔一、思路:😎二、代码:💥卡片🤔一、思路:😎二、代…...
分享几个常用的运维 shell 脚本
今天咸鱼给大家分享几个不错的 Linux 运维脚本,这些脚本中大量使用了 Linux 的文本三剑客: awkgrepsed 建议大家这三个工具都要了解并最好能够较为熟练的使用 根据 PID 显示进程所有信息 根据用户输入的PID,过滤出该PID所有的信息 #! /b…...
分隔链表(精美图示详解哦)
全文目录引言分隔链表题目描述与思路实现总结引言 前面,我们熟悉了管理链表中的数据的方法,也了解了几道与链表相关的题目: 戳我看单链表详解哦 在本篇文章中,我们将再了解一道题目:分隔链表: 分隔链表OJ…...
腾讯乐固加固+app签名+多渠道打包
一、腾讯乐固-基础版免费加固-上传未加固的app-下载加固包(加固成功会清除原apk的签名信息和多渠道信息)https://console.cloud.tencent.com/ms/reinforce/list/basic二、使用AndroidStudio自带工具apksigner对apk重新签名找到apksigner.bat文件 路径D:\…...
Spring Boot整合Redis缓存(Lettuce)
spring-boot-demo-cache-redis 此 demo 主要演示了 Spring Boot 如何整合 redis,操作redis中的数据,并使用redis缓存数据。连接池使用 Lettuce。 Lettuce官网 pom.xml <!-- data-redis --> <dependency><groupId>org.springframework…...
Feign
而Feign则会完全代理HTTP请求,我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。Feign整合了Ribbon和Hystrix,可以让我们不再需要显式地使用这两个组件。 Feign具有如下特性: 支持可插拔的HTTP编码器和解码器; 支持Hystrix和…...
【代码训练营】day54 | 392.判断子序列 115.不同的子序列
所用代码 java 判断子序列 LeetCode 392 题目链接:判断子序列 LeetCode 392 - 简单 思路 这题和之前求最长公共子序列一样。 dp[i] [j]:以i-1为结尾的字符串s 和 以j-1为结尾的字符串t 组成的相同子序列的长度 递推公式: 相等dp[i][j] d…...
【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)
💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体遇到的问题描述解决方式Font Asset Creator 面板扩展中文字体文本遇到…...
JAVA开发(JAVA中的异常)
在java开发与代码运行过程中,我们经常会遇到需要处理异常的时候。有时候是在用编辑器写代码,点击保存的时候,编辑器就提示我们某块代码有异常,强制需要处理。有时候是我们启动,运行JAVA代码的时候的,日志里…...
lesson8-Linux多线程
Linux线程概念 线程在进程内部执行,是OS调度的基本单位OS是可以做到让进程进行资源的细粒度划分的物理内存是以4kb为单位的我们的.exe可执行程序本来就是按照地址空间的方式进行编译的页表映射 - 详细图 理解线程 线程在进程的地址空间内运行, 进程内部具有多个执行流的,而线程…...
python的django框架从入门到熟练【保姆式教学】第四篇
在前三篇博客中,我们介绍了Django的模型层、数据库迁移、视图层和URL路由。本篇博客将介绍Django的模板层,讲解如何使用模板来创建美观的Web页面。 模板层(Template) Django的模板层是Django应用程序的另一个核心组件。模板是一…...
Codeforces Round 852 (Div. 2)
A Yet Another Promotion 题意:要买n千克物品,第一天的价格为a,第二天的价格为b。第一天有促销活动,每买m千克物品,可以额外获得1千克物品。问最少花费多少可以获得至少n千克的物品。 思路:分类讨论&…...
【PTA Data Structures and Algorithms (English)】7-2 Reversing Linked List
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K3, then you must output 3→2→1→6→5→4; if K4, you must output 4→3→2→1→5→6. Input Specif…...
Jetpack Compose 学习汇总
关于 Jetpack Compose 的学习本想只是简单的快速学习一下,结果万万没想到,竟然一下子折腾了好几个月。。。 下面将之前记录的 Jetpack Compose 相关的学习博文进行一个汇总链接整理,方便我以后自己查阅,也希望能帮到一些有正在学…...
Cursor智能体监控工具:本地部署与API成本可视化实战
1. 项目概述:一个为开发者量身打造的Cursor智能体监控工具如果你和我一样,是一位重度依赖Cursor进行编码的开发者,那你一定对它的“智能体”(Agent)功能又爱又恨。爱的是,它能理解上下文、自动补全代码、甚…...
GPU资源利用率监测与优化实战指南
1. GPU资源利用率监测基础解析在超算中心和AI训练集群中,GPU资源利用率(GPU_UTIL)是衡量计算效率的核心指标。这个看似简单的百分比背后,实际上反映了GPU内部多个执行单元的综合活跃状态。通过NVIDIA的DCGM(Data Cente…...
告别答辩PPT噩梦:百考通AI如何帮你高效搞定毕业答辩
写了大半年的论文,却在最后一步的答辩PPT上栽了跟头?这可能是许多毕业生的真实写照。 01 毕业季的隐形杀手:PPT焦虑症 五月,校园里的玉兰花开得正盛,图书馆的灯光却依然亮到深夜。论文查重通过了,导师点头…...
C#初步认识/入门基础
一、注释/运行/项目介绍1.注释1.// 双斜杠是单行注释,注释代码不会被执行;/* */是多行注释格式。两种均不会被执行;.///三斜杠一般写在方法前//1111/*111*11*////11112.运行2.运行调试 : 实心三角(运行控制台后会消失…...
Shell脚本工程化:great.sh框架解决运维脚本可维护性难题
1. 项目概述:一个被低估的Shell脚本构建框架如果你和我一样,常年混迹在运维、DevOps或者后端开发领域,那么对Shell脚本的感情一定是复杂的。一方面,它是我们最趁手的“瑞士军刀”,从服务器初始化、日志分析到自动化部署…...
2026 年 TanStack npm 供应链遭入侵:42 个包 84 版本受影响,多方面待解决问题待明确
总结2026 年 5 月 11 日 19:20 至 19:26 UTC 期间,攻击者通过结合“Pwn Request”模式的 pull_request_target、跨越分叉↔主库信任边界的 GitHub Actions 缓存投毒,以及从 GitHub Actions 运行器进程中提取 OIDC 令牌,在 42 个 tanstack/* n…...
Helm模板智能助手:提升Kubernetes应用部署效率的VSCode插件
1. 为什么你需要一个Helm模板智能助手如果你和我一样,每天都在和Kubernetes的Helm Charts打交道,那你一定对编写templates/目录下那些.yaml文件又爱又恨。爱的是Helm的模板引擎确实强大,能把一堆重复的YAML配置抽象成可复用的模板;…...
2026.5.12:三台服务器,一台fastapi的websocket服务接口,一台代理fastapi服务的nginx,一台代理上一个nginx,能穿透websocket吗?
三台服务器,一台fastapi的websocket服务接口,一台代理fastapi服务的nginx,一台代理上一个nginx,能穿透websocket吗? 环境: - 三台服务器 1. 一台fastapi中有websocket接口的服务器:43.226.44.50 2. 一台代理上面1里面的fastapi服务的nginx:43.226.44.184 3. 一台代…...
从 Token 消耗到 AI 资产:企业如何把一次调用沉淀成模板、流程、知识库和制度
关键词:Token 管理、AI 资产、模板库、流程化、知识库、制度化、投入产出比 开篇:企业真正要管的不是 Token,而是 Token 之后留下了什么 很多企业开始使用 AI 以后,第一反应是看成本:这个月用了多少 Token,哪个部门调用最多,哪个模型最贵,哪些场景消耗最高。 这当然重…...
为 OpenClaw 配置 Taotoken 以实现自动化工作流中的模型调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为 OpenClaw 配置 Taotoken 以实现自动化工作流中的模型调用 OpenClaw 是一款强大的自动化工作流工具,能够通过编排任务…...
