Java面试总结+算法
目录
Java 中 == 和 equals 的区别是什么?
什么是类加载器,Java 中有哪些类加载器?它们的职责分别是什么?
Redis 有哪些数据结构?它们分别适用于哪些场景?
什么是索引?MySQL 有哪些常见的索引类型?它们各自有什么特点?
什么是线程池?线程池有哪些核心参数?这些参数是如何影响线程池的工作机制的?
ArrayList 和 LinkedList 有什么区别?在实际应用中如何选择?
简述 TCP 三次握手和四次挥手的过程,并说明为什么建立连接是三次握手,而关闭连接是四次挥手?
正确表述:
什么是进程?什么是线程?它们之间有什么区别?
二叉搜索树的性质是什么?如果在二叉搜索树中插入一个新节点,应该如何操作?
马戏团人塔
Java 中 == 和 equals 的区别是什么?
正确表述:“==” 对于基本数据类型,比较的是值是否相等;对于引用数据类型,比较的是两个对象的内存地址是否相等。而 “equals” 方法,在 Object 类中,默认也是比较内存地址,和 “==” 效果一样。但很多类(如 String 等)重写了 “equals” 方法,重写后是比较对象内容是否相等,比如 String 类重写后比较的是字符串的字符序列是否相同。
什么是类加载器,Java 中有哪些类加载器?它们的职责分别是什么?
正确内容:Java 中有三种主要的类加载器。
- 启动类加载器(Bootstrap ClassLoader):它是用 C++ 实现的,是 JVM 自带的类加载器,负责加载 Java 核心类库,比如
rt.jar
中的类,像java.lang.*
等包中的类 。它是所有类加载器的祖先,并不继承自ClassLoader
类。 - 扩展类加载器(Extension ClassLoader):负责加载
jre/lib/ext
目录下的类库以及java.ext.dirs
系统属性指定的路径中的类库 ,这些类库是 Java 平台的扩展功能。 - 应用程序类加载器(Application ClassLoader):也叫系统类加载器,负责加载应用程序的
classpath
下的所有类,我们自己编写的代码以及所依赖的第三方库等都是由它来加载。
Redis 有哪些数据结构?它们分别适用于哪些场景?
正确表述:
- String(字符串):是最基本的数据结构,不仅能存储字符串,还能存储二进制数据,比如图片、视频(不过实际应用中较少直接存大文件)。常用于缓存简单的键值对数据,例如缓存用户信息等。
- Sorted Set(有序集合):每个元素都会关联一个分数(score),通过分数来为集合中的成员进行从小到大的排序。非常适合实现排行榜功能,比如游戏中的玩家积分排行榜等。
- List(列表):基于链表结构实现,可以从两端插入和删除元素。可以用作简单的消息队列,生产者往列表的一端插入消息,消费者从另一端读取消息。
- Hash(哈希):类似于 Java 中的 HashMap,适合存储对象,以字段和值的形式存储,比如存储用户的详细信息,每个字段对应不同的属性值。
- Set(集合):无序且元素唯一。可用于实现标签功能,比如一个用户可以有多个标签,标签集合能保证不重复;也可用于统计访问网站的独立 IP 等场景。
什么是索引?MySQL 有哪些常见的索引类型?它们各自有什么特点?
正确表述:
- 索引:索引类似于书籍目录,是一种能帮助 MySQL 高效获取数据的数据结构,它能大幅提升数据库查询性能。
- 常见索引类型及特点:
- 主键索引:每个表只能有一个主键索引,主键值具有唯一性且不能为空。它基于聚簇索引结构存储,叶子节点直接存储了完整的行数据,所以通过主键查询数据速度非常快。
- 聚簇索引:并不是一种单独的索引类型,而是一种数据存储方式。聚簇索引的叶子节点就是数据节点,数据行的物理顺序与索引顺序是一致的。一张表最多只能有一个聚簇索引,通常主键索引就是聚簇索引。
- 二级索引(辅助索引):除主键索引外的其他索引都可称为二级索引。二级索引的叶子节点存储的是索引列的值以及一个指向聚簇索引中对应数据行的指针。通过二级索引查询,通常需要先找到指针,再通过指针去聚簇索引中查找完整数据行,这个过程叫回表。
- 联合索引:是多个列上创建的索引,遵循最左前缀原则,即查询时从索引的最左边开始匹配,只有在左边的列被使用时,索引才会生效。例如在
(col1, col2, col3)
上创建联合索引,WHERE col1 = 'value1' AND col2 = 'value2'
这样的查询能利用该索引,但WHERE col2 = 'value2'
就不能利用。 - 非聚簇索引:与聚簇索引相对,叶子节点不存储完整数据行,而是存储索引列和指向聚簇索引中数据行的指针,二级索引通常是非聚簇索引。
什么是线程池?线程池有哪些核心参数?这些参数是如何影响线程池的工作机制的?
正确表述:
- 线程池:线程池内部维护着一定数量的线程,可复用这些线程,减少线程频繁创建与销毁带来的资源开销,提高系统性能和响应速度。
- 核心参数及对工作机制的影响:
- 核心线程数:线程池在初始化后,会维持的最少线程数量。当有任务提交到线程池时,线程池优先创建核心线程来处理任务,即使核心线程处于空闲状态,也不会被销毁(除非设置了 allowCoreThreadTimeOut 为 true )。
- 最大线程数:线程池能容纳的最大线程数量。当任务数量超过核心线程数且阻塞队列已满时,线程池会继续创建线程,直到线程数量达到最大线程数。
- 空闲线程存活时间:当线程数超过核心线程数时,多余的空闲线程在存活时间达到该值后,会被销毁。例如,若设置空闲线程存活时间为 60 秒,一个非核心线程在 60 秒内都没有任务执行,就会被销毁。
- 时间单位:用于指定空闲线程存活时间的时间单位,如秒(TimeUnit.SECONDS)、毫秒(TimeUnit.MILLISECONDS)等。
- 阻塞队列:当核心线程都在忙碌且线程数未达到最大线程数时,新任务会被放入阻塞队列等待执行。常见的阻塞队列有 ArrayBlockingQueue、LinkedBlockingQueue 等,不同的阻塞队列特性会影响线程池性能。
- 拒绝策略:当线程池中的线程数达到最大线程数且阻塞队列已满时,新提交的任务会被拒绝,此时就会执行拒绝策略。常见的拒绝策略有 AbortPolicy(直接抛出异常)、CallerRunsPolicy(将任务交给提交任务的线程执行)、DiscardPolicy(直接丢弃任务)、DiscardOldestPolicy(丢弃队列中最老的任务,然后尝试提交新任务)。
- 线程工厂:用于创建线程池中的线程,可自定义线程的名称、优先级等属性,方便进行线程管理和监控。
ArrayList 和 LinkedList 有什么区别?在实际应用中如何选择?
正确表述:
- ArrayList:它是基于动态数组实现的。内存空间要求连续,查询效率高,因为可以通过数组下标直接定位元素,时间复杂度为 O (1)。但在进行添加和删除操作时,如果不是在数组末尾进行,就需要移动大量元素,时间复杂度为 O (n)。例如在中间位置插入元素,后续元素都要往后移动。另外,ArrayList 会自动扩容,当元素数量超过数组容量时,会创建一个新的更大的数组,并将原数组内容复制过去。
- LinkedList:是基于双向链表实现(不是单链集合)。内存空间不需要连续,通过节点之间的指针相连。添加和删除操作效率高,只需修改相关节点的指针指向,时间复杂度为 O (1) 。例如在链表中间插入或删除一个节点,只需修改前后节点的指针。但查询效率低,因为要从链表头或链表尾开始遍历,时间复杂度为 O (n) 。
在实际应用中的选择:
- 如果应用场景主要是查询操作,很少进行添加和删除操作,那么选择 ArrayList 更合适,比如用于存储配置信息等只读场景。
- 如果应用场景频繁进行添加和删除操作,查询操作相对较少,那么 LinkedList 更合适,比如实现一个需要频繁插入和删除元素的消息队列。
简述 TCP 三次握手和四次挥手的过程,并说明为什么建立连接是三次握手,而关闭连接是四次挥手?
正确表述:
- 三次握手过程:
- 第一次握手:客户端向服务端发送一个 SYN(同步序列编号)包,此时客户端进入 SYN_SENT 状态,这个包表明客户端想要与服务端建立连接。
- 第二次握手:服务端收到客户端的 SYN 包后,会回复一个 SYN + ACK 包,其中 SYN 是服务端发给客户端的同步信号,ACK 是对客户端 SYN 包的确认。此时服务端进入 SYN_RCVD 状态。
- 第三次握手:客户端收到服务端的 SYN + ACK 包后,再向服务端发送一个 ACK 包。服务端收到 ACK 包后,双方进入 ESTABLISHED 状态,连接建立成功。这样做是因为通过三次握手,客户端和服务端都能确认自己和对方的发送与接收能力是正常的。
- 四次挥手过程:
- 第一次挥手:假设客户端想要关闭连接,客户端发送一个 FIN(结束标志)包给服务端,表明自己没有数据要发送了,此时客户端进入 FIN_WAIT_1 状态。
- 第二次挥手:服务端收到 FIN 包后,会发送一个 ACK 包给客户端,确认收到了客户端的关闭请求,此时服务端进入 CLOSE_WAIT 状态,客户端收到 ACK 后进入 FIN_WAIT_2 状态。这里服务端可能还有数据要发送给客户端,所以不能立即关闭连接。
- 第三次挥手:当服务端数据发送完毕后,服务端向客户端发送一个 FIN 包,表明自己也没有数据要发送了,此时服务端进入 LAST_ACK 状态。
- 第四次挥手:客户端收到服务端的 FIN 包后,再发送一个 ACK 包给服务端,服务端收到 ACK 包后进入 CLOSED 状态,客户端等待一段时间(2MSL,最大报文段生存时间)后也进入 CLOSED 状态,连接彻底关闭。
- 原因:建立连接时,服务端在收到客户端的 SYN 请求后,可以同时发送 SYN 和 ACK,合并为一个包,所以三次握手即可。而关闭连接时,客户端发送 FIN 后,服务端可能还有数据未发送完,不能立刻关闭连接返回 FIN,只能先返回 ACK 确认收到关闭请求,等数据发送完再发 FIN,所以需要四次挥手。
什么是进程?什么是线程?它们之间有什么区别?
回答:进程是操作系统进行资源分配和调度的基本单位,它有自己独立的地址空间,包含了程序、数据和进程控制块等。每个进程运行在其独立的环境中,互不干扰。
线程是进程中的一个执行单元,是 CPU 调度和分派的基本单位。一个进程可以包含多个线程,它们共享进程的资源,如地址空间、文件描述符等。
它们的区别如下:
- 资源分配:进程有独立的资源,如内存空间等;而线程共享所在进程的资源。例如进程 A 中的线程 1 和线程 2 可以访问进程 A 的相同内存区域。
- 调度:进程的调度开销较大,因为涉及到资源的切换;线程调度开销小,因为线程共享资源,切换时不需要切换资源。
- 并发性:进程之间并发执行,而同一进程内的线程也可并发执行,并且由于线程共享资源,线程间通信和协作比进程间更方便高效。例如多线程的 Web 服务器可以更高效地处理多个请求。
- 健壮性:一个进程崩溃一般不会影响其他进程,但一个线程崩溃可能导致整个进程崩溃,因为线程共享进程资源。
二叉搜索树的性质是什么?如果在二叉搜索树中插入一个新节点,应该如何操作?
二叉搜索树(BST)有以下性质:
- 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值。
- 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值。
- 它的左、右子树也分别为二叉搜索树。
在二叉搜索树中插入新节点的操作步骤如下:
- 从根节点开始比较。若树为空,新节点直接作为根节点插入。
- 若新节点的值小于当前节点的值,则往当前节点的左子树走;若新节点的值大于当前节点的值,则往当前节点的右子树走。
- 重复步骤 2,直到找到一个空的位置,将新节点插入到该位置。
例如,对于一棵二叉搜索树,要插入值为 5 的节点。从根节点开始,若根节点值为 8,因为 5 小于 8,就往根节点的左子树走。如果左子节点值为 3,由于 5 大于 3,就继续往该左子节点的右子树走,若右子树为空,就将值为 5 的新节点插入到这个位置。 现在请你按照这个思路,详细描述一下插入节点操作的代码实现逻辑(不用写具体代码,只说思路)。
马戏团人塔
面试题 17.08. 马戏团人塔
有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人。示例:输入:height = [65,70,56,75,60,68] weight = [100,150,90,190,95,110]
输出:6
解释:从上往下数,叠罗汉最多能叠 6 层:(56,90), (60,95), (65,100), (68,110), (70,150), (75,190)
提示:height.length == weight.length <= 10000
class Solution {public int bestSeqAtIndex(int[] height, int[] weight) {int n = height.length;int[][] people = new int[n][2];// 将身高和体重组合到一个二维数组中for (int i = 0; i < n; i++) {people[i][0] = height[i];people[i][1] = weight[i];}// 按照身高升序排序,如果身高相同,则按体重降序排序Arrays.sort(people, (a, b) -> {if (a[0] == b[0]) {return b[1] - a[1];}return a[0] - b[0];});// 提取排序后的体重数组int[] weights = new int[n];for (int i = 0; i < n; i++) {weights[i] = people[i][1];}// 使用二分查找优化的动态规划求解最长递增子序列return lengthOfLIS(weights);}private int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length];int len = 0;for (int num : nums) {int left = 0, right = len;while (left < right) {int mid = left + (right - left) / 2;if (dp[mid] < num) {left = mid + 1;} else {right = mid;}}dp[left] = num;if (left == len) {len++;}}return len;}
}
近日总结:好好学习,天天向上。
要学会擦亮双眼,不是所有的人都是好人,都有人性,也许你浅交,觉得对方是个好人,可实际上发生点什么事情,你就会发现,对方其实不是什么正常人。
相关文章:
Java面试总结+算法
目录 Java 中 和 equals 的区别是什么? 什么是类加载器,Java 中有哪些类加载器?它们的职责分别是什么? Redis 有哪些数据结构?它们分别适用于哪些场景? 什么是索引?MySQL 有哪些常见的索引类…...
深度优先搜索(DFS)在排列组合问题中的应用详解:C++实现与优化
一、排列问题(Permutations) 目标:生成所有可能的排列(元素顺序不同视为不同结果)。 示例:输入 [1,2,3],输出所有长度为3的排列,共6种。 C实现代码 #include <iostream> #i…...
GeoChat : Grounded Large Vision-Language Model for Remote Sensing论文精读
GeoChat : Grounded Large Vision-Language Model for Remote Sensing 是一个针对遥感场景的llm,提供支持多任务对话(对高分辨率遥感图像)。也造了个数据集。 一些思考: 文中提到的局限性:小物体和多框预测较难。小物…...
Postman使用02、断点、fiddler弱网测试
脚本操作 一、脚本导出 1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 1.选择文件 2.点击导入 3.导入的接口 三.多接口运行 1.集合右键,点击run ,运行多个接口 2.编辑环境,集合,执行次数等 3.运行多个接口 四.运行…...
深入解析 C++20 中的 std::bind_front:高效函数绑定与参数前置
文章目录 1. 什么是 std::bind_front?2. 使用 std::bind_front2.1 基本用法2.2 绑定多个参数 3. 优势与特点3.1 简化代码3.2 支持可调用对象3.3 支持完美转发 4. 实际应用场景4.1 事件处理4.2 算法通用化4.3 成员函数调用 5. 总结 在现代 C 编程中,函数绑…...
Opencv计算机视觉编程攻略-第三节 图像颜色处理
第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较,其中注意BGR颜色空间不连续,不利于颜色提取和区分,转换到Lab空间: int getColorDistance(const cv::Vec3b& c…...
第十七章:Future Directions_《C++ Templates》notes
Future Directions 核心重难点:示例代码: 设计题多选题答案设计题详解 核心重难点: 泛型非类型模板参数 允许任意类型作为非类型模板参数(如template<typename T, auto N>)需解决类型推导和链接问题 编译期控制…...
ComfyUI-PSD-Replace: 海报与壁纸批量生成
ComfyUI-PSD-Replace: 海报与壁纸批量生成 🚀 插件介绍 ComfyUI-PSD-Replace 是一款强大的图像批量处理插件,专为设计师和创意工作者打造。无论你是想快速生成多款海报、定制壁纸,还是批量更新设计模板,本插件都能帮你轻松实现&a…...
图解预训练模型 ELMo 和 BERT
一、ELMo 二、BERT 以上笔记参考自b站up主 自然卷小蛮(自然卷小蛮的个人空间-自然卷小蛮个人主页-哔哩哔哩视频),感兴趣的可以去深入了解。...
YoloV8训练和平精英人物检测模型
概述 和平精英人物检测,可以识别游戏中所有人物角色,并通过绘制框将人物选中,训练的模型仅仅具有识别功能,可以识别游戏中的视频、图片等文件,搭配Autox.js可以推理,实现实时绘制,但是对手机性…...
基于物联网的智能蔬菜仓库设计(论文+源码)
1系统功能分析 由于蔬菜仓库内部环境直接影响到内部货物的正常存储工作,因此对蔬菜仓库内部环境进行智能化的监控具有重要意义。本次基于物联网的智能蔬菜仓库设计,系统实现的功能如下: (1)对蔬菜仓库内部进行温度检测…...
Java 字符流全解析:核心类实战指南
一、FileReader 与 FileWriter:文本文件基础操作 功能:直接基于字符处理文本文件,自动完成字节到字符的解码(默认使用系统编码)。 适用场景:读写简单的文本文件(如 .txt、.csv)。 …...
SQL Server 2022 安装问题
一、安装与配置问题 1. SQL Server 2022 安装失败怎么办? 常见原因: 硬件或操作系统不满足最低要求(如内存、磁盘空间不足)。未关闭防火墙或杀毒软件。之前版本的 SQL Server 残留文件未清理。 解决方案: 确保硬件配…...
Vue3 实现pdf预览
1.使用到的插件 vue3-pdf-app 以及预览效果 2.下载依赖 // 可以使用npm 以及pnpm // 下载版本1.0.3 pnpm install vue3-pdf-app^1.0.3 3.封装pdfModel组件复用 <template><VuePdfApp :page-scale"pageScale" :theme"theme" :style"width: …...
python网络爬虫开发实战之网页数据的解析提取
目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…...
GitHub Copilot平替:CodeGeeX 2.0实测报告
本文基于20个真实开发场景对CodeGeeX 2.0进行深度评测,涵盖代码生成质量、上下文理解能力、多语言支持度等关键维度。通过Python数据分析、Java微服务、React前端开发三大核心场景的对比实验,揭示其相比GitHub Copilot在中文语境支持、本地化部署、隐私保…...
QT对象模型
信号,槽,函数执行顺序 首先,拖入一个按钮,在转到槽,在click() 转到widget.cpp 在widget.h中 然后在widget.cpp中 运行结果 当发出信号后,先执行槽函数,再执行信号后面的函数(单线程) 在widget.h…...
C++:类型推导规则 unsigned short + 1
在 C/C 中,整数提升(Integer Promotion) 规则决定了 vlan_id 1 的类型: unsigned short 的值在运算时会被 提升(promote) 到 int 或 unsigned int(取决于平台)。 默认情况下&#x…...
PHP接口开发:从基础到高级的全面指南
一、接口基础与核心概念(约800字) 1.1 接口的本质定义 在PHP中,接口(Interface)是一种特殊的抽象结构,它通过interface关键字定义一组方法的契约规范,不包含具体实现。这种设计强制实现类必须遵循统一的调用标准,如: interface PaymentGateway {public function proc…...
C#Dictionary值拷贝还是引用
Dictionary值拷贝还是引用 这可能算是Directionary的一个坑值类型(Value Type)引用类型(Reference Type)总结 关于锁1. **锁对象的可见性**2. **锁对象的唯一性**3. **最佳实践**4. **为什么 readonly 是一个好的选择**5. **总结*…...
deepseek实战教程-第六篇查找源码之仓库地址与deepseek-R1、deepseek-LLM仓库内容查看
上一篇讲了支持deepseek的模型应用的本地安装和部署以及使用。再上一篇讲解了deepseek提供的开放api,便于开发者基于deepseek提供的接口来编写属于自己的业务应用程序。但是前面几篇我们都是在用模型,我们知道deepseek是开源的,那么deepseek的源码在哪里,具体源码是什么样的…...
WELL健康建筑认证是什么?
**WELL健康建筑认证:全方位呵护居住者福祉的权威标准** WELL健康建筑认证,这一源自美国的全球性健康建筑标准,宛如建筑界的璀璨明珠,以其独特的光芒照亮了健康建筑的发展之路。它不仅是全球首部专门针对室内环境提升人体健康与福…...
C++ STL 序列式容器之(三)-- List
一、什么是list? Lists are sequence containers that allow constant time insert and erase operations anywhere within the sequence, and iteration in both directions. 列表是序列容器,允许在序列中的任何位置进行以常量时间插入和擦除操作&…...
CAN基础知识学习二
一、控制器局域网总线(CAN,Controller Area Network); 二、CAN FD 是CAN with Flexible Data rate的缩写,翻译为【可变速率的 CAN】 CAN-FD 采用了两种位速率:从控制场中的 BRS 位到 ACK 场之前(…...
Java编程思想:为何有时要将子类对象赋值给父类引用
为何有时要将子类对象赋值给父类引用,用父类来进行实例化? 这就要说多态的优势: 代码的扩展性和降低耦合度,而不是完全避免修改代码。 TuXing t new Changfangxing(); Changfangxing k (Changfangxing)t;原因1: 代码可拓展性 …...
2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force,TOC)
龙卷风优化算法(Tornado optimizer with Coriolis force)是发表在中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”(IF:11.7)的2025年智能优化算法 01.引言 当自然界的狂暴之力,化身数字世界的智慧引擎&…...
2小样本学习(Few-Shot)之相似度
目录 小样本学习的基本思路: 具体实现方法: 小样本学习的基本思路: 学习一个相似度函数similarity function:sim(x,x) 两个样本越相近,相似度越高。 比如:...
docker-操作实战
前言 C镜像制作 因为我平常不用,所以不书写了 SpringBoot 微服务镜像制作 mkdir java ca java cp /data/maxhou/myapp/xxx.jar . vi Dockerfile FROM openjdk:8 COPY ./xxx.jar /app.jar CMD ["java","-jar","/app.jar"]COPY ./…...
后大模型时代智能体将成为“新宠”
智能体 |未来已来 智能体 |市场井喷 智能体 |定义 智能体 |与大模型的区别 智能体 |与Copilot的区别 智能体 |企业价值 智能体 |个体价值 智能体 |开发流程 智能体 |提示词解读 智能体 |应用场景 智能体 |重难点问题...
【MySQL】监控MySQL
目录 使用状态变量监控MySQL 使用性能模式(Performance Schema)监控MySQL 1.性能模式 2.性能模式设置表 3.sys模式 使用状态变量监控MySQL 使用 show status 语句评估系统运行状况。 可以添加范围修饰符global或session来显示全局或本地状态信息。…...
CTF类题目复现总结-[BSidesSF2020]toast-clicker 1
一、靶场地址 https://buuoj.cn/challenges#[BSidesSF2020]toast-clicker1二、复现步骤 1、下载压缩包,解压是apk文件; 2、利用 jadx apk反编译工具; jadx下载地址:https://github.com/skylot/jadx67, 83, 68, 120, 62, 109, …...
(更新完)Supplementary Material——AZ-NAS
6. Supplementary Material 在本补充材料中,我们提供了 AZ-NAS 在 NDS [18]、NAS-Bench-201 [7] 和 MobileNetV2 [14, 19] 搜索空间上的额外结果和深入分析。 Additional results on the NDS benchmark. 神经设计空间(NDS) [18] 基准提供了…...
基于SSM框架的线上甜品销售系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此网上销售信息的…...
TCP | 序列号和确认号 [逐包分析] | seq / ack 详解
注 : 本文为 “TCP 序号(seq)与确认序号(ack)” 相关文章合辑。 英文引文,机翻未校。 中文引文,略作重排。 如有内容异常,请看原文。 Understanding TCP Seq & Ack Numbers […...
Citus源码(1)分布式表行为测试
最近对citus的实现非常好奇,本篇对citus的行为做一些测试。本篇只测行为,不分析源码。后面会继续写一系列文章分析citus源码。 环境:3节点 PG17 with citus。 SELECT citus_set_coordinator_host(127.0.0.1, 3001); SELECT citus_add_node(1…...
【AI测试必学】DeepSeek API 快速入门:获取 API Key 与调用 API 步骤详解
DeepSeek API 快速入门:获取 API Key 与调用 API 步骤详解 一、获取 API Key二、调用 DeepSeek API方法 1:使用 OpenAI Python SDK 调用 DeepSeek API方法 2:使用 requests 库直接发送 HTTP 请求方法 3:使用 curl 命令 相关链接 一…...
Web前端之UniApp、Taro、ReactNative和Flutter的区别
MENU 前言介绍及公司技术差异使用方法使用场景差异注意事项打包与部署差异框架应用实例结语 前言 在移动应用开发领域,跨平台框架已成为开发者的得力工具。UniApp、Taro、ReactNative和Flutter它们在Android(安卓)或iOS(苹果&…...
[leetcode]map的用法
1. 定义和初始化 定义:std::map是一个关联容器,键值对会自动根据键的值进行排序(默认是升序)。 cpp复制 map<char, int> mp; 插入元素:可以通过operator[]或insert方法插入键值对。 cpp复制 mp[a] 1; mp[b] 3…...
PHP大马的使用
BestShell/best_php_shell.php at master Kevil-hui/BestShell 这里用到的是这位师傅的大马(主要是从头开始写一个大马实在太麻烦了) 用pikachu靶场进行上传的测试 在这里传马,这个是简单的前端校验,bp抓包改后缀就好了 上传成…...
【CC2530 教程 十】CC2530 Z-Stack 协议栈
一、Z-Stack 协议栈目录结构: Z-Stack 协议栈可以从 TI 官网免费下载,下载安装完成以后,会默认在 C 盘的根目录下创建 Texas Instruments 目录,该目录下的子目录就是安装的 Z-Stack 文件,并且在该子目录下创建Accessor…...
区间端点(java)(贪心问题————区间问题)
deepseek给了一种超级简单的做法 我是真的想不到 贪心的思路是 局部最优——>全局最优 这种我是真的没有想到,这样的好处就是后面便利的时候可以通过foreach循环直接便利qu的子元素也就是对应的某一个区间, 将一个二维数组变成一维数组,每一个一维…...
定长内存池原理及实现
目录 一、池化技术 二、内存池 三、内存池主要解决的问题 四、定长内存池的实现 1.定长内存池的原理 2.框架 3.Delete实现 4.New实现 5.性能测试 五、源码 FixedMemoryPool.h test.cc 一、池化技术 所谓“池化技术”,就是程序先向系统申请过量的资源&…...
通过php连接redis数据库
如上图所示,这是去搭建一个lamp平台, 阿帕奇和php安装好之后,php直接就被安装成阿帕奇的一个功能模块。 如上图所示,这就是php作为阿帕奇的功能模块。 如上图所示,我们去正常启动redis数据库。 如上图所示,…...
3D点云的深度学习网络分类(按照作用分类)
1. 3D目标检测(Object Detection) 用于在点云中识别和定位目标,输出3D边界框(Bounding Box)。 🔹 方法类别: 单阶段(Single-stage):直接预测3D目标位置&am…...
论文解读:《Word embedding factor based multi-head attention》——基于词嵌入因子的多头注意力
原文链接:Word embedding factor based multi-head attention | Artificial Intelligence Review 多头注意力机制线性地将查询、键和值投影到不同的子空间中,允许模型从不同的角度理解输入序列,并利用输入句子序列中有关令牌之间关系的信息。…...
单片机和微控制器知识汇总——《器件手册--单片机、数字信号处理器和可编程逻辑器件》
目录 四、单片机和微控制器 4.1 单片机(MCU/MPU/SOC) 一、定义 二、主要特点 三、工作原理 四、主要类型 五、应用领域 六、选型与设计注意事项 七、发展趋势 4.2 数字信号处理器(DSP/DSC) 编辑编辑 一、定义 二、工作原理 三、结构特点 四、应用领域 五、选型与设计注…...
LeetCode hot 100 每日一题(15)——48.旋转图像
这是一道难度为中等的题目,让我们来看看题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 提示…...
Java多线程精讲:线程操作与状态转换全解析
前言 本章内容为作者结合学习与实践的总结整理,虽力求准确,但疏漏之处在所难免。若有任何疑问或建议,恳请读者朋友们不吝指正,共同完善知识体系,感激不尽! 一、认识多线程(Thread&#…...
HashMap的位操作是什么?HashSet 的 contains 方法复杂度是多少?红黑树简单讲一下?
一、HashMap 的位操作设计 HashMap 使用位运算优化哈希计算与索引定位,核心场景如下: 哈希扰动函数 计算键的哈希值时,将高16位与低16位异或: static final int hash(Object key) {int h;return (key null) ? 0 : (h key.hash…...
GitHub开源的容器管理面板-Dpanel
dpanel Docker安装部署二进制部署 GitHub官网 一块轻量化docker可视化管理面板,由国人开发,个人觉得是比较好用的,功能都很齐全,并且可以通过修改源码,自定义前端样式等。 Docker安装部署 官网 部署环境࿱…...