当前位置: 首页 > news >正文

【java】反射机制

反射机制是spring的基础。

最简单的例子:ORM,当数据库的表变了,查询的返回变了,那么只需要修改 对应POJO类、mapper即可。

----------------------------------

首先,明白静态语言与动态语言的区别

Java是一门静态语言,但是反射提供了一种黑魔法,允许在运行时去动态修改一个类的定义,一个对象的属性等等,给静态语言加上了“动态”的效果

Java反射可以简单的理解为Class的一种抽象,我们知道,Java是面向对象语言,一切皆对象,都是某种抽象,可以理解反射就是对Class的抽象,所以,通过反射,你可以获取类名,注解,属性,构造器,gettter/setter等等,动态调用方法,修改属性,修改属性的访问权限等等

Java反射的应用很多,如,JSON的序列化/反序列化,JDK动态代理,AOP等

作者:SevenLin澤耿
链接:https://www.zhihu.com/question/377483107/answer/1069386587

2、运行时加载类是动态加载类

Class c = Class.forName("类的全名"),不仅表示了类的类型,还表示了动态加载类,编译不会报错,在运行时才会加载,使用接口标准能更方便动态加载类的实现。功能性的类尽量使用动态加载,而不用静态加载。

很多软件比如QQ,360的在线升级,并不需要重新编译文件,只是动态的加载新的东西。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【微服务】什么是微服务?微服务与分布式的区别?微服务怎么具体实践微服务?服务端发现和客户端发现...
  • 【Spring boot】Spring boot之@Value注解的使用总结---研读
  • 【mysql】MySQL 面试,必须掌握的 8 个知识点
  • 【大厂面试】面试官看了赞不绝口的Redis笔记
  • 【C/C++】理解C和C++中的左值和右值
  • 【MQTT】MQTT C语言客户端实现/ MQTT嵌入式客户端
  • 【VS】VS工程设置(包含目录、库目录、附加包含目录、附加库目录、附加依赖项)等...
  • 【linux】最小测试工程miniTest
  • 【VS】判断dll/lib是32/64位|查看lib是导入库/静态库的方法
  • 【C++】C++写后端程序
  • 【C++】C++ 知识点100题
  • 【架构】傻瓜都能看懂的高并发量服务器架构
  • 【mySQL】MySQL数据库知识整理
  • 【mySQL】Mysql InnoDB 共享表空间和独立表空间 区别和优缺点
  • 【算法】程序的时间复杂度计算
  • avalon2.2的VM生成过程
  • Docker: 容器互访的三种方式
  • Fundebug计费标准解释:事件数是如何定义的?
  • golang 发送GET和POST示例
  • leetcode-27. Remove Element
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Mysql数据库的条件查询语句
  • Octave 入门
  • OSS Web直传 (文件图片)
  • Phpstorm怎样批量删除空行?
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue2 SSR 的优化之旅
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 坑!为什么View.startAnimation不起作用?
  • 聊聊directory traversal attack
  • 如何设计一个比特币钱包服务
  • 深度解析利用ES6进行Promise封装总结
  • 数据可视化之 Sankey 桑基图的实现
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 怎样选择前端框架
  • 正则学习笔记
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #DBA杂记1
  • (1)(1.11) SiK Radio v2(一)
  • (2)MFC+openGL单文档框架glFrame
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (三)终结任务
  • (四)模仿学习-完成后台管理页面查询
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)