Java反射详解
Java反射
一.什么是反射
我们使用的一些像框架,tomcat,或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名,就可以创建给定类的对象,并调用该对象的方法和属性。这是如何做到的?
当他们加载我们本地的类时,需要先创建对象,然后将查询到的结果封装到创建的对象中(调用setxxx()方法,调用xxx属性),但问题是框架只知道Student类的地址,它是如何使用类的?
框架只能根据配置文件中配置的类的地址决定要创建并操作哪个类:
<select id="findStudents" parameterType="Student" resultType="xx.xx.xx.Student">
而且框架要做到可以处理任何类,只需要一套程序来处理,这是怎么办到的?
这时候我们就需要反射机制,只用一套程序来解决框架处理任何类的问题。
反射:
JAVA反射机制是再运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对西昂,都能调用它的任意一个方法和属性,这种动态获取信息以及动态调用对西昂的方法的功能称为java语言的反射机制。它的作用就是动态获取类的信息。
二.Class类:
反射机制当中有一个类叫Class,Class类的类表示正在运行的Java应用程序中的类和接口。
一旦class文件被加载到内存,就会为其创建一个Class对象,任何类被使用时都会创建一个Class对象。
Class类是Java反射机制的基础,可以通过获取类的Class类,可以得到一个类的基本信息。
那么如何获得类的Class对象?
方式1:
String s="Model.User";Class c1=Class.forName(s); //把给定地址的类进行了加载,为其创建Class对象Class c2=Class.forName(s); //把给定地址的类进行了加载,为其创建Class对象System.out.println(c1);System.out.println(c2);System.out.println(c1==c2); //true:c1和c2表示的是同一个//通过user的Class对象,就看可以获得User类的基本信息
方式2:
Class c3= User.class;
方式3:
User user=new User();Class c4=user.getClass(); //通过已知的对象中的getClass() 获得该对象类的Class对象
那么成功获取对象类的Class对象后如何取得其中相关信息呢?
1.创建对象
//通过Class类的对象,来创建User对象//newInstance调用默认无参构造方法,所以如果类中有有参构造方法还需要单独把无参构造方法也写出来否则IllegalAccessExceptionObject objectUser=c.newInstance();
2.获取类中的构造方法信息
//类中要确保有无参构造方法否则异常NoSuchMethodExceptionConstructor constructor1=c.getConstructor(); //获得类中指定的公共public构造方法Object objectUser = constructor1.newInstance(); //通过构造方法中newInstance创建对象Constructor constructor2=c.getDeclaredConstructor(); //获得类中的指定沟构造方法(包括私有)Constructor constructor3=c.getConstructor(String.class,String.class); //获得公共的有参构造方法Object objectUser1=constructor3.newInstance("用户1","密码1"); //创建对象,并为对象属性复制Constructor[] constructors=c.getConstructors(); //获得所有的公共的构造方法c.getDeclaredConstructors(); //获得包括私有的所有的构造方法
小知识点:java创建对象三种方式:
(1)new (2)反射机制的newInsteance (3)序列化与反序列化读取文件中的类
3.获得成员变量
String s="Model.User";Class c=Class.forName(s); //获得类的Class对象Object objectUser=c.newInstance(); //创建User对象//获得类中的成员变量//获得类中指定的公共的属性,把属性封装到一个Field对象// Field userNameField = c.getField("userName");Field userNameField = c.getDeclaredField("userName"); //私有成员变量//获得所有的属性Field [] fields=c.getFields();//包括私有Field [] fields1=c.getDeclaredFields();//用HashMap模拟查询到的数据HashMap<String,String> map=new HashMap<>();map.put("userName","admin");map.put("password","123456");//循环所有的属性,为属性赋值for (Field f: fields) {//打破了封装性,!慎用,建议使用getset方法因为可能setget方法中还有逻辑语句f.setAccessible(true); //设置可以访问私有属性f.set(objectUser,map.get(f.getName()));}
4.获得方法
String s="Model.User";Class c=Class.forName(s); //获得类的Class对象Object objectUser=c.newInstance(); //创建User对象Method eat1=c.getMethod("eat");//执行objectUser对象中的无参eat方法——invoke:调用eat1.invoke(objectUser);Method eat2=c.getMethod("eat",String.class);eat2.invoke(objectUser,"参数");//包括继承的方法Method[] methods1=c.getMethods();//获得本类中所有的成员方法包括私有Method[] methods2=c.getDeclaredMethods();System.out.println(methods1.length); //15System.out.println(methods2.length); //7Field[] fields=c.getDeclaredFields(); //获得所有属性for (Field f:fields) { //循环拿到每一个属性//通过属性名 匹配到getset方法String set="set"+String.valueOf(f.getName().charAt(0)).toUpperCase()+f.getName().substring(1);Method setMethod=c.getMethod(set,String.class); //通过set方法名获得set方法setMethod.invoke(objectUser,"用户和密码"); //调用set方法}
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Java反射详解
Java反射 一.什么是反射 我们使用的一些像框架,tomcat,或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名,就可以创建给定类的对象,并调用该对象的方法和属性。这是如何做到的? 当他们加载我们…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代分布式系统中,消息队列的作用愈发重要࿰…...
![](https://img-blog.csdnimg.cn/direct/3ddb2ad2267c45d9a93acb9840c53a42.png#pic_center)
甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文
论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…...
![](https://img-blog.csdnimg.cn/direct/237c24e3f43148d5ad9d145e857c75c8.png)
uniapp开发企业微信内部应用
最近一直忙着开发项目,终于1.0版本开发完成,抽时间自己总结下在项目开发中遇到的技术点。此次项目属于自研产品,公司扩展业务,需要在企业微信中开发内部应用。因为工作中使用的是钉钉,很少使用企业微信,对于…...
![](https://www.ngui.cc/images/no-images.jpg)
0122__linux之eventfd理解
linux之eventfd理解-CSDN博客 Linux fd 系列 — eventfd 是什么?-CSDN博客...
![](https://www.ngui.cc/images/no-images.jpg)
数学建模 —— 查找数据
目录 百度搜索技巧 完全匹配搜索:查询词的外边加上双引号“ ” 标题必含关键词:查询词前加上intitle: 搜索文档:空格再输入filetype:文件格式 去掉不想要的:查询词后面加空格后加减号与关键字 知网查文献 先看知网的硕博士…...
![](https://img-blog.csdnimg.cn/direct/914fc564194b4de89fe0e0155a586a9e.png)
合并有序链表
合并有序链表 图解代码如下 图解 虽然很复杂,但能够很好的理解怎么使用链表,以及对链表的指针类理解 代码如下 Node* merge_list_two_pointer(List& list1, List& list2) {Node* new_head1 list1.head;Node* new_head2 list2.head;Node* s…...
![](https://www.ngui.cc/images/no-images.jpg)
【SpringBoot Web框架实战教程】05 Spring Boot 使用 JdbcTemplate 操作数据库
不积跬步,无以至千里;不积小流,无以成江海。大家好,我是闲鹤,微信:xxh_1459,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了…...
![](https://img-blog.csdnimg.cn/img_convert/66104645f7cc32eedf0a8be2dec6e857.png)
Spark基于DPU的Native引擎算子卸载方案
1.背景介绍 Apache Spark(以下简称Spark)是一个开源的分布式计算框架,由UC Berkeley AMP Lab开发,可用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Mini2440 start.s 修改支持串口输出,方便调试 (四)
经常会遇到点板子的时候,板子没有任何反应!怎么知道板子有没有在正常启动,在uboot阶段 start.s 中加入串口打印信息是很有必要的! 输出串口信息 ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoo…...
![](https://img-blog.csdnimg.cn/direct/5d9ed8482f3843fd85d9c2405a378dbb.png)
【教程】几种不同的RBF神经网络
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…...
![](https://img-blog.csdnimg.cn/direct/bb0a6f44389d41ecb2129949c26ca7b8.png)
【Liunx-后端开发软件安装】Liunx安装FDFS并整合nginx
【Liunx-后端开发软件安装】Liunx安装nacos 文章中涉及的相关fdfs相关软件安装包请点击下载: https://download.csdn.net/download/weixin_49051190/89471122 一、简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括…...
![](https://i-blog.csdnimg.cn/direct/54af8d012fe94115888c4c03c10650a0.png)
【Java笔记】Flyway数据库管理工具的基本原理
文章目录 1. 工作流程2. 版本号校验算法3. 锁机制3.1 为什么数据库管理工具需要锁3.2 flyway的锁机制 Reference 最近实习做的几个项目都用到了Flyway来做数据库的版本管理,顺便了解了下基本原理,做个记录。 详细的使用就不写了,网上教程很多…...
![](https://img-blog.csdnimg.cn/img_convert/24cb2e512ed9fe0ca06cfa1ead928821.webp?x-oss-process=image/format,png)
国际数字影像产业园创业培训,全面提升创业能力!
国际数字影像产业园作为数字影像产业的创新高地,致力于提供全面的创业支持服务。其中,创业培训作为重要的组成部分,旨在通过系统的课程设置和专业的讲师团队,为创业者提供从基础到进阶的全方位指导,帮助他们在数字影像…...
![](https://img-blog.csdnimg.cn/direct/03519e4290bd417ebd4e55ff1ea2be17.png)
pyqt5 制作视频剪辑软件,切割视频
该软件用于切割视频,手动选取视频片段的起始帧和结束帧并保存为json文件。gui界面如下:包含快进、快退、暂停等功能, 代码如下: # codingUTF-8 """ theme: pyqt5实现动作起始帧和结束帧的定位,将定位到…...
![](https://www.ngui.cc/images/no-images.jpg)
VUE----通过nvm管理node版本
使用 NVM(Node Version Manager)来管理和切换 Node.js 版本是一个很好的选择。以下是在 苹果电脑macos系统 上使用 NVM 安装和切换 Node.js 版本的步骤: 1. 安装 NVM 如果你还没有安装 NVM,可以按照以下步骤进行安装:…...
![](https://www.ngui.cc/images/no-images.jpg)
R语言进行字符的替换和删减gsub,substr函数
目录 R语言读文件“-“变成“.“ 提取列字符前几个 提取列字符末尾几个 进行字母替换 paste0函数使用 长宽数据转换 R语言读文件“-“变成“.“ R语言读文件“-“变成“.“_r语言 列名中的-变成了点-CSDN博客 怎样将"."还原为"-" rm(list = ls()…...
![](https://img-blog.csdnimg.cn/img_convert/e4636501805a994c0fea7507c10d9763.png)
2024年6月27日,欧盟REACH法规新增第31批1项SVHC高关注物质
ECHA公布第31批1项SVHC,物质已增至241项 2024年6月27日,ECHA公布第31批1项SVHC,总数达241项。新增物质未包括磷酸三苯酯,仍在评议中。REACH法规要求SVHC含量超0.1%需告知下游,出口超1吨须通报ECHA。SCIP通报要求SVHC含…...
![](https://img-blog.csdnimg.cn/direct/53bcb0a9dab04cbb9c9ed79cd6877ce7.png)
高通410-linux棒子设置网络驱动
1.首先打开设备管理器 2.看到其他设备下的RNDIS,右键更新驱动程序 3.点击浏览我的电脑… 最后一个...
![](https://www.ngui.cc/images/no-images.jpg)
PostgreSQL的系统视图pg_stat_archiver
PostgreSQL的系统视图pg_stat_archiver 在 PostgreSQL 数据库中,pg_stat_archiver 视图提供了关于归档进程(archiver process)的统计信息。归档进程负责将 WAL(Write-Ahead Logging)日志文件复制到归档存储࿰…...
![](https://img-blog.csdnimg.cn/direct/ef66e995eb1240c89985e4c1c4269128.png#pic_center)
【D3.js in Action 3 精译】第一部分 D3.js 基础知识
第一部分 D3.js 基础知识 欢迎来到 D3.js 的世界!可能您已经迫不及待想要构建令人惊叹的数据可视化项目了。我们保证,这一目标很快就能达成!但首先,我们必须确保您已经掌握了 D3.js 的基础知识。这一部分提到的概念将会在您后续的…...
![](https://www.ngui.cc/images/no-images.jpg)
面试经验分享 | 渗透测试工程师(实习岗)
所面试的公司:某安全厂商 所在城市:南京 面试职位:渗透测试工程师实习岗位 面试过程: 腾讯会议(视频) 面试过程:整体流程就是自我介绍加上一些问题问题balabalabala。。。由于面的岗位是渗透…...
![](https://img-blog.csdnimg.cn/direct/4d483d21416144b08d6d3a379ccba52d.png)
STM32 IWDG(独立看门狗)
1 IWDG简介 STM32有两个看门狗:一个是独立看门狗(IWDG),另外一个是窗口看门狗。独立看门狗也称宠物狗,窗口看门狗也称警犬。本文主要分析独立看门狗的功能和它的应用。 独立看门狗用通俗一点的话来解释就是一个12位的…...
![](https://www.ngui.cc/images/no-images.jpg)
ios swift5 获取wifi列表
参考博客: iOS之Wifi开发探究 - 稀土掘金 iOS 无法获取 WiFi 列表?一定是因为你不知道这个框架 - 稀土掘金 iOS获取Wifi列表详解 - 简书...
![](https://www.ngui.cc/images/no-images.jpg)
回溯法c++学习 解决八皇后问题
使用回溯法解决八皇后问题 八皇后问题是一个以国际象棋为背景的问题:如何能够在88 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。这…...
![](https://img-blog.csdnimg.cn/direct/fc2ddcad38314c878032819ead5b66eb.png)
5. Spring IoCDI ★ ✔
5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么?★ (Spring 是包含了众多⼯具⽅法的 IoC 容器)1.1.1 什么是容器?1.1.2 什么是 IoC?★ (IoC: Inversion of Control (控制反转))总…...
![](https://img-blog.csdnimg.cn/direct/6e5996d17a8f4c9b89154a203ed412aa.png)
数据库自动备份到gitee上,实现数据自动化备份
本人有个不太好的习惯,每次项目的数据库都是在线上创建,Navicat 连接线上数据库进行处理,最近有一个项目需要二次升级,发现老项目部署的服务器到期了,完蛋,数据库咩了!!!…...
![](https://www.ngui.cc/images/no-images.jpg)
探索 Spring Cloud Gateway:构建微服务架构的关键一环
1. 简介 在当今的分布式系统中,微服务架构已经成为了一种流行的架构模式。在微服务架构中,服务被拆分为小型、可独立部署的服务单元,这些服务单元能够通过网络互相通信,形成一个整体的应用系统。然而,随着微服务数量的…...
P1114 “非常男女”计划最优解
原题地址 P1114 “非常男女”计划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码题解 AC代码(1) 因为用的是级的算法,所以最后一个 了,这里使用特判来得到的,给你们放一下代码: #include <bi…...
![](https://img-blog.csdnimg.cn/direct/9cca28e834cf47d192c5d6473ac73075.png)
C++ | Leetcode C++题解之第187题重复的DNA序列
题目: 题解: class Solution {const int L 10;unordered_map<char, int> bin {{A, 0}, {C, 1}, {G, 2}, {T, 3}}; public:vector<string> findRepeatedDnaSequences(string s) {vector<string> ans;int n s.length();if (n < L…...
![](https://www.ngui.cc/images/no-images.jpg)
构建、标记和发布镜像
构建、标记和发布镜像 目录 构建镜像标记镜像发布镜像实践 设置构建镜像推送镜像 在本指南中,您将学习以下内容: 构建镜像:基于Dockerfile构建镜像的过程。标记镜像:为镜像命名的过程,这也决定了镜像的分发位置。发…...
![](https://img-blog.csdnimg.cn/direct/2d5605e71c5b457abde6121c80884bb3.png)
[Go Web] Kratos 使用的简单总结
文章目录 1.Kratos 简介2.传输协议3.日志4.错误处理5.配置管理6.wire 1.Kratos 简介 Kratos并不绑定于特定的基础设施,不限定于某种注册中心,或数据库ORM等,所以您可以十分轻松地将任意库集成进项目里,与Kratos共同运作。 API -&…...
![](https://img-blog.csdnimg.cn/direct/c7b4c578eb7e49588ac810f3017b71e8.png#pic_center)
首个实时 AI 视频生成技术发布;科大讯飞发布星火大模型 4.0 丨 RTE 开发者日报
开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…...
![](https://www.ngui.cc/images/no-images.jpg)
什么是容器镜像
什么是容器镜像? 1. 容器镜像的两个重要原则 容器镜像是容器化应用程序的基础,它包含了运行应用程序所需的一切——代码、运行时、库和依赖项。理解容器镜像的两个重要原则非常重要: 不可变性:容器镜像一旦构建,就不…...
![](https://img-blog.csdnimg.cn/direct/21b55e2091a947b6a3d3e003cf5a73b8.png)
ElasticSearch-Windows系统ElasticSearch(ES)的下载及安装
前言 下载ElasticSearch 可以进入ElasticSearch官方下载地址,选择与电脑系统相对应的版本;博主已经上传资源,或者点此直接免费下载,本次演示版本为8.14.1。 注意: Elasticsearch 5 需要 Java 8 以上版本;…...
![](https://img-blog.csdnimg.cn/direct/49cad044bcd940f8aa9961ae251c3f1c.png)
【应用开发二】GPIO操控(输出、输入、中断)
1 操控GPIO方式 控制目录:/sys/class/gpio /sys/class/gpio目录下文件如下图所示: 1.1 gpiochipX目录 功能:当前SoC所包含的所有GPIO控制器 i.mx6ull一共包含5个GPIO控制器,分别为GPIO1~5分别对应gpiochip0、gpiochip32、gpi…...
![](https://www.ngui.cc/images/no-images.jpg)
单点登录方法
一、父域cookie:两个有相同父域名的二级域名之间可以跨域传递cookie //注意该接口的地址也是baidu.com下属的二级域名:a.baidu.com //全部接口地址为:a.baidu.com/dev-api/system/ecdWeb/login。如果不是a.baidu.com那么根本带不过去 //其实可以理解为通过该方法将cookie传给…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot集成JPA并配置hikariCP连接池问题解决
一、引入需要的依赖 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/></parent> jpa依赖 <!--…...
![](https://www.ngui.cc/images/no-images.jpg)
vue2的双向绑定
vue是一个mvvm框架,即数据双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。 Vue.js 2 中的双向绑定是通过 v-model 指令实现的。v-model 指令可以在表单输入元素上创建…...
![](https://img-blog.csdnimg.cn/direct/b34516d3c987400c91a6f8bebf3d6299.png)
Vue3 国际化i18n
国际化i18n方案 1. 什么是i18n2. i18n安装、配置及使用2.1 安装2.2 配置2.3 挂载到实例2.4 组件中使用2.5 语言切换 1. 什么是i18n i18n 是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无…...
![](https://www.ngui.cc/images/no-images.jpg)
算法金 | 使用随机森林获取特征重要性
大侠幸会幸会,我是日更万日 算法金;0 基础跨行转算法,国内外多个算法比赛 Top;放弃 BAT Offer,成功上岸 AI 研究院 Leader; <随机森林及其应用领域> 随机森林是一种强大的机器学习算法,其…...
![](https://www.ngui.cc/images/no-images.jpg)
网络安全的重要性
网络安全的重要性 网络安全是指保护网络系统免受未授权的访问、攻击、破坏或未经授权的数据泄露的能力。随着互联网的普及和数字化进程的加速,网络安全问题日益凸显,成为个人、企业和国家必须面对的重要挑战。 网络安全的威胁 网络安全威胁包括黑客攻…...
![](https://www.ngui.cc/images/no-images.jpg)
Leetcode40 无重复组合之和
题目描述: 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 思路分析 这个题是…...
![](https://www.ngui.cc/images/no-images.jpg)
详解MATLAB中处理日期和时间的函数
在MATLAB中处理日期和时间时,可以使用多种函数来进行计时和时间差计算。以下是对一些常用函数的详细解释: 1. tic 和 toc 用途:用来测量一段代码执行的时间。用法:tic; % 启动秒表 % 你的代码 elapsedTime toc; % 停止秒表&…...
![](https://img-blog.csdnimg.cn/direct/9f2e5cd5463b4feaa007b54164416fcd.png)
Java养老护理助浴陪诊小程序APP源码
💖护理助浴陪诊小程序💖 一、引言:养老新趋势🌱 在快节奏的现代生活中,养老问题逐渐成为了社会关注的焦点。如何为老年人提供便捷、贴心的服务,让他们晚年生活更加安心、舒适,是我们每个人都需…...
![](https://www.ngui.cc/images/no-images.jpg)
go的singleFlight学习
Package singleflight provides a duplicate function call suppression mechanism “golang.org/x/sync/singleflight” 原来底层是 waitGroup,我还以为等待的协程主动让出 cpu 了,没想到 waitGroup.Wait() 阻塞了 doCall 不但返回值是 func 的 val 和…...
![](https://img-blog.csdnimg.cn/img_convert/823dd88d0aae4c4c75539f597c8b5b50.png)
高电压技术-冲击高压发生器MATLAB仿真
微❤关注“电气仔推送”获得资料(专享优惠) 冲击电压发生器是产生冲击电压波的装置,用于检验电力设备耐受大气过电压和操作过电压的绝缘性能,冲击电压发生器能产生标准雷电冲击电压波形,雷电冲击电压截波,标准操作冲击…...
![](https://img-blog.csdnimg.cn/direct/4bcca1b9e698475184b8612c9ee78faa.png)
【STM32】SysTick系统滴答定时器
1.SysTick简介 CM4内核的处理和CM3一样,内部都包含了一个SysTick定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时 ,将 从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除…...
![](https://www.ngui.cc/images/no-images.jpg)
编码遵循五大设计原则创建出更加健壮、可维护和可扩展的软件系统
一、单一职责原则(SRP) * 定义:一个类应该只有一个引起它变化的原因。 * 解释:意味着一个类应该专注于做一件事情,当需求发生变化时,只影响到一个类。这有助于降低类间的耦合,使得代码更易于理…...
![](https://www.ngui.cc/images/no-images.jpg)
记录一个问题
问题描述 如果一个物料既在A总成零件号下计算为托盘库,在B总成零件号下计算为箱库,则放于箱库。 A中选择排名第21的递补进托盘库。(也需要判断递补的是否在其他总成零件中为箱库,是的话继续递补判断) 解决思路 为了…...
![](https://www.ngui.cc/images/no-images.jpg)
快速上手文心一言指令:解锁AI交互新体验
文心一言,作为百度研发的预训练语言模型,以其强大的语言理解和生成能力,为用户提供了丰富的交互体验。通过一系列精心设计的指令,用户可以轻松地与模型进行对话,获取信息、解决问题、启发灵感。本文将详细介绍如何快速…...
![](https://www.ngui.cc/images/no-images.jpg)
redis的数据类型对应的使用场景
Redis提供了多种数据类型,每种数据类型都有其特定的适用场景。以下是Redis主要数据类型及其典型应用场景:1. 字符串(String) 应用场景:适用于存储简单的键值对数据,如用户基本信息、计数器(如网页访问次数&…...
![](https://www.ngui.cc/images/no-images.jpg)
Java程序之基本编程练习
1、兔子繁殖问题 题目:已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第…...
![](https://img-blog.csdnimg.cn/direct/99c2c7ec22f94b79b8079942d4c52b7a.png)
设备调试上位机GUI
C Fast Qt C 前端 原来真的不需要在 design 上画来画去,有chat-gpt 那里不知道问哪里 全是组件拼起来的,不需要画,最后发现其实也是定式模式,跟着AI 学套路 最终前端界面 鼠标邮件绑定几个功能 太nice 了 在再加一个全局的日志模块 yyds MVC 的架构, 视图…...
![](https://www.ngui.cc/images/no-images.jpg)
C++中的C++中的虚析构函数的作用和重要性
在C中,虚析构函数(virtual destructor)的作用和重要性主要体现在多态和继承的上下文中。了解这一点之前,我们先简要回顾一下多态和继承的基本概念。 继承与多态 继承:允许我们定义一个基类(也称为父类或超…...
![](https://img-blog.csdnimg.cn/direct/8a2644aa7559483bb45d5acd235a4807.png)
jenkins在使用pipeline时,为何没有方块形视图
项目场景: 安装完Jenkins时后,通过pipeline创建的项目任务。 问题描述 在立即构建后,没有显示每个阶段的视图。 原因分析: 原因是,刚安装的Jenkins,这个视图不是Jenkins自带的功能,而必须安装…...
![](https://www.ngui.cc/images/no-images.jpg)
低姿态魅力:丰田雅力士AIRBFT气动避震改装秀
丰田雅力士,一款以其灵巧与动感著称的小车,当它搭载了AIRBFT气动避震系统后,车身姿态得以进一步降低,展现出了前所未有的低姿态魅力。低至地面的车身,不仅在视觉上给人以强烈的冲击感,更在行驶中提供了更低的风阻,提升了车辆的稳定性和操控性。AIRBFT气动避震系统以其卓…...
![](http://www.jyqsh.com/uploads/allimg/240618/1029116458-0.png)
4JJ1动力+定制化冷厢翼放冷链版助你夏日创富遥遥领“鲜”
夏日高温,对于生鲜食材的运输来说是个巨大的挑战。如何确保物品新鲜及时的送达,成为摆在物流行业面前不得不思考的问题。冷链物流的重要性愈发凸显,而高效、可靠的冷藏车则成为了解决这一问题的关键。那么,面对市场上琳琅满目的冷藏车产品,如何选到一款既省心又高效赚钱的…...
![](https://img-blog.csdnimg.cn/direct/86ab0e561f6547fb84a534a5cd436ddb.png)
用户接入和认证技术
一、用户接入和认证配置 称为网络接入控制,通过对接入网络的客NAC (Network Admission Control)户端和用户的认证保证网络的安全,是一种“端到端”的安全技术。包括802.1x认证、MAC认证与Portal认证。 二、三种认证方式简介 1、Portal认证 Portal认证通…...
![](https://www.ngui.cc/images/no-images.jpg)
ffmpeg3.1.1版本连接ftp服务器失败
发现这个问题是在ffmpeg4之后修复的: 原因在于libavformat文件下的ftp.c文件: 修改方法:加入在TCP控制连接时加入应答代码202: static int ftp_features(FTPContext *s) {static const char *feat_command "FEAT\r\…...
![](https://img-blog.csdnimg.cn/direct/ece43c8c5601435a9c95e36634d3a72e.png)
【Linux进程篇】Linux进程管理——进程创建与终止
W...Y的主页 😊 代码仓库分享💕 目录 进程创建 fork函数初识 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出场景 _exit函数 exit函数 return退出 进程创建 fork函数初识 在linux中fork函数时非常重要的函数,它从已…...
![](https://www.ngui.cc/images/no-images.jpg)
习近平将出席中国—阿拉伯国家合作论坛第十届部长级会议开幕式并发表主旨讲话
新华社北京5月26日电 外交部发言人华春莹26日宣布:经中阿双方共同商定,中国—阿拉伯国家合作论坛第十届部长级会议将于5月30日在北京举行。国家主席习近平将出席会议开幕式并发表主旨讲话。中共中央政治局委员、外交部长王毅将同阿方主席、毛里塔尼亚外长马尔祖克共同主持会议…...