反射、反射调用以及修改成员变量,成员方法,构造函数、反射的应用
DAY11.2 Java核心基础
反射(第二弹)
第一弹请访问链接:
反射(第一篇)
- getMethod(String name, Class… parameterTypes)
- getMethods()
- getDeclaredMethod(String name,Class… parameterTypes)
- getDeclaredMethods()
getMethods() 获取类中所有方法,包括从父类继承过来的方法以及自定义的方法,这些方法都是 public 方法
public String getName() {return name;
}private void setName(String name) {this.name = name;
}protected int getAge() {return age;
}void setAge(int age) {this.age = age;
}@Override
public String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';
}
public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");Method[] methods = class1.getMethods();for (Method method : methods) {System.out.println(method.getName());}
}
可以看见这个输出只有public访问符的方法
getMethod(String name,Class… parameterTypes) 根据方法名和参数列表获取具体的某个方法,只能是 public
方法,包括自定义的方法以及从父类继承过来的方法
private void setName(String name) {this.name = name;
}
Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");
Method setName = class1.getMethod("setName", String.class);
System.out.println(setName);
这样是获取不到的,抛出找不到方法的异常
因为这个只能获取到公有方法(public修饰的)
改为public就可以获取到了
同理
getDeclaredMethods() 获取类中所有的方法,包括 public、protected、private、默认,但是无法获取从父类继承过来的方法
public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");Method[] declaredMethods = class1.getDeclaredMethods();for (Method declaredMethod : declaredMethods) {System.out.println(declaredMethod.getName());}
}
public String getName() {return name;
}public void setName(String name) {this.name = name;
}protected int getAge() {return age;
}void setAge(int age) {this.age = age;
}@Override
public String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';
}
输出:
可以看见可以获取所有声明的方法,和这个方法的访问权限符无关
getDeclaredMethod(String name,Class… parameterTypes) 根据方法名和参数列表获取具体的某个方法,对于访问权限修饰符没有限制,但是只能获取自定义的方法
Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");
Method getAge = class1.getDeclaredMethod("getAge");
System.out.println(getAge);
获取到的是protected的方法,对于访问权限修饰符没有限制,但是只能获取自定义的方法
获取类中成员变量
Class 提供了 4 个方法获取类中的成员变量
- getFields():获取类中全部的 public 修饰的成员变量,包括继承自父类的成员变量以及自定义的成员变量
- getDeclaredFields():获取类中全部修饰符修饰的成员变量,但仅限于类自定义的,不包括从父类继承过来的
- getField(String name):根据成员变量名称获取类中的某个具体的 public 修饰的成员变量,包括继承自父类的成员变量以及自定义的成员变量
- getDeclaredField(String name):根据成员变量名称获取类中某个具体的成员变量,不受访问权限修饰符的限制,但是只能获取类自定义的成员变量,不包括从父类继承过来的成员变量
和上面的获取方法同理
类中的字段:
public String name;
public int age;
private String sex;
Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");
Field[] fields = class1.getFields();
for (Field field : fields) {System.out.println(field);
}
System.out.println(class1.getDeclaredField("name"));
可以看见getFields()获取到两个public的字段,getDeclaredField获取的是privare的sex
反射就是在程序运行的时候动态获取类的信息(比如构造器,成员方法,成员变量)
反射的应用
通过 Class 类提供的方法可以获取类中的成员变量、成员方法、构造函数
获取这些有什么用?实际开发中如何应用反射?
反射调用方法
常规创建并操作对象的方法
public User(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;
}
public String getInfo() {return this.name + " " + this.age + " " + this.sex;
}
User user = new User("deepseek", 18, "男");
user.getInfo();
User类的构造方法和测试方法
getMethod() 和 invoke()
public User(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;
}
public String getInfo() {return this.name + " " + this.age + " " + this.sex;
}
Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");
Constructor constructor = class1.getConstructor(String.class, int.class, String.class);
User user1 = (User) constructor.newInstance("deepSeek", 18, "男");
Method getInfoMethod = class1.getMethod("getInfo",null);
System.out.println(getInfoMethod.invoke(user1));
输出:
反射就是将常规方式进行反转
// 常规调用
user.getInfo();
// 反射创建
Method getInfoMethod = class1.getMethod("getInfo",null);
System.out.println(getInfoMethod.invoke(user1));
常规:
1、创建实例化对象
2、调用实例化对象的方法
反射:
1、获取反射源头 Class 对象
2、根据 Class 对象获取目标方法
3、通过反射机制调用目标方法
反射访问成员变量
getDeclaredFields() :获取类中所有成员变量
Class class1 = Class.forName("com.deepSeek.shuwu.Day11.User");
Field[] declaredFields = class1.getDeclaredFields();
for (Field declaredField : declaredFields) {// 获取字段名称、类型、修饰符、泛型类型System.out.println(declaredField.getName());System.out.println(declaredField.getType());System.out.println(declaredField.getModifiers());System.out.println(declaredField.getGenericType());System.out.println("-------------------------------");
}
获取字段,然后可以传入对象获取对象的id;
public static void main(String[] args) throws Exception {// 加载 User 类Class<?> class1 = Class.forName("com.deepSeek.shuwu.Day11.User");// 创建 User 对象User user1 = new User("user1", 18, "男");User user2 = new User("user2", 18, "男");User user3 = new User("user3", 18, "男");// 获取 name 字段(假设它是 public 的)Field name = class1.getField("name");System.out.println(name.get(user1)); System.out.println(name.get(user2)); System.out.println(name.get(user3)); // 获取 sex 字段(private 字段)Field sex = class1.getDeclaredField("sex");sex.setAccessible(true); System.out.println(sex.get(user1)); // 修改 user1 的 sex 字段值sex.set(user1, "女");System.out.println(sex.get(user1));
}
输出:
可以通过反射获取到对象的private值,以及对对象的值进行修改
如下图所示:
反射调用构造函数
反射机制下用 Constructor 类来描述构造函数,同时一个类可以拥有多个构造函数
一个User类中的三个构造函数:
public User(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;
}
public User() {}
public User(String name, int age) {this.name = name;this.age = age;
}
@Override
public String toString() {eturn "User{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +'}';
}
测试类;
// 加载 User 类
Class<?> class1 = Class.forName("com.deepSeek.shuwu.Day11.User");Constructor<?> constructor1 = class1.getConstructor(String.class, int.class);
User user1 = (User) constructor1.newInstance("李四", 20);
System.out.println(user1);Constructor<?> constructor2 = class1.getConstructor(null);
User user2 = (User) constructor2.newInstance();
System.out.println(user2);Constructor<?> constructor3 = class1.getConstructor(String.class, int.class, String.class);
User user3 = (User) constructor3.newInstance("张三", 18, "男");
System.out.println(user3);
输出:
反射调用构造函数和反射调用普通方法的区别
1、构造函数使用 Constructor 来表示,普通方法使用 Method 来表示
2、Constructor 调用的是 newInstance 方法,Method 调用的是 invoke 方法
3、Constructor 不需要传入对象,只需传入参数,Method 需要同时传入对象和参数
直接访问成员变量进行赋值 or 通过调用成员方法对成员变量进行赋值
public static void main(String[] args) throws Exception {// 加载 User 类Class<?> class1 = Class.forName("com.deepSeek.shuwu.Day11.User");User user =new User();Field name = class1.getField("name");// 直接赋值name.set(user,"deepSeek");// 如果不是public字段,需要先设置可访问性Field age = class1.getDeclaredField("age");age.setAccessible(true);age.set(user,19);// 调用 setSex 方法赋值,前提是这个方法是publicMethod setSex = class1.getMethod("setSex", String.class);setSex.invoke(user,"女");// 输出System.out.println(user);
}
相关文章:
反射、反射调用以及修改成员变量,成员方法,构造函数、反射的应用
DAY11.2 Java核心基础 反射(第二弹) 第一弹请访问链接: 反射(第一篇) getMethod(String name, Class… parameterTypes)getMethods()getDeclaredMethod(String name,Class… parameterTypes)getDeclaredMethods() …...
对Spring的每种事务传播级别的应用场景和失效场景
好的,下面针对Spring的每种事务传播级别,详细说明其应用场景和失效场景,帮助更好地理解它们的实际使用。 1. REQUIRED(默认) 应用场景: 大多数业务方法,尤其是需要事务支持的操作。例如&#x…...
DeepSeek linux服务器(CentOS)部署命令笔记
Linux(CentOS)FinalShellOllama远程访问,本地部署deepseek 自备CentOS服务器,并且已经使用FinalShell连接到服务器 一、准备工作 1.更新服务器 apt-get update-y 2.下载Ollama curl -fsSL https://ollama.com/install.sh | …...
阿里巴巴发布 R1-Omni:首个基于 RLVR 的全模态大语言模型,用于情感识别
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
OpenCV 拆分、合并图像通道方法及复现
视频讲解 OpenCV 拆分、合并图像通道方法及复现 环境准备:安装 OpenCV 库(pip install opencv-python) 内容: 1. 读取任意图片(支持 jpg/png 等格式) 2. 使用 split () 函数拆解成 3 个单色通道…...
Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)
1、实时通信有哪些实现方式? 特性轮询(Polling)WebSocketSSE (Server-Sent Events)通信方向单向(客户端 → 服务端)双向(客户端 ↔ 服务端)单向(服务端 → 客户端)连接方…...
提升 Instagram 账号安全性:防止数据泄露的步骤
提升 Instagram 账号安全性:防止数据泄露的步骤 在这个数字化时代,Instagram 不仅是我们分享生活点滴的平台,也是个人信息交换的场所。随之而来的,是数据泄露的风险。保护好自己的 Instagram 账号,防止个人信息外泄&a…...
实现“XXX一张图“进行环境设施设备可视化管理
实现“电网一张图”、“铁路一张图”、“水库一张图”、“森林一张图”等概念,本质上是将某一领域的空间数据、设施设备、运行状态等信息整合到一个统一的数字化平台上,实现全域可视化、智能化管理和协同运营。这种“一张图”模式依赖于地理信息系统(GIS)、物联网(IoT)、…...
RTDETR融合[CVPR2025]ARConv中的自适应矩阵卷积
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Adaptive Rectangular Convolution for Remote Sensing Pansharpening》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.00467 代码链接:https:/…...
深度解读DeepSeek部署使用安全(48页PPT)(文末有下载方式)
深度解读DeepSeek:部署、使用与安全 详细资料请看本解读文章的最后内容。 引言 DeepSeek作为一款先进的人工智能模型,其部署、使用与安全性是用户最为关注的三大核心问题。本文将从本地化部署、使用方法与技巧、以及安全性三个方面,对Deep…...
微服务无状态服务设计
微服务无状态服务设计是构建高可用、高扩展性系统的核心方法。 一、核心设计原则 请求独立性 每个请求必须携带完整的上下文信息,服务不依赖本地存储的会话或用户数据。例如用户认证通过JWT传递所有必要信息,而非依赖服务端Session。 状态外置化 将会话…...
Android 高版本 DownloadManager 封装工具类,支持 APK 断点续传与自动安装
主要有以下优点 兼容高版本 Android:适配 Android 10 及以上版本的存储权限和安装权限。断点续传:支持从断点继续下载。下载进度监听:实时获取下载进度并回调。错误处理:处理下载失败、网络异常等情况。自动安装 APK:…...
Apache Hudi 性能测试报告
一、测试背景 数据湖作为一个集中化的数据存储仓库,支持结构化、半结构化以及非结构化等多种数据格式,数据来源包含数据库数据、增量数据、日志数据以及数仓上的存量数据等。数据湖能够将这些不同来源、不同格式的数据集中存储和管理在高性价比的分布式存储系统中,对外提供…...
Flask使用Blueprint注册管理路由
在 Flask 中,可以使用 蓝图(Blueprint) 来组织和注册路由,从而让代码更加模块化和易于维护。以下是完整的使用方法: 1. 创建 Flask 项目结构 建议的项目目录结构如下: my_flask_app/ │── app.py …...
LuaJIT 学习(3)—— ffi.* API 函数
文章目录 GlossaryDeclaring and Accessing External Symbolsffi.cdef(def)ffi.Cclib ffi.load(name [,global])例子:ffi.load 函数的使用 Creating cdata Objectscdata ffi.new(ct [,nelem] [,init...]) cdata ctype([nelem,] [init...])例子:匿名 C…...
[资源分享]-web3/区块链/学习路线/资料/找工作方式/水龙头
记录个人学习web3整理的资料 后续如果有 了解/入坑 打算, 提前收藏一下. 1. 学习路线 登链社区-学习路线图 2. 学习资料 国内成系统的资料比较少,我整理的网盘的,关注私信我,资料互相学习 前言 | 区块链技术指南 学习web3-僵尸小游戏 web3.js文档 ethers.js官方文档 Hardhat文…...
Django-ORM-prefetch_related
Django-ORM-prefetch_related 模型定义N1 查询问题示例 使用 prefetch_related 优化查询处理更复杂的查询示例:预取特定条件的书籍示例:预取多个关联字段 性能比较注意事项总结 通过 Author 和 Books 两个模型来理解 Django 的 prefetch_related 方法。 …...
MySQL 批量插入 vs 逐条插
MySQL 插入数据:批量插入 vs 逐条插入,哪个更快? 在 MySQL 中,插入数据有两种常见方式: 批量插入:一条 SQL 插入多条数据。逐条插入:每次插入一条数据。 这两种方式有什么区别?哪…...
Linux centos 7 grub引导故障恢复
CentOS 7误删GRUB2可以通过以下步骤恢复: 进入救援模式 1. 插入CentOS 7安装光盘,重启系统。在开机时按BIOS设置对应的按键(通常是F2等),将启动顺序调整为CD - ROM优先。 2. 系统从光盘启动后,选择“…...
要在Unreal Engine 5(UE5)中实现角色打击怪物并让怪物做出受击反应,
UE5系列文章目录 文章目录 UE5系列文章目录前言一、实现思路二、最终效果 前言 ue5角色受击没有播放受击动画,主角达到怪物身上没有反应 一、实现思路 要在Unreal Engine 5(UE5)中实现角色打击怪物并让怪物做出受击反应,你需要…...
Navicat for Snowflake 震撼首发,激活数据仓库管理全新动能
近日,Navicat 家族迎来了一位全新成员 — Navicat for Snowflake。Snowflake 是一款基于云架构的现代数据仓库解决方案,以其弹性扩展、高性能和易用性著称。这次首发的Navicat for Snowflake 专为简化 Snowflake 数据库管理任务而精心打造。它凭借其直观…...
【redis】发布订阅
Redis的发布订阅(Pub/Sub)是一种基于消息多播的通信机制,它允许消息的**发布者(Publisher)向特定频道发送消息,而订阅者(Subscriber)**通过订阅频道或模式来接收消息。 其核心特点如…...
高级java每日一道面试题-2025年2月26日-框架篇[Mybatis篇]-Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ?
如果有遗漏,评论区告诉我进行补充 面试官: Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ? 我回答: 在Java高级面试中讨论MyBatis如何将SQL执行结果封装为目标对象并返回的过程时,我们可以从过程细节和映射形式两个方面来综合解答这个问…...
linux root丢失修改密
在RHEL7下重置密码 第一种方式:光驱进入急救模式 //做之前最好 selinuxdisabled Conntinue 然后chroot /mnt/sysimag 然后编辑/etc/shadow文件 第二种方式: 1:编辑启动菜单按e,找到linux16行,在行尾加入 init/bin/sh,同时在…...
OpenCV中文路径图片读写终极指南(Python实现)
文章目录 OpenCV中文路径图片读写终极指南(Python实现)一、问题深度解析1.1 现象观察1.2 底层原因 二、中文路径读取方案2.1 终极解决方案(推荐)2.2 快速修复 三、中文路径保存方案3.1 通用保存函数3.2 使用示例 四、技术原理详解…...
linux 时间同步(阿里云ntp服务器)
1、安装ntp服务 rootlocalhost ~]# yum -y install ntp 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.nju.edu.cn* centos-sclo-rh: mirrors.nju.edu.cn* centos-sclo-sclo: mirrors.huaweicloud.com* epel: m…...
Go vs Rust vs C++ vs Python vs Java:谁主后端沉浮
一、核心性能对比(基于TechEmpower基准测试) 语言单核QPS延迟(ms)内存消耗适用场景Rust650,0000.1245MB高频交易/区块链C++720,0000.0932MB游戏服务器/实时渲染Go230,0000.45110MB微服务/API网关Java180,0001.2450MB企业ERP/银行系统Python12,0008.5220MBAI接口/快速原型技术…...
5 分钟搭建 Prometheus + Grafana 监控
一.安装 Prometheus cd /usr/local/ wget https://github.com/prometheus/prometheus/releases/download/v2.38.0/prometheus-2.38.0.linux-amd64.tar.gz tar xvf prometheus-2.38.0.linux-amd64.tar.gz ln -s prometheus-2.38.0.linux-amd64 prometheus二.安装 node_exporter…...
【机器人-基础知识】标定 - 相机内参求解原理(单应性矩阵、内参约束方程)
1. 求解目标:内参 从世界坐标系到像素坐标系的齐次坐标形式: s [ u v 1 ] K [ R t ] [ X w Y w Z w 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} K \, [\, R \quad t \,] \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} s uv1 K…...
【QT】-一文说清楚QT定时器怎么用
在 Qt 中,定时器(QTimer)是用来定时执行某些任务的非常有用的类。它可以帮助你在指定的时间间隔后重复执行某个函数。常见的用法是启动一个定时器,每过一段时间自动执行某个操作,比如更新 UI、检查状态或发送数据等。 …...
QT编程之JSON处理
一、核心类库及功能 Qt 提供了一套完整的 JSON 处理类库(位于 QtCore 模块),支持解析和生成 JSON 数据: QJsonDocument:表示完整的 JSON 文档,支持从 QJsonObject 或 QJsonArray 初始化。QJsonOb…...
优选算法系列(1.双指针_下)
目录 五. 有效三角形的个数(medium) 题目链接:有效三角形的个数 解法: 代码: 六:和为 s 的两个数字(easy) 题目链接:和为 s 的两个数字 解法: 代码; 七…...
江科大51单片机笔记【15】直流电机驱动(PWM)
写在前言 此为博主自学江科大51单片机(B站)的笔记,方便后续重温知识 在后面的章节中,为了防止篇幅过长和易于查找,我把一个小节分成两部分来发,上章节主要是关于本节课的硬件介绍、电路图、原理图等理论…...
MS51FB9AE单片机解密实践与解析
MS51FB9AE 单片机解密实践与解析 在电子技术领域,MS51FB9AE 作为一款基于 8051 内核的单片机,凭借其强大功能与良好性能,在家用电器、智能仪表等诸多领域广泛应用,深受市场青睐。然而,厂家所采用的独特加密技术&#x…...
java 手搓一个http工具类请求传body
import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets;public class HttpUtil {/*** JSON请求发起*/public static String httpJsonRequest(String requestUrl, String requestJson) {String responseJson &…...
从零搭建微服务项目Pro(第2-2章——JSR303自定义文件校验+整合至微服务公共模块)
前言: JSR 303,即 Bean Validation,是 Java EE 6 中的一项子规范,旨在为 Java Bean 提供一种标准化的数据验证机制。它通过注解的方式,允许开发者在 Java 类的字段或方法上直接定义验证规则,从而将验证逻辑…...
Python 实现大文件的高并发下载
项目背景 基于一个 scrapy-redis 搭建的分布式系统,所有item都通过重写 pipeline 存储到 redis 的 list 中。这里我通过代码演示如何基于线程池 协程实现对 item 的中文件下载。 Item 结构 目的是为了下载 item 中 attachments 保存的附件内容。 {"crawl_tim…...
【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)
文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…...
Java vs Go:SaaS 系统架构选型解析与最佳实践
在构建 SaaS(Software as a Service)系统时,选用合适的技术栈至关重要。Java 和 Go 是当今最受欢迎的后端开发语言之一,各自有其优势和适用场景。那么,SaaS 系统开发应该选择 Java 还是 Go?本文将从多个维度…...
OpenEuler-22.03-LTS上利用Ansible轻松部署MySQL 5.7
一、需求 使用ansible自动化部署mysql二进制部署mysql部署mysql并创建JDBC用户 二、环境信息 本文涉及的代码,配置文件地址: 链接:百度网盘 请输入提取码 提取码:1g6y 软件名称版本备注Ansible2.9.27All modules — Ansible Doc…...
vscode编译器的一些使用问题
目录 解决pip不可用问题 检查VSCode的终端配置 解决pip不可用问题 eg: C:\Users\student>pip pip 不是内部或外部命令,也不是可运行的程序或批处理文件。 先找到系统环境变量 高级->环境变量 系统属性->Path 变量名随意,自己后续知道…...
解决Windows版Redis无法远程连接的问题
🌟 解决Windows版Redis无法远程连接的问题 在Windows系统下使用Redis时,很多用户会遇到无法远程连接的问题。尤其是在配置了Redis并尝试通过工具如RedisDesktopManager连接时,可能会报错“Cannot connect to ‘redisconnection’”。今天&am…...
MFC中使用Create或CreateDialog创建对话框失败,GetLastError错误码为1813(找不到映像文件中指定的资源类型)
文章目录 创建对话框失败示例、原因分析及解决方案示例代码错误原因解决方案 AFX_MANAGE_STATE(AfxGetStaticModuleState())作用一、功能1. 模块状态切换2. 自动状态恢复 二、为什么要用该函数?三、必须使用该宏的典型场景1. MFC 扩展 DLL(Extension DLL…...
std::invoke详解
基础介绍 c17版本引入了std::invoke特性,这是一个通用的调用包装器,可以统一调用: 普通函数成员函数函数对象Lambda表达式指向成员的指针 它的主要作用是提供一个统一的方式来调用各种可调用对象。 std::invoke依赖的头文件:#…...
【Rust】枚举和模式匹配——Rust语言基础14
文章目录 1. 枚举类型1.2. Option 枚举 2. match 控制流结构2.1. match 对绑定值的匹配2.2. Option<T> 的匹配2.3. 通配模式以及 _ 占位符 3. if let 控制流4. 小测试 1. 枚举类型 枚举(enumerations),也被称作 enums。枚举允许你通过…...
视频理解之Actionclip(论文宏观解读)
配合解读代码解读 1.研究背景 1. 视频行为识别的重要性 视频行为识别是视频理解领域的核心任务之一,旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值,例如智能监控、人机交互、自动驾驶、医疗健康等。随…...
【论文精读】Deformable DETR:用于端到端目标检测可变形 Transformer
论文:DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 代码:Deformable-DETR 摘要 DETR 最近被提出用于消除目标检测中许多手工设计组件的需求,同时展示了良好的性能。然而,它存在收敛速度慢和特征空…...
Odoo18 Http鉴权+调用后端接口
最近在调研Odoo18,包括它的前后端原理、源码等。发现官方的开发文档并不十分实用,比如标题这种简单的实用需求,竟然浪费了一点时间,特此记录。 官方文档:External API — Odoo 18.0 documentation 前提:首…...
doris:SQL 方言兼容
提示 从 2.1 版本开始,Doris 可以支持多种 SQL 方言,如 Presto、Trino、Hive、PostgreSQL、Spark、Clickhouse 等等。通过这个功能,用户可以直接使用对应的 SQL 方言查询 Doris 中的数据,方便用户将原先的业务平滑的迁移到 Doris…...
Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组
Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组 前言一、用户和组概念用户类型对比表格主要组和补充组对比表格: 二、本地用户账户增删改查三、本地组账户 前言 上篇博客我们详细了解了从红帽和 DNF 软件仓库下载…...