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

Java面试黄金宝典24

1. 什么是跳表

  • 定义

跳表(Skip List)是一种随机化的数据结构,它基于有序链表发展而来,通过在每个节点中维护多个指向其他节点的指针,以多层链表的形式组织数据。其核心思想是在链表基础上增加额外层次,每个层次都是一个有序链表,且高层链表是底层链表的子集,从而能在 O(logn) 的平均时间复杂度内完成插入、删除和查找操作。

  • 要点
  1. 随机层次:每个节点的层次随机确定,通常采用抛硬币等概率方式决定节点是否拥有更高层次。
  2. 多层链表结构:由多个层次的有序链表构成,高层链表可帮助快速定位目标节点大致位置。
  3. 操作方式:查找、插入和删除操作从最高层开始,依据节点指针移动,直至找到目标节点或确定其不存在。

代码示例

java

import java.util.Random;class Node {int value;Node[] forward;public Node(int value, int level) {this.value = value;this.forward = new Node[level + 1];}
}class SkipList {private static final int MAX_LEVEL = 16;private final float probability = 0.5f;private int level;private Node head;private Random random;public SkipList() {this.level = 0;this.head = new Node(-1, MAX_LEVEL);this.random = new Random();}private int randomLevel() {int lvl = 0;while (random.nextFloat() < probability && lvl < MAX_LEVEL) {lvl++;}return lvl;}public void insert(int value) {Node[] update = new Node[MAX_LEVEL + 1];Node current = head;for (int i = level; i >= 0; i--) {while (current.forward[i] != null && current.forward[i].value < value) {current = current.forward[i];}update[i] = current;}current = current.forward[0];if (current == null || current.value != value) {int newLevel = randomLevel();if (newLevel > level) {for (int i = level + 1; i <= newLevel; i++) {update[i] = head;}level = newLevel;}Node newNode = new Node(value, newLevel);for (int i = 0; i <= newLevel; i++) {newNode.forward[i] = update[i].forward[i];update[i].forward[i] = newNode;}}}public boolean search(int value) {Node current = head;for (int i = level; i >= 0; i--) {while (current.forward[i] != null && current.forward[i].value < value) {current = current.forward[i];}}current = current.forward[0];return current != null && current.value == value;}public void delete(int value) {Node[] update = new Node[MAX_LEVEL + 1];Node current = head;for (int i = level; i >= 0; i--) {while (current.forward[i] != null && current.forward[i].value < value) {current = current.forward[i];}update[i] = current;}current = current.forward[0];if (current != null && current.value == value) {for (int i = 0; i <= level; i++) {if (update[i].forward[i] != current) {break;}update[i].forward[i] = current.forward[i];}while (level > 0 && head.forward[level] == null) {level--;}}}
}

  • 应用
  1. 数据库索引:在数据库中作为索引结构,能有效提高数据的查找效率,加速查询操作。
  2. 缓存系统:用于快速查找和更新缓存数据,提升缓存系统的响应速度。
  3. 分布式系统:在分布式系统中,可用于维护有序的数据结构,方便数据的管理和查找。

2. 给定 n 个左括号以及 n 个右括号,打印出所有合法的括号组合

  • 定义

此问题可运用回溯法解决。回溯法是一种通过尝试所有可能的组合来找出问题解的算法。在生成括号组合的过程中,需要保证在任何位置,左括号的数量都不小于右括号的数量,并且最终左括号和右括号的数量都等于 n,以此确保组合的合法性。

  • 要点
  1. 递归生成组合:借助递归函数,持续尝试添加左括号或右括号,逐步构建括号组合。
  2. 合法性检查:在添加括号时,实时检查左括号和右括号的数量是否满足合法性条件。

代码示例

java

import java.util.ArrayList;
import java.util.List;public class GenerateParentheses {public List<String> generateParenthesis(int n) {List<String> result = new ArrayList<>();backtrack(result, "", 0, 0, n);return result;}private void backtrack(List<String> result, String current, int open, int close, int max) {if (current.length() == max * 2) {result.add(current);return;}if (open < max) {backtrack(result, current + "(", open + 1, close, max);}if (close < open) {backtrack(result, current + ")", open, close + 1, max);}}public static void main(String[] args) {GenerateParentheses gp = new GenerateParentheses();List<String> combinations = gp.generateParenthesis(3);for (String combination : combinations) {System.out.println(combination);}}
}

  • 应用
  1. 语法分析:在编译器中,用于生成合法的括号表达式,辅助进行代码的语法解析。
  2. 组合数学:在组合数学领域,用于解决与括号组合相关的问题,如计算合法括号组合的数量等。
  3. 编程竞赛:常作为编程竞赛中的题目,考察选手的算法设计和实现能力。

3. 给定四个点如何判断是否为矩形

  • 定义

判断四个点是否构成矩形,可通过计算四个点两两之间的距离,得到 6 个距离值。依据矩形的性质,矩形有两组相等的对边和两条相等的对角线,并且满足勾股定理。因此,将这 6 个距离值排序后,前四个值应相等,后两个值也应相等,同时前四个值的平方和等于后两个值的平方和。

  • 要点
  1. 距离计算:运用两点间距离公式,准确计算任意两点之间的距离。
  2. 排序和比较:对计算所得的距离值进行排序,然后对比对边和对角线的长度是否符合矩形的性质。

代码示例

java

class Point {int x, y;Point(int x, int y) {this.x = x;this.y = y;}
}public class IsRectangle {public boolean isRectangle(Point p1, Point p2, Point p3, Point p4) {double[] distances = new double[6];int index = 0;distances[index++] = distance(p1, p2);distances[index++] = distance(p1, p3);distances[index++] = distance(p1, p4);distances[index++] = distance(p2, p3);distances[index++] = distance(p2, p4);distances[index] = distance(p3, p4);java.util.Arrays.sort(distances);return distances[0] > 0 &&distances[0] == distances[1] &&distances[1] == distances[2] &&distances[2] == distances[3] &&distances[4] == distances[5] &&2 * distances[0] * distances[0] == distances[4] * distances[4];}private double distance(Point p1, Point p2) {return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));}public static void main(String[] args) {Point p1 = new Point(0, 0);Point p2 = new Point(0, 1);Point p3 = new Point(1, 1);Point p4 = new Point(1, 0);IsRectangle ir = new IsRectangle();System.out.println(ir.isRectangle(p1, p2, p3, p4));}
}

  • 应用
  1. 图形识别:在计算机图形学中,用于识别图像中的矩形区域,辅助进行图像分析和处理。
  2. 几何计算:在几何计算相关的应用中,判断给定的四个点是否构成矩形,为后续的几何分析提供基础。
  3. 游戏开发:在游戏开发中,可用于检测游戏元素的碰撞边界是否为矩形,实现碰撞检测等功能。

4. 海量 URL 数据,低内存情况下如何找重复次数最高的那一个

  • 定义

此问题可采用分治和哈希表的方法解决。由于内存有限,无法一次性将所有 URL 数据加载到内存中,所以将海量的 URL 数据按照哈希函数进行划分,存储到多个小文件中,使每个小文件的数据量能被加载到内存。接着对每个小文件中的 URL 进行统计,利用哈希表记录每个 URL 的出现次数,找出每个小文件中出现次数最多的 URL。最后比较所有小文件中出现次数最多的 URL,得到最终出现次数最多的 URL。

  • 要点
  1. 分治策略:将海量数据划分为多个小文件,降低内存压力,便于处理。
  2. 哈希表统计:在每个小文件中使用哈希表统计 URL 的出现次数,高效记录数据信息。
  3. 合并结果:对比所有小文件中出现次数最多的 URL,得出最终结果。

  • 应用
  1. 网络日志分析:在分析网络日志时,找出访问次数最多的 URL,了解用户的访问偏好和网站的热门内容。
  2. 搜索引擎优化:在搜索引擎优化工作中,分析用户访问的热门 URL,为网站的优化和推广提供依据。
  3. 流量监控:对网络流量中的 URL 进行统计,找出流量集中的 URL,进行针对性的流量管理和优化。

5. 10 亿个数,如何求 100 个最大的

  • 定义

可以利用最小堆来解决该问题。最小堆是一种完全二叉树,其每个节点的值都小于或等于其子节点的值。首先从 10 亿个数中取出前 100 个数构建一个最小堆,然后遍历剩下的数,对于每个数,若它大于堆顶元素,则将堆顶元素替换为该数,并调整堆,使其依旧满足最小堆的性质。最终,堆中的 100 个数即为 10 亿个数中最大的 100 个数。

  • 要点
  1. 最小堆构建:使用前 100 个数构建最小堆,为后续筛选做准备。
  2. 堆调整:在遍历剩余数的过程中,不断调整堆,保证堆始终保持最小堆的性质。

代码示例

java

import java.util.PriorityQueue;public class FindTop100 {public static int[] findTop100(int[] nums) {PriorityQueue<Integer> minHeap = new PriorityQueue<>(100);for (int i = 0; i < 100; i++) {minHeap.offer(nums[i]);}for (int i = 100; i < nums.length; i++) {if (nums[i] > minHeap.peek()) {minHeap.poll();minHeap.offer(nums[i]);}}int[] result = new int[100];for (int i = 99; i >= 0; i--) {result[i] = minHeap.poll();}return result;}public static void main(String[] args) {int[] nums = new int[1000000000];// 初始化 nums 数组int[] top100 = findTop100(nums);for (int num : top100) {System.out.println(num);}}
}

  • 应用
  1. 数据筛选:在大数据处理场景中,筛选出数据中的前 k 个最大值,用于数据分析和决策。
  2. 排行榜系统:在各类排行榜系统中,找出排名前 k 的数据,如游戏排行榜、销售排行榜等。
  3. 资源分配:根据数据的大小进行资源分配,优先分配给排名靠前的数据。

6. 如何实现大文件排序

  • 定义

大文件排序可采用外部排序的方法。当数据量极大,无法一次性将所有数据加载到内存中进行排序时,外部排序将大文件分割成多个小文件,每个小文件能被加载到内存中进行内部排序(如快速排序、归并排序等),之后将这些有序的小文件进行归并,得到最终的有序大文件。

  • 要点
  1. 文件分割:依据内存大小,将大文件合理分割成多个小文件。
  2. 内部排序:对每个小文件进行内部排序,得到有序的小文件。
  3. 归并操作:将有序的小文件进行归并,生成最终的有序大文件。

  • 应用
  1. 数据库排序:在数据库中,对大量数据进行排序时,外部排序是常用的方法,确保数据的有序存储和查询。
  2. 日志文件处理:在处理大量日志文件时,需要对日志文件进行排序,便于后续的日志分析和问题排查。
  3. 大数据存储:在大数据存储系统中,对数据文件进行排序,提高数据的检索效率。

7. 给定三个大于 10G 的文件(每行一个数字)和 100M 内存的主机,如何找到在三个文件都出现且次数最多的 10 个字符串

  • 定义

此问题可采用分治和哈希的思想解决。由于内存有限,无法一次性将三个文件的数据加载到内存中,所以将每个文件按照哈希函数进行划分,存储到多个小文件中,使每个小文件的数据量能被加载到内存。对于每个小文件,使用哈希表统计每个数字的出现次数,并记录在三个文件中都出现的数字及其出现次数。最后将所有小文件的统计结果进行合并,找出在三个文件中都出现且次数最多的 10 个数字。

  • 要点
  1. 文件划分:使用哈希函数将大文件划分为多个小文件,降低内存使用。
  2. 哈希表统计:在每个小文件中使用哈希表统计数字的出现次数,记录有效信息。
  3. 合并结果:整合所有小文件的统计结果,找出最终结果。

  • 应用
  1. 数据挖掘:在数据挖掘过程中,分析多个数据源中共同出现且频率较高的数据,发现数据之间的关联和规律。
  2. 日志分析:在日志分析中,找出多个日志文件中共同出现且频率较高的事件,用于故障排查和系统监控。
  3. 信息检索:在信息检索系统中,统计多个文档中共同出现的关键词,提高检索的准确性和效率。

8. 如何求两个 int 数组的并集、交集

  • 定义
  1. 交集:使用哈希表实现。先将一个数组中的元素存入哈希表,再遍历另一个数组,检查每个元素是否在哈希表中,若存在则将其加入交集中。
  2. 并集:把两个数组的元素都存入哈希表,然后遍历哈希表,将所有元素加入并集中,同时注意去重。

  • 要点
  1. 哈希表使用:借助哈希表的快速查找特性,提高交集和并集的计算效率。
  2. 去重处理:在计算并集时,确保结果中不包含重复元素。

代码示例

java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ArrayIntersectionUnion {public List<Integer> intersection(int[] nums1, int[] nums2) {Map<Integer, Integer> map = new HashMap<>();List<Integer> result = new ArrayList<>();for (int num : nums1) {map.put(num, map.getOrDefault(num, 0) + 1);}for (int num : nums2) {if (map.containsKey(num) && map.get(num) > 0) {result.add(num);map.put(num, map.get(num) - 1);}}return result;}public List<Integer> union(int[] nums1, int[] nums2) {Map<Integer, Integer> map = new HashMap<>();List<Integer> result = new ArrayList<>();for (int num : nums1) {map.put(num, 1);}for (int num : nums2) {map.put(num, 1);}for (int num : map.keySet()) {result.add(num);}return result;}public static void main(String[] args) {int[] nums1 = {1, 2, 2, 3};int[] nums2 = {2, 2, 4};ArrayIntersectionUnion ai = new ArrayIntersectionUnion();List<Integer> intersection = ai.intersection(nums1, nums2);List<Integer> union = ai.union(nums1, nums2);System.out.println("Intersection: " + intersection);System.out.println("Union: " + union);}
}

  • 应用
  1. 数据处理:在数据处理过程中,经常需要计算两个数据集的交集和并集,用于数据筛选和整合。
  2. 数据库查询:在数据库查询中,使用交集和并集操作来筛选数据,满足不同的查询需求。
  3. 集合运算:在数学和计算机科学的集合运算中,交集和并集是基本的运算操作。

9. 如何实现 1T query 统计前 k 个热门的

  • 定义

可采用分治、哈希和堆的思想解决该问题。由于数据量巨大,无法一次性将所有 query 数据加载到内存中,所以将 1T 的 query 数据按照哈希函数进行划分,存储到多个小文件中,使每个小文件的数据量能被加载到内存。对于每个小文件,使用哈希表统计每个 query 的出现次数,然后使用最小堆筛选出出现次数最多的 k 个 query。最后将所有小文件的筛选结果进行合并,再次使用最小堆筛选出最终的前 k 个热门 query。

  • 要点
  1. 分治策略:将海量数据划分为多个小文件,减轻内存负担。
  2. 哈希表统计:在每个小文件中使用哈希表统计 query 的出现次数,记录数据频率。
  3. 最小堆筛选:利用最小堆筛选出出现次数最多的 k 个 query,高效获取热门数据。

  • 应用
  1. 搜索引擎:在搜索引擎中,统计用户搜索的热门关键词,为搜索结果的排序和推荐提供依据。
  2. 电商平台:在电商平台中,统计热门商品的搜索次数,用于商品推荐和营销活动策划。
  3. 社交媒体:在社交媒体平台中,统计热门话题和趋势,帮助用户发现热点内容。

10. 对 10G 个数进行排序,限制内存为 1G 大数问题,但是这 10G 个数可能是整数,字符串以及中文,如何排序

  • 定义

采用外部排序和多阶段处理的方法。首先根据数据的类型(整数、字符串、中文)将 10G 数据进行分类,分别存储到不同的文件中。然后对于每个类型的数据文件,将其分割成多个小文件,使每个小文件能被加载到内存中进行排序。对于整数可使用快速排序、归并排序等算法;对于字符串和中文,可使用字典序排序。接着将每个类型的有序小文件进行归并,得到每个类型的有序大文件。最后将不同类型的有序大文件按照一定规则(如先整数,再字符串,最后中文)进行合并,得到最终的有序文件。

  • 要点
  1. 数据分类:依据数据类型对数据进行分类,分别处理不同类型的数据。
  2. 文件分割和内部排序:将大文件分割成小文件,在内存中对小文件进行内部排序。
  3. 归并操作:将有序的小文件和不同类型的有序大文件进行归并,得到最终的有序文件。

  • 应用
  1. 大数据处理:在大数据处理场景中,对大量不同类型的数据进行排序,为后续的数据分析和挖掘提供基础。
  2. 数据库管理:在数据库管理中,对数据库中的数据进行排序,提高数据的查询和检索效率。
  3. 数据仓库:在数据仓库中,对数据进行排序和整理,便于数据的存储和管理。

 友情提示:本文已经整理成文档,可以到如下链接免积分下载阅读

https://download.csdn.net/download/ylfhpy/90549095

相关文章:

Java面试黄金宝典24

1. 什么是跳表 定义 跳表&#xff08;Skip List&#xff09;是一种随机化的数据结构&#xff0c;它基于有序链表发展而来&#xff0c;通过在每个节点中维护多个指向其他节点的指针&#xff0c;以多层链表的形式组织数据。其核心思想是在链表基础上增加额外层次&#xff0c;每…...

每日c/c++题 备战蓝桥杯(全排列问题)

题目描述 按照字典序输出自然数 1 到 n 所有不重复的排列&#xff0c;即 n 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n。 输出格式 由 1∼n 组成的所有不重复的数字序列&#xff0c;每行一个序列。 每个数字保留 5 个场…...

Layui实现table动态添加行,可删除、表格可编辑,小数校验

实现如图需求&#xff0c;layui实现的可编辑table&#xff0c;包含B、C、D、E列&#xff0c;A列不用实现出现&#xff0c;A列放在附件就是让你明白&#xff0c;不同的物料名称&#xff0c;行是不一样的。除了头部表头和E列不能编辑&#xff0c;每个表格都可编辑&#xff0c;其中…...

Spring Boot 非web应用程序

​​​​​在 Spring Boot 框架中&#xff0c;要创建一个非Web应用程序&#xff08;纯Java程序&#xff09; main方法运行&#xff0c;不启动tomcat&#xff0c;main方法执行结束&#xff0c;程序就退出了&#xff1b; 方式一 1、SpringBoot开发纯Java程序&#xff0c;应该采…...

数据分析中的基线校正算法全解析:原理、实现与应用

数据分析中的基线校正算法全解析:原理、实现与应用 在数据分析中,基线漂移是一个常见问题,会严重影响数据的解释和分析精度。本文将详细介绍12种主流基线校正方法,包括数学原理、Python实现代码和适用场景分析。 基线漂移问题概述 基线漂移主要由以下因素引起: 仪器强度…...

国外计算机证书推荐(考证)(6 Sigma、AWS、APICS、IIA、Microsoft、Oracle、PMI、Red Hat)

文章目录 证书推荐1. 六西格玛 (6 Sigma)2. 亚马逊网络服务 (AWS)3. 美国生产与库存控制学会 (APICS)4. 内部审计师协会 (IIA)5. 微软 (Microsoft)6. 甲骨文 (Oracle)7. 项目管理协会 (PMI)8. 红帽 (Red Hat) 证书推荐 1. 六西格玛 (6 Sigma) 介绍&#xff1a;六西格玛是一种…...

linux》》docker 、containerd 保存镜像、打包tar、加载tar镜像

Linux》》docker: 默认情况下&#xff0c;Docker镜像保存在/var/lib/docker/目录下。 当您使用docker pull命令从Docker Hub或私有镜像仓库中拉取镜像时&#xff0c;Docker会自动将镜像文件保存在/var/lib/docker/image/目录下。 每个镜像都由一个或多个层组成&#xff0c;这些…...

大数据(2)Hadoop架构深度拆解:HDFS与MapReduce企业级实战与高阶调优

目录 一、分布式系统的设计哲学演进1.1 从Google三驾马车到现代数据湖 二、企业级HDFS架构全景图2.1 联邦架构的深度实践2.2 生产环境容灾设计2.3 性能压测方法论 三、MapReduce引擎内核解密3.1 Shuffle机制全链路优化3.2 资源调度革命&#xff1a;从MRv1到YARN3.3 企业级编码规…...

【数学建模】动态规划算法(Dynamic Programming,简称DP)详解与应用

动态规划算法详解与应用 文章目录 动态规划算法详解与应用引言动态规划的基本概念动态规划的设计步骤经典动态规划问题1. 斐波那契数列2. 背包问题3. 最长公共子序列(LCS) 动态规划的优化技巧动态规划的应用领域总结 引言 动态规划(Dynamic Programming&#xff0c;简称DP)是一…...

UE学习记录part11

第14节 breakable actors 147 destructible meshes a geometry collection is basically a set of static meshes that we get after we fracture a mesh. 几何体集合基本上是我们在断开网格后获得的一组静态网格。 选中要破碎的网格物品&#xff0c;创建集合 可以选择不同的…...

LeetCode知识点整理

1、Scanner 输入&#xff1a; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 读取整数int num scanner.nextInt();// 读取一行字符串String line scanner.nextLine();scanner.close();…...

浅析车规芯片软错误防护加固的重要性

随着汽车电子技术的飞速发展&#xff0c;汽车已经从传统的机械交通工具转变为高度依赖电子系统的智能移动终端。车规芯片作为汽车电子系统的核心部件&#xff0c;其可靠性和安全性直接关系到车辆的正常运行和驾乘人员的安全。然而&#xff0c;车规芯片在复杂的运行环境中面临着…...

Android Jetpack学习总结(源码级理解)

ViewModel 和 LiveData 是 Android Jetpack 组件库中的两个核心组件&#xff0c;它们能帮助开发者更有效地管理 UI 相关的数据&#xff0c;并且能够在配置变更&#xff08;如屏幕旋转&#xff09;时保存和恢复 UI 数据。 ViewModel作用 瞬态数据丢失的恢复&#xff0c;比如横竖…...

Matlab_Simulink中导入CSV数据与仿真实现方法

前言 在Simulink仿真中&#xff0c;常需将外部数据&#xff08;如CSV文件或MATLAB工作空间变量&#xff09;作为输入信号驱动模型。本文介绍如何高效导入CSV数据至MATLAB工作空间&#xff0c;并通过From Workspace模块实现数据到Simulink的精确传输&#xff0c;适用于运动控制…...

Go 语言规范学习(6)

文章目录 StatementsTerminating statementsEmpty statementsLabeled statementsExpression statementsSend statementsIncDec statementsAssignment statementsIf statementsSwitch statementsExpression switchesType switches For statementsFor statements with single con…...

设计模式——设计模式理念

文章目录 参考&#xff1a;[设计模式——设计模式理念](https://mp.weixin.qq.com/s/IEduZFF6SaeAthWFFV6zKQ)参考&#xff1a;[设计模式——工厂方法模式](https://mp.weixin.qq.com/s/7tKIPtjvDxDJm4uFnqGsgQ)参考&#xff1a;[设计模式——抽象工厂模式](https://mp.weixin.…...

解析 ID 数组传参的解决方案:基于 Axios 的实现

解析 ID 数组传参的解决方案&#xff1a;基于 Axios 的实现 在实际开发中&#xff0c;经常需要将一个 ID 数组作为参数传递给后端接口。然而&#xff0c;不同的后端框架和前端库对数组参数的处理方式可能有所不同。通过一个具体的例子&#xff0c;在前端使用 Axios 框架发送 I…...

C语言快速入门-C语言基础知识

这个c语言入门&#xff0c;目标人群是有代码基础的&#xff0c;例如你之前学过javaSE&#xff0c;看此文章可能是更有帮助&#xff0c;会让你快速掌握他们之间的差异&#xff0c;文章内容大部分都是泛谈&#xff0c;详细的部分我会在之后时间发布&#xff0c;我也在慢慢学习&am…...

Ubuntu 22.04 上安装 VS Code

在 Ubuntu 22.04 上安装 VS Code 的方法如下&#xff1a; 方法 1&#xff1a;通过 APT 包管理器安装 更新系统包索引&#xff1a; 打开终端并执行以下命令&#xff1a; sudo apt update安装依赖项&#xff1a; 执行以下命令以安装所需的依赖项&#xff1a; sudo apt install s…...

AI人工智能-PyCharm的介绍安装应用

下载与安装 创建python项目 项目路径&#xff1a;C:\Users\miloq\Desktop\python_project 配置环境 提前找到conda配置的python-base路径 配置conda环境 运行项目 运行结果...

Todesk介绍

文章目录 ToDesk 软件介绍1. 软件概述2. ToDesk 的功能特点2.1 简单易用2.2 高质量的图像与流畅的操作2.3 跨平台支持2.4 多屏显示与协作2.5 文件传输功能2.6 实时聊天与语音通话2.7 远程唤醒与自动启动2.8 多种权限设置与安全性2.9 无需公网 IP 3. ToDesk 的应用场景3.1 个人使…...

【JavaEE】springMVC返回Http响应

目录 一、返回页面二、Controller和ResponseBody与RestController区别三、返回HTML代码⽚段四、返回JSON五、HttpServletResponse设置状态码六、设置Header6.1 HttpServletResponse设置6.2 RequestMapping设置 一、返回页面 步骤如下&#xff1a; 我们先要在static目录下创建…...

青少年编程与数学 02-011 MySQL数据库应用 02课题、MySQL数据库安装

青少年编程与数学 02-011 MySQL数据库应用 02课题、MySQL数据库安装 一、安装Windows系统Linux系统&#xff08;以Ubuntu 20.04为例&#xff09;macOS系统 二、配置&#xff08;一&#xff09;Windows系统1. 创建配置文件2. 初始化数据库3. 启动MySQL服务4. 登录MySQL5. 修改ro…...

springboot441-基于SpringBoot的校园自助交易系统(源码+数据库+纯前后端分离+部署讲解等)

&#x1f495;&#x1f495;作者&#xff1a; 爱笑学姐 &#x1f495;&#x1f495;个人简介&#xff1a;十年Java&#xff0c;Python美女程序员一枚&#xff0c;精通计算机专业前后端各类框架。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xf…...

【安全运营】关于攻击面管理相关概念的梳理(一)

目录 一、ASM 介绍ASM 是“Attack Surface Management”&#xff08;攻击面管理&#xff09;的缩写【框架视角&#xff0c;广义概念】1. 介绍2. 兴起的原因3. 工作流程3.1 资产发现3.2 分类和优先级排序3.3 修复3.4 监控 二、EASM 介绍EASM 是 "External Attack Surface M…...

IPv6 网络访问异常 | 时好时坏 / 部分访问正常

注&#xff1a;本文为 “ IPv6 间接性连接异常” 相关文章合辑。 略作重排&#xff0c;未去重。 如有内容异常&#xff0c;请看原文。 IPv6 间接性连接异常&#xff1f;尝试调整路由器的 MTU 设置 Nero978 2024-1-29 17:54 背景 2024 年 1 月 29 日&#xff0c;因寒假返家…...

Unity编辑器功能及拓展(1) —特殊的Editor文件夹

Unity中的Editor文件夹是一个具有特殊用途的目录&#xff0c;主要用于存放与编辑器扩展功能相关的脚本和资源。 一.纠缠不清的UnityEditor 我们Unity中进行游戏构建时&#xff0c;我们经常遇到关于UnityEditor相关命名空间丢失的报错&#xff0c;这时候&#xff0c;只得将报错…...

LLMs之PE:《Tracing the thoughts of a large language model》翻译与解读

LLMs之PE&#xff1a;《Tracing the thoughts of a large language model》翻译与解读 导读&#xff1a;这篇论文的核心贡献在于提出了一种新颖的、基于提示工程的LLMs推理过程追踪技术——“Tracing Thoughts”。该技术通过精心设计的提示&#xff0c;引导LLMs生成其推理过程的…...

[Python] 贪心算法简单版

贪心算法-简单版 贪心算法的一般使用场景是给定一个列表ls, 让你在使用最少的数据的情况下达到或超过n. 我们就来使用上面讲到的这个朴素的例题来讲讲贪心算法的基本模板: 2-1.排序 既然要用最少的数据, 我们就要优先用大的数据拼, 为了实现这个效果, 我们得先给列表从大到小…...

游戏引擎学习第191天

回顾并制定今天的计划 最近几天&#xff0c;我们有一些偏离了原计划的方向&#xff0c;主要是开始了一些调试代码的工作。最初我们计划进行一些调试功能的添加&#xff0c;但是随着工作的深入&#xff0c;我们开始清理和整理调试界面的呈现方式&#xff0c;以便能够做一些更复…...

Git撤回操作全场景指南:未推送与已推送,保留和不保留修改的差异处理

一、未推送到远程仓库的提交&#xff08;仅本地存在&#xff09; 特点&#xff1a;可直接修改本地提交历史&#xff0c;不会影响他人 1. 保留修改重新提交 git reset --soft HEAD~1 # 操作效果&#xff1a; # - 撤销最后一次提交 # - 保留工作区所有修改 # - 暂存区内容保持…...

Java 贪吃蛇游戏

这段 Java 代码实现了一个经典的贪吃蛇游戏。玩家可以使用键盘的上下左右箭头键控制蛇的移动方向&#xff0c;蛇会在游戏面板中移动并尝试吃掉随机生成的食物。每吃掉一个食物&#xff0c;蛇的身体会变长&#xff0c;玩家的得分也会增加。如果蛇撞到自己的身体或者撞到游戏面板…...

QT图片轮播器(QT实操学习2)

1.项目架构 1.UI界面 2.widget.h​ #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#define TIMEOUT 1 * 1000 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent n…...

mac m1/m2/m3 pyaudio的安装

google了很多方法&#xff0c;也尝试了 issue68的方法&#xff0c; 但是均失败了&#xff0c;但是问deepseek竟然成功了&#xff0c;下面是deepseek r1给出的方法。在M3 pro芯片上可以成功运行. 安装homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent…...

Appium中元素定位的注意点

应用场景 了解这些注意点可以以后在出错误的时候&#xff0c;更快速的定位问题原因。 示例 使用 find_element_by_xx 或 find_elements_by_xx 的方法&#xff0c;分别传入一个没有的“特征“会是什么结果呢? 核心代码 driver.find_element_by_id("xxx") drive…...

《深入探索 Python 数据分析:用 Pandas 高效处理与可视化大型数据集》

《深入探索 Python 数据分析:用 Pandas 高效处理与可视化大型数据集》 引言:从零到分析高手 数据是当代社会最宝贵的资源,而数据分析技能是现代职业人不可或缺的一部分。在数据科学的领域中,Python 已成为当之无愧的“首选语言”,其强大的生态系统和简洁的语法让人如虎添…...

[GWCTF 2019]我有一个数据库1 [CVE phpMyAdmin漏洞]

扫出来一些东西 访问/phpmyadmin 发现界面 这里用到了CVE-2018-12613&#xff0c;光速学习 出现漏洞的代码是&#xff1a; $target_blacklist array (import.php, export.php );// If we have a valid target, lets load that script instead if (! empty($_REQUEST[targe…...

spring 常用注解区别及使用场景

1. 组件注册注解 Bean 作用&#xff1a;用于方法上&#xff0c;表示该方法返回的对象由Spring容器管理。通常用于配置类&#xff08;Configuration&#xff09;中&#xff0c;注册第三方库或自定义的Bean。 使用场合&#xff1a; 当你需要将非Spring管理的类&#xff08;如第…...

【后端】【Django】信号使用详解

Django post_save 信号使用详解&#xff08;循序渐进&#xff09; 一、信号的基本概念 Django 的 信号&#xff08;Signal&#xff09; 允许不同部分的代码在发生某些事件时进行通信&#xff0c;而不需要直接调用。这种机制可以解耦代码&#xff0c;让不同的模块独立工作。 …...

ML算法数学概念

交叉熵损失&#xff08;Cross-Entropy Loss&#xff09; 是机器学习和深度学习中常用的一种损失函数&#xff0c;主要用于衡量两个概率分布之间的差异。它在分类问题中&#xff08;尤其是多分类问题&#xff09;被广泛使用&#xff0c;因为它能够有效地评估模型预测的概率分布与…...

wps 怎么显示隐藏文字

wps 怎么显示隐藏文字 》文件》选项》视图》勾选“隐藏文字” wps怎么设置隐藏文字 wps怎么设置隐藏文字...

Vue3 其它API Teleport 传送门

Vue3 其它API Teleport 传送门 在定义一个模态框时&#xff0c;父组件的filter属性会影响子组件的position属性&#xff0c;导致模态框定位错误使用Teleport解决这个问题把模态框代码传送到body标签下...

亚马逊玩具品类技术驱动型选品策略:从趋势洞察到合规基建

一、全球玩具电商技术演进趋势 &#xff08;技术化重构原市场背景&#xff09; 数据可视化分析&#xff1a;通过亚马逊SP-API抓取2023年玩具品类GMV分布热力图 监管技术升级&#xff1a; 美国CPSC启用AI质检系统&#xff08;缺陷识别准确率92.7%&#xff09; 欧盟EPR合规接口…...

SpringBoot3+EasyExcel通过WriteHandler动态实现表头重命名

方案简介 为了通过 EasyExcel 实现动态表头重命名&#xff0c;可以封装一个方法&#xff0c;传入动态的新表头名称列表&#xff08;List<String>&#xff09;&#xff0c;并结合 WriteHandler 接口来重命名表头。同时&#xff0c;通过 EasyExcel 将数据直接写入到输出流…...

PHY——LAN8720A 寄存器读写 (二)

文章目录 PHY——LAN8720A 寄存器读写 (二)工程配置引脚初始化代码以太网初始化代码PHY 接口实现LAN8720 接口实现PHY 接口测试 PHY——LAN8720A 寄存器读写 (二) 工程配置 这里以野火电子的 F429 开发板为例&#xff0c;配置以太网外设 这里有一点需要注意原理图 RMII_TXD0…...

HTML5和CSS3的一些特性

HTML5 和 CSS3 是现代网页设计的基础技术&#xff0c;它们引入了许多新特性和功能&#xff0c;极大地丰富了网页的表现力和交互能力。 HTML5 的一些重要特性包括&#xff1a; 新的语义化标签: HTML5 引入了一些重要的语义化标签如 <header>, <footer>, <articl…...

sass报错,忽略 Sass 弃用警告,降级版本

最有效的方法是创建一个 .sassrc.json 文件来配置 Sass 编译器。告诉 Sass 编译器忽略来自依赖项的警告消息。 解决方案&#xff1a; 1. 在项目根目录创建 .sassrc.json 文件&#xff1a; {"quietDeps": true }这个配置会让 Sass 编译器忽略所有来自依赖项&#x…...

DeepSeek+Kimi:PPT制作的效率革命

摘要&#xff1a;传统PPT制作面临模板选择困难、内容逻辑混乱、设计排版能力有限以及反复修改等问题。DeepSeek和Kimi两款AI工具的组合为PPT制作提供了全新的解决方案。DeepSeek擅长内容生成与逻辑推理&#xff0c;能够快速生成高质量的PPT大纲和内容&#xff1b;Kimi则专注于长…...

transformers中学习率warmup策略具体如何设置

在使用 get_linear_schedule_with_warmup&#xff08;如 Hugging Face Transformers 库中的学习率调度器&#xff09;时&#xff0c;参数的合理设置需要结合 数据量&#xff08;dataset size&#xff09;、批次大小&#xff08;batch size&#xff09; 和 训练轮数&#xff08;…...

linux实现rsync+sersync实时数据备份

1.概述 rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具 2.端口和运行模式 tcp/873 采用C/S模式&#xff08;客户端/服务器模式&#xff09; 3.特点 可以镜像保存整个目录和文件第一次全量备份(备份全部的文件),之后是增量备份(只备份变化的文件) 4. 数…...