Day11

article/2025/6/8 9:49:17

1. HTTP常见状态码有哪些?

  1. 1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用的比较少。
  2. 2xx 类状态码表示服务器成功处理了客户端的请求。
  3. 3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。
  4. 4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。
  5. 5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

常见:

  • 200:请求成功
  • 301:永久重定向;302:临时重定向
  • 404:无法找到此页面;405:请求的方法类型不支持
  • 500:服务器内部出错

2. MySQL事务特性是什么?怎么实现的?

  1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部回滚。
  2. 一致性(Consistency):事务前后,数据处于一致状态(满足约束条件)。
  3. 隔离性(Isolation):并发事务之间互不干扰,每个事务都想自己在独立执行。
  4. 持久性(Durability):一旦事务提交,修改就会永久保存,即使系统宕机也能恢复。

  • 原子性通过 Undo Log(回滚日志)实现:每执行一条 DML (增删改)语句,InnoDB 会将数据变更前的状态写入 Undo Log,如果事务失败或调用了 ROLLBACK,InnoDB 就会根据 Undo Log 进行回滚。
  • 一致性依靠原子性 + 隔离性 + 约束:回滚保证事务要么成功要么失败,隔离性避免脏读,外键、唯一约束等在事务开始前就要满足。
  • 隔离性通过 MVCC(多版本并发控制)和锁机制实现:支持四种隔离级别,通过 MVCC(快照读)实现读操作并发不加锁,保证效率;加锁机制保证写操作不冲突,如行锁、间隙锁、意向锁等。
  • 持久性通过 Redo Log(重做日志):当事务提交时,修改数据的操作会写入 Redo Log,如果数据库宕机,在重启时可以用过 Redo Log 恢复未同步的数据页,确保事务持久性。

3. Java线程池的核心参数有哪些?

线程池是为了减少频繁的创建线程和销毁线程带来的性能损耗,原理如下图:

在这里插入图片描述

当我们提交任务时,线程池会优先使用核心线程处理任务;如果核心线程已满,则尝试将任务放入任务队列中;若队列也满了,则判断是否还能创建非核心线程(总线程数未达到最大值),若可以就创建新线程处理任务;如果线程数已达到最大,任务将根据设置的拒绝策略进行处理(如抛异常、丢弃、调用者执行等)。执行完的线程不会立即销毁,而是等待一定时间以复用,非核心线程若长时间空闲会被回收,从而实现高效的线程管理和资源利用。

new ThreadPoolExecutor()的七个参数:

组成作用
corePoolSize核心线程数,线程池初始化后保持不被回收的线程数
maximumPoolSize最大线程数,队列满了后允许创建的最大线程数
workQueue任务阻塞队列(如 LinkedBlockingQueue
threadFactory线程创建工厂,决定线程命名、优先级等
handler拒绝策略,当线程池无法处理新任务时的处理方式
keepAliveTime非核心线程空闲多久会被回收
unitkeepAliveTime 时间的单位

4. 数据库翻页(limit)查询时,发现越往后查询越来越慢,为什么?该如何修改SQL能解决?

例如SQL:

SELECT * FROM user ORDER BY id LIMIT 100000, 10;

MySQL 会先扫描前面 100000 条数据,然后丢弃这些数据,再返回第 100001 到 100010 条。这就导致随着 offset 增大,扫描的数据越来越多;性能逐渐下降,慢在“跳过”的那一部分数据上;特别是是数据量大时,响应时间可能成倍增长。

方案一:使用主键或唯一索引做“位置标记”分页,基于上一次的最大 ID 做分页,而不是 OFFSET 跳页。

  • 优化后(假设上一页最后一条记录id是100000)
    SELECT * FROM user WHERE id > 100000 ORDER BY id LIMIT 10;
    扫描和返回的是精确的 10 条;性能稳定,不随着页数增大而下降;非常适合大数据量的“滚动加载”或“上一页/下一页”式分页。

方案二:覆盖索引 + 子查询定位 ID。

  • 用子查询先取 ID(走索引),再回表查数据
    SELECT * FROM user WHERE id IN (SELECT id FROM user ORDER BY id LIMIT 100000, 10);
    适用于无法用主键分页的情况。

5. Insert或Update,不用两个语句去分别判断,用一条语句实现存在就更新,否则就插入?

最常用方式:INSERT ... ON DUPLICATE KEY UPDATE
适用于主键或唯一索引冲突时进行更新。

INSERT INTO 表名 (字段1, 字段2, ...)
VALUES (1,2, ...)
ON DUPLICATE KEY UPDATE 字段1=新值1, 字段2=新值2;

6. DNS基于什么协议实现的?

基于 UDP 协议

  1. 客户端发起 DNS 请求:客户端向本地 DNS 服务器请求解析 www.server.com,使用 UDP,端口 53。
  2. 本地 DNS 服务器向根域名服务器查询:本地 DNS 发现自己没有www.server.com的记录,于是向根域名服务器请求(UDP 查询)。
  3. 根服务器响应(返回.com顶级域服务器地址):根服务器并不直接返回 IP,而是告诉你:“这是 .com 的事,你去问 .com 的 DNS。”
  4. 继续迭代查询:本地 DNS 接着去问 com顶级域服务器:www.server.com是谁?.com顶级域返回一个 权威DNS 服务器地址(比如 ns1.server.com)。
  5. 向权威 DNS 服务器询问具体 IP:本地 DNS 向server.com域的权威服务器发起请求:www.server.com到底啥 IP?权威服务器终于返回了最终的 IP 地址,比如:X.X.X.X。
  6. 本地 DNS 将 IP 返回客户端,客户端就可以访问了。

在这里插入图片描述

名称英文作用举例
1. 本地 DNS 服务器Local DNS Resolver最先被问,查缓存运营商 DNS,如 114.114.114.114
2. 根 DNS 服务器Root DNS Server告诉你“顶级域(TLD)”服务器位置管理 .com.cn
3. 顶级域名服务器TLD DNS Server告诉你权威服务器位置比如负责 .com 的服务器
4. 权威 DNS 服务器Authoritative DNS Server最终返回目标 IP 地址比如负责 server.com 的服务器

7. 为什么是UDP?

因为基于 UDP 实现 DNS 能够提供低延迟、简单快速、轻量级的特性,更适合 DNS 这种需要快速响应的域名解析服务。

  1. 低延迟:UDP 是一种无连接的协议,不需要在数据传输前建立连接,因此可以减少传输时延,适合 DNS 这种需要快速响应的应用场景。
  2. 简单快速:UDP 相比于 TCP 更简单,没有 TCP 的连接管理和流量控制机制,传输效率更高,适合 DNS 这种快速传输数据的场景。
  3. 轻量级:UDP 头部较小,占用较少的网络资源,对于小型请求和响应来说更加轻量级,适合 DNS 这种频繁且短小的数据交换。

8. http的特点是什么?

HTTP 是一种基于文本的应用层协议,通信内容都是人类可读的文本格式,便于开发和调试;它具有良好的可扩展性,支持自定义头部和方法,使得协议可以不断适应新的需求;HTTP 还非常灵活,能够传输各种类型的数据(如 HTML、JSON、图片等),适用于 Web、API 等多种场景;不过它是无状态的,也就是说每次请求之间没有记忆,服务器不会自动记住客户端的信息,因此需要依靠 Cookie 或 Session 等机制来维持用户会话状态。

9. http无状态体现在哪?


http://www.hkcw.cn/article/YDtcWqbtwL.shtml

相关文章

Windows 下部署 SUNA 项目:虚拟环境尝试与最终方案

#工作记录 #回顾总结 本文记录了在 Windows 系统上,通过 PyCharm 图形界面(尽量减少命令行操作)部署 SUNA 项目时,针对不同虚拟环境方案的尝试过程、遇到的问题以及最终选择的可行方案,并补充了整体部署思路与推荐。…

Mycat的监控

参考资料: 参考视频 参考博客 Mysql分库分表(基于Mycat)的基本部署 MySQL垂直分库(基于MyCat) Mysql水平分表(基于Mycat)及常用分片规则 视频参考资料及安装包: https://pan.b…

安科电动机保护器通过ModbusRTU转profinet网关与PLC通讯

安科电动机保护器通过ModbusRTU转profinet网关与PLC通讯 在工业自动化领域,设备间的通信和数据交互至关重要。Modbus作为一种常用的通讯协议,广泛应用于各种工业现场;而Profinet则凭借其高效、实时性,在工业以太网通讯中占据重要…

CLion社区免费后,使用CLion开发STM32相关工具资源汇总与入门教程

Clion下载与配置 Clion推出社区免费,就是需要注册一个账号使用,大家就不用去找破解版版本了,jetbrains家的IDEA用过的都说好,这里嵌入式领域也推荐使用。 CLion官网下载地址 安装没有什么特别,下一步就好。 启动登录…

【快见刊】2025年应用材料、机械与制造工程国际会议(ICAMMME 2025)

2025年应用材料、机械与制造工程国际会议(MMME 2025)将在美丽的六朝古都南京隆重召开。南京,这座兼具现代都市风貌与深厚历史文化底蕴的城市,将以其独特的魅力迎接来自世界各地的应用材料、机械与制造工程领域的专家、学者及业界精…

TopCode之最大子数组和

题目链接 53. 最大子数组和 - 力扣(LeetCode) 题目解析 算法原理 解法1: 暴力(一个循环用来固定,一个用来找最大的子数组O(n^2),每次往后拓展一个元素就判断是否是最长的),枚举出每一种情况, 然后不断更新最大的 解法二: dp 1> dp的含义: dp[i]记…

SAP是什么?SAP概述

SAP 概述 一、核心定义 ‌SAP‌(Systems, Applications & Products in Data Processing)是德国 SAP 公司开发的集成化 ‌ERP(企业资源规划)‌ 系统,通过模块化架构整合企业财务、供应链、生产等核心业务流程&…

Fooocus 一款好用的文生图软件,4G显存可跑

Fooocus 是一款对标**Midjourney**的图像生成软件,并且可以本地部署,目前star数量已经来到了45.2k,说明非常受大家欢迎的。 今天我们来体验下。 首先贴上git地址 https://github.com/lllyasviel/Fooocus 看下软件对硬件的要求 针对不同的显…

【AI Study】第三天,Python基础 - NumPy(1)

学习计划:AI Study,学习计划源码地址:https://github.com/co-n00b/AI-Study.git 2025-05-23 一、NumPy简介 NumPy的官方文档并没有明确指出其发音,但根据英语单词的常规发音规则NumPy可以读作/ˈnʌmpaɪ/,也可以读作/ˈnʌmpi/…

电工基础【4】点动接线实操

06 接线实操 (接线实操) 1、接线实操软件下载和安装 2、点动点路图接线实操 3、接线的基本工艺和基本工具 -----小记----- 斯沃数控机床仿真(SSCNC Machine Simulation 软件)示例图 斯沃数控机床仿真软件(电气) v1.3 安装版(附安装教程) https://www.jb51.net/softs/776239.…

QT 5.9.2+VTK8.0实现等高线绘制

项目下载链接:QT5.9.2VTK8.0实现等高线绘制资源-CSDN文库 示例如下: 主要代码如下: #include "vtkRenderer.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkPo…

【C++】特殊类设计

1.设计一个不能被拷贝的类 C98中: 将拷贝构造函数和赋值运算符重载只声明不定义,将访问权限设置私有 原因: 设置成私有:如果只声明没有设置成private,用户自己如果在类外定义了,就可以不能禁止拷贝了只声…

Oracle 用户/权限/角色管理

1. 用户 1.1. 用户的创建和删除 1.1.1. 创建用户 create user user identified {by password | externally} [ default tablespace tablespace ] [ temporary tablespace tablespace ] [ quota {integer [k | m ] | unlimited } on tablespace [ quota {integer [k | m ] | …

机器人现可完全破解验证码:未来安全技术何去何从?

引言 随着计算机视觉技术的飞速发展,机器学习模型现已能够100%可靠地解决Google的视觉reCAPTCHAv2验证码。这标志着一个时代的结束——自2000年代初以来,CAPTCHA("全自动区分计算机与人类的图灵测试"的缩写)一直是区分…

AI赋能SEO关键词革新

内容概要 随着人工智能技术与搜索引擎优化的深度融合,传统关键词策略正经历系统性变革。基于智能语义分析与深度学习算法,AI能够实时解析海量搜索数据,构建动态更新的关键词库,突破人工筛选的局限性。通过自然语言处理技术&#…

深入解析Java11核心新特性

文章目录 前言一、标准化HTTP Client:告别HttpURLConnection1.1 HttpURLConnection 的痛点1.2 标准化 HTTP Client 的解决方案1.3 实战应用指南1.4 总结 二、局部变量类型推断增强:Lambda中的var2.1 解决的问题:类型声明的一致性困境2.2 实现…

香橙派3B学习笔记6:基本的Bash脚本学习_UTF-8格式问题

今日学习基本的linux 的一些 bash 脚本 ssh : orangepi本地ip 密码 : orangepi 操作系统发行版: 基于 Ubuntu 20.04.6 LTS(Focal Fossa)的定制版本,专门为 Orange Pi 设备优化。PRETTY_NAME"Orange P…

腾讯下乡了。。。

大家好,我是苍何。 这两天在网上出现很多腾讯元宝在乡下的横幅,着实把我吓了一大跳。 甚至养猪问题也可以直接问元宝🐶 前两天,刚好回乡下给我儿子过 2 岁生日,家里大婶的弟弟就是专业的养猪大户,在吃饭的…

如何在PowerBI中使用Analyze in Excel

如何在PowerBI中使用Analyze in Excel 之前分享过如何使用DAXStudio将PowerBI与Excel连接 ,今天介绍另外一个工具,也可以实现同样的功能,Analyze in Excel。 使用Analyze in Excel 第一步: 首先准备好一个PBIX文件&#xff0c…

接口测试的用例设计

1.简介 在这篇文章里,我们来学习一下接口测试用例设计,主要是来学习一些用例设计要点。其实说白了,接口用例设计和功能用例设计差不多,照猫画虎即可。不要把它想象的多么高大上,多么的难,其实一样&#xff…