2025最新Java面试题精讲:从Tomcat到Shiro的原理链路串讲
简介面向Java后端开发者与2025年求职者整理的高频面试题文档围绕Java核心高频考点系统梳理了Tomcat运行原理、Spring IOC/DI与AOP、JVM运行机制、包装类与基本数据类型区别、Shiro权限标签、Servlet生命周期以及Java作用域七个主题展开每个主题均以问答方式呈现便于快速回顾核心概念与常见追问。压缩包整体仅1个docx文件约37KB轻量便携可在Word中直接阅读、标注或打印复习适合碎片化时间反复翻阅。内容兼顾原理拆解与差异对比比如Tomcat通过main启动后监听端口并处理请求的过程、Spring通过IOC与DI由容器管理依赖实现解耦、JVM经类加载和解释执行达成跨平台、包装类对象与基本类型存储位置差异、Shiro标签权限判定等能帮助读者在短时间内厘清易混点、建立知识框架。目前已有543人学习浏览适合作为面试前冲刺的浓缩笔记。1. 2025最新版Java面试题这份题库不是背答案是帮你把原理串成链路面试官问「Tomcat 运行原理」很多人张口就答「8080 端口」。真正想听的是一整条 Servlet 容器链路。这份 2025 最新版 Java 面试题把链路拆成七道题从 Tomcat、Servlet 生命周期一路讲到 Spring、JVM 和 Shiro 标签适合正在准备校招和社招的 Java 后端。文档不长但每道题都踩在面试官追问的点上而且答案给的是「原理描述」而不是「一句话结论」。接下来按七个考点拆开讲哪道题能答到第几层、哪里容易翻车一次性说清。2. Tomcat 运行原理与 Servlet 生命周期一条链路串起启动、请求与销毁2.1 Tomcat 的五步启动模型从 main 方法到动态类加载Tomcat 不是靠魔法跑起来的它本质上是一个 Java 程序。文档里把启动过程拆成五步创建 Server 实例、监听端口、抓取请求、动态加载类、返回结果。这五步在面试时可以当成一个「故事线」来讲面试官听到你按顺序走就知道你对容器模型有整体认知而不是零散背了几个端口号。第一步创建 Server。Tomcat 的 Bootstrap 类里有 main 方法启动后创建 Server 实例Server 再聚合 Service、Connector、Engine 等组件这就是文档说的「需要 main 方法启动创建实例 server」。第二步监听端口。Tomcat 通过 Connector 监听指定端口HTTP 请求到达后交给容器处理。文档列的 8005、8043、8080 里8005 是运维关闭端口8080 是默认 HTTP 连接器端口8043 在日常生产里很少见常见 HTTPS 端口是 8443看到 8043 别照搬进生产配置。注意8005 端口只接收 Shutdown 指令不处理业务请求8080 才是 HTTP 连接器。面试时说「Tomcat 监听 8080 端口」没问题补一句「8005 是关闭端口」能加分。server.xml 里对应配置长这样Server port8005 shutdownSHUTDOWN Service nameCatalina Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 / /Service /Server这段配置里port 是监听端口connectionTimeout 控制连接超时时间redirectPort 是收到 HTTPS 请求时的转发端口。启动后 Tomcat 会持续抓取 8080 端口上的请求拿到请求行、请求头和请求体再根据 URL 和方法决定交给哪个 Servlet——这就是第三步。第四步动态加载类。请求到了容器内部容器按 URL 匹配映射关系找到对应的 Servlet 类如果类没加载过就反射创建实例再调用实例上的方法对应文档说的「动态地加载方法所在的类完成类的实例化」。第五步把执行结果写成响应可以是 JSP 渲染后的 HTML也可以是 JSON/XML 字符串。面试时把这五步讲完再补一句「整个过程里容器负责线程管理和实例复用开发者写的是业务逻辑」就能自然接上生命周期。2.2 Servlet 生命周期四个阶段对应哪些方法Servlet 生命周期文档里分了四个阶段加载和实例化、初始化、请求处理、服务终止。对应关系如下实例化由容器构造对象初始化走 init()请求处理走 service()销毁走 destroy()。写一个标准 Servlet 就能把这些方法的位置看干净public class DemoServlet extends HttpServlet { public DemoServlet() { System.out.println(1. 实例化容器创建 Servlet 实例); } Override public void init() { System.out.println(2. 初始化init() 只执行一次); } Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(3. 请求处理service() 按请求类型分发); super.service(req, resp); } Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.getWriter().write(ok); } Override public void destroy() { System.out.println(4. 服务终止容器关闭时释放实例); } }这段代码的要点有三个。第一实例化和 init 是两次调用实例是构造出来的init 是随后调用的面试时别说成一个。第二service() 内部按 HTTP 方法分发GET 走 doGetPOST 走 doPost这是 HttpServlet 帮开发者做好的事。第三destroy() 只在容器关闭或应用卸载时触发单次请求处理完不会走 destroy很多人在这点上想当然。补充一个文档没写但高频追问的点不想等第一次请求才实例化可以在 web.xml 里配 load-on-startup让容器启动时就把 Servlet 建好并执行 initservlet servlet-namedemo/servlet-name servlet-classcom.example.DemoServlet/servlet-class load-on-startup1/load-on-startup /servletload-on-startup 的值是启动顺序数字越小越先加载。配了这个容器一启动就执行实例化和 init适合初始化连接池、预热缓存之类的场景。2.3 追问高发区单实例多线程与线程安全生命周期讲完面试官大概率追问一句「Servlet 是单例还是多例并发请求会怎样」答案是单实例多线程。容器只维护一个 Servlet 实例每个请求由一个独立线程调用同一个 service()。所以 Servlet 里的成员变量是被多个线程共享的如果往成员变量里写数据不做同步就会出并发问题。这道题把 Tomcat 原理和并发两个考点连在一起回答时给一个结论加一个例子结论是「实例单例、调用多线程」例子是「在 doGet 里直接给成员变量赋值两个请求同时进来可能互相覆盖」。本地变量不存在这个问题因为它们每个线程各有一份。能补一句「所以 Servlet 字段要避免可变状态」就更完整了。3. Spring 框架三件套IOC、DI 与 AOP 的面试应答框架Spring 在面试里的出现率接近百分之百它不问你知不知道这个词而是问你能不能讲清楚「容器到底帮你做了什么」。题库的答案只有三句话但面试官眼里这是三个独立考点需要分别展开IOC 讲设计思想DI 讲实现方式AOP 讲横切逻辑的落地。下面按这个顺序拆。3.1 IOC 控制反转什么被「反转」了IOC 文档的定义是「把组件间的依赖关系从程序内部转变到外部来管理」用大白话说以前对象自己 new 依赖对象现在把创建权交给容器你需要什么容器注入什么。常见做法是先讲「反转前」再讲「反转后」。反转前是传统代码Service 里手动 new DAO 实现类反转后是 Service 只暴露依赖接口由容器在启动时装配。讲完对比补一句「反转的是对象创建权和依赖装配权」这句话是得分点。对应的容器配置长这样bean iduserDao classcom.example.dao.impl.UserDaoImpl / bean iduserService classcom.example.service.UserService property nameuserDao refuserDao / /bean第一行声明 DAO 实现类第二行声明 Service 并把 userDao 通过 setter 注入进去。容器读取这段配置后会创建两个 Bean 并按 ref 建立关系。面试时能画出「容器 — 创建 — 装配」这个三角关系比背定义有用。再补一句「开发者不再控制 new 的时机主动权交到了容器手里」IOC 这题就答圆了。3.2 依赖注入的三种方式构造器、setter、字段DI 是把「以参数或其它形式注入依赖」落到代码层面的机制。常见的有三种注入方式写法不同面试建议把三种都说一遍显得体系完整。构造器注入是最推荐的Spring 官方也偏向它。优点是依赖在创建时就固定Bean 不可变且不会出现「依赖为 null 还继续跑」的空指针现场Service public class OrderService { private final OrderDao orderDao; Autowired public OrderService(OrderDao orderDao) { this.orderDao orderDao; } }setter 注入允许 Bean 创建后再改依赖适合可选的、运行期可能替换的实现。字段注入最简洁但把依赖直接当成私有字段外部拿不到难以做不可变约束测试时还得靠反射或 Mockito 处理// setter 注入容器调 setOrderDao 完成装配 Autowired public void setOrderDao(OrderDao orderDao) { this.orderDao orderDao; } // 字段注入简洁但测试不友好 Autowired private OrderDao orderDao;说明第一种走构造方法参数是 finalSpring 用构造器自动装配第二种走 setter第三种直接打在字段上。三种方式的共同点是依赖注入都由容器运行期决定区别在装配时机和外部可见性。面试时不用表态谁绝对好说一句「优先构造器可选项用 setter字段注入少用」就够了。3.3 AOP横切逻辑抽离与两种代理机制AOP 解决的是「日志、事务、安全」这些横切逻辑反复出现在业务代码里的问题。文档的说法是把这些逻辑抽成独立模块在指定位置插入。Spring AOP 的落地方式是定义一个切面类用注解声明切入点和通知。Aspect Component public class LogAspect { // execution 定义切入点service 包下所有类的所有方法 Before(execution(* com.example.service.*.*(..))) public void beforeLog(JoinPoint joinPoint) { String method joinPoint.getSignature().getName(); System.out.println([AOP] 调用前 method); } AfterReturning(pointcut execution(* com.example.service.*.*(..)), returning result) public void afterLog(Object result) { System.out.println([AOP] 返回结果 result); } }execution 表达式里第一个 * 是返回值通配com.example.service.* 是包第二个 * 是类名通配第三个 * 是方法名通配(..) 是任意参数。Before 在目标方法执行前插入逻辑AfterReturning 在正常返回后插入。AOP 能生效的底层是代理接口实现类走 JDK 动态代理没有接口的类走 CGLIB 子类代理面试被问到「JDK 代理和 CGLIB 区别」时答「前者要求目标类有接口后者靠继承生成子类」就能过关。另外事务处理也是 AOP 的典型应用Spring 的 Transactional 底层就是事务切面。面试被问事务传播行为时提到「这类注解是由 AOP 代理拦截方法调用实现的」比只背传播级别高一层因为把注解和容器机制串起来了。4. JVM 运行原理与 Java 类型体系从字节码到作用域的完整一条线JVM 在面试里的定位很特殊它不是一个孤立考点而是和「跨平台」「内存」「变量生命周期」全部挂钩。题库给了三条主干拆开看其实是一条因果链源码从字节码开始经类加载进入虚拟机的类型体系而类型体系又决定变量存放在哪里、存活多长时间。按这个顺序讲面试官不用追问你就能把链路说全。4.1 JVM 运行三步走编译、类加载、解释执行Java 的跨平台靠的是字节码在 JVM 里解释执行而不是直接编译成机器码。文档的三步流程是源码编译字节码、类加载器加载到虚拟机内存、解释器翻译成平台机器码。三步各有各的追问点。第一步编译。javac 把 .java 编译成 .class里面是字节码指令。第二步类加载。类加载器按「双亲委派」逐级加载加载后字节码被放入方法区堆里生成对应的 Class 对象。第三步解释执行。JVM 解释器逐条翻译字节码指令热点代码会被 JIT 编译成本地代码提速。回答时强调「一次编译到处运行」的前提是每个平台都有对应的 JVM 实现。可以用命令行直观感受类加载过程javac StackDemo.java java -verbose:class StackDemo第一行编译得到 .class 文件。第二行运行并打印类加载日志能看到 java.lang.String、java.lang.System 这些核心类在启动早期就被加载。面试时提到这个命令等于告诉面试官你实际观察过类加载的过程不是只背概念。4.2 包装类与基本类型六点差异其中一条是原题库的易错结论文档列了四条我在拆题时逐条查证其中第一条容易误导原文说「包装类比基本数据类型占空间少」这个结论与实际相反。包装类对象要存储对象头、引用字段等元数据Integer 实际占的内存比 int 大得多拿一段代码验证public class BoxDemo { public static void main(String[] args) { int i 10; // 栈上的原始 int占 4 字节 Integer n Integer.valueOf(i); // 堆上的对象含对象头远大于 4 字节 System.out.println(n i); // n 自动拆箱后比较值 } }这段代码里 int 直接存放在栈帧Integer 是通过 valueOf 装箱出来的堆对象。实际差异归纳如下第一空间上基本类型更省包装类有对象头开销。第二存储位置上基本类型局部变量在栈里包装类对象多半在堆里但局部包装类型的引用变量本身也在栈上别把「对象在堆」说成「所有包装类都在堆」。第三包装类是对象有 equals、compareTo 等方法基本类型没有。第四泛型只能用包装类int 写不进 List。第五包装类有缓存Integer 默认缓存 -128 到 127。第六包装类参与运算会自动拆箱拆箱空引用会抛 NullPointerException。这六点正好覆盖包装类方向全部高频追问。原文前三条的含义都在前三点里第四点泛型限制单独成立。我当时在这个结论上栽过跟头后来凡是面到包装类都先答「空间上基本类型更省」再从对象、泛型、缓存、拆箱四个方向补没有再翻车。4.3 Java 作用域四种变量范围与默认值差异文档最后一道题是作用域四种位置分别是局部变量、实例变量、类变量、方法参数。用一段代码一次看全public class ScopeDemo { private static String classVar 类变量; // 类变量属于 Class全体实例共享 private String instanceVar; // 实例变量每个对象一份 public void say(String paramVar) { // 方法参数形参 String localVar 局部变量; // 局部变量方法内的临时变量 System.out.println(paramVar localVar); System.out.println(instanceVar); // 实例变量有默认值 null } }四种变量的核心区别有两条。第一是生命周期局部变量随方法调用进栈、方法结束出栈方法参数与局部变量相似但由调用方传值实例变量随对象创建和回收类变量随类的加载和卸载应用不死它不灭。第二是初始值局部变量和参数必须先赋值才能用实例变量和类变量有默认值像 String 默认 nullint 默认 0。写代码时「局部变量没初始化直接读」在编译期就报错这是常见的初学者翻车点。面试时遇到作用域题先答四种变量再补一句「类变量用 static 修饰所有实例共享一份」就完整了。5. Shiro 权限标签实战与避坑清单guest、user、authenticated 的边界5.1 五个标签的语义边界最容易记混的三兄弟文档给了五个常用标签guest、user、authenticated 是权限状态判断principal 是输出信息hasRole 和 hasPermission 是授权判断。三个状态标签是重灾区很多人记混。核心区别是「登录方式」标签判断条件典型场景shiro:guest当前用户未登录未登录时的引导页shiro:user已登录或通过 Remember Me 记住已登录但可能只被记住shiro:authenticated必须走完认证流程不包括记住我敏感操作、个人中心guest 和 user 是互补的guest 表示没登录user 表示登录过或有记住我凭证。authenticated 和 user 的差异最容易被追问勾选「记住我」后再访问shiro:user 会显示内容shiro:authenticated 不会因为 Remember Me 只恢复了身份凭证没重新走认证流程。页面里做权限控制时普通页面用 user下单改密这类敏感操作必须用 authenticated。5.2 JSP 里的标签接入从依赖到页面判断要让标签生效先确保项目里引入 Shiro 的 Web 集成依赖并配置过滤器常见依赖如下dependency groupIdorg.apache.shiro/groupId artifactIdshiro-web/artifactId version1.13.0/version /dependency再在 web.xml 里把 ShiroFilter 挂到应用入口让请求先过过滤器再做权限判断。过滤器链的常见配置在 shiro.ini 里长这样[main] authc.loginUrl /login [urls] /order/** authc /admin/** authc, roles[admin] /export/** authc, perms[order:export]URL 映射以斜杠开头等号后面是过滤器链。roles[admin] 表示要求 admin 角色perms[order:export] 表示要求对应权限字符串。这个配置决定了后面 JSP 标签能不能拿到权限信息面试时说清「标签只是展示层真正拦截在过滤器链」即可。JSP 页面的用法如下% taglib prefixshiro urihttp://shiro.apache.org/tags % shiro:guest未登录访客可见/shiro:guest shiro:user已登录或记住我可见/shiro:user shiro:authenticated真正认证过的用户可见/shiro:authenticated shiro:hasRole nameadmin有 admin 角色可见/shiro:hasRole shiro:hasPermission nameorder:export有导出订单权限可见/shiro:hasPermission shiro:principal propertyusername/最后一行 principal 标签可以直接输出当前登录用户名property 指定输出字段在导航栏上很常用。hasRole 和 hasPermission 的 name 值要和 Shiro 配置里的权限字符串严格对应字符串写错标签就静默不显示内容。5.3 三条踩坑记录现象、原因、解决项目里用 Shiro 标签最常翻车的就是下面三个都是实际项目中交过学费换来的血泪经验坑一记住我用户被 user 标签放行。现象用户勾选「记住我」后关闭浏览器再打开个人中心页用 shiro:user 判断页面正常显示。原因user 标签的语义包含「已记住用户」它不等同于重新认证。敏感页面用 user 标签等于把 Remember Me 当成完全登录。解决敏感页面把 shiro:user 换成 shiro:authenticated心里记住「authenticated 才算真登录」。从那以后凡是涉及个人数据、订单、支付的页面我一律只信 authenticated。坑二hasPermission 在 JSP 里永远不显示内容。现象权限标签包住的内容一直不渲染换成 hasRole 又能生效。原因hasPermission 里的权限字符串和 Realm 里配置的权限标识对不上Shiro 对大小写和冒号分隔是严格匹配的。解决先开 debug 日志看 Realm 返回的权限列表再核对标签里的 name。常见做法是统一维护一个权限字典前端写标签、后端配权限都从同一张表抄避免手打出错。坑三页面直接输出一段带尖括号的标签文本。现象JSP 页面上出现原始标签代码没有被解析。原因常见两类要么 taglib 的 URI 写错要么 web.xml 里 ShiroFilter 没有映射到当前 URL标签没被容器识别。解决先检查页面头部 taglib 的 uri 是否和依赖里的 tld 一致再检查过滤器的 url-pattern。排查顺序上我一般先看 taglib uri再看过滤器映射最后开 debug 日志核对权限字符串三步走完基本都能定位。6. 把原理变成面试答案两分钟口述模板与追问防御清单题库里的题目是知识面试官要的是表达。我习惯把每道原理题组织成一个两分钟模板先给结论再讲顺序最后补一个易错点。以 Tomcat 为例两分钟这样说先给结论「Tomcat 是 Servlet 容器启动时创建 Server监听端口请求到来时按 URL 映射到 Servlet 实例执行方法并返回」。再按顺序讲五步重点落在「类加载和实例化」上。最后补一句易错点「Servlet 是单实例多线程成员变量要注意并发安全」。整个回答既有骨架又有别人容易忽略的细节。追问防御更重要。面试官听完原理通常从下面几个方向继续打追问方向应答要点Tomcat 端口异常先看 8005 与 8080 是否冲突别只看业务端口IoC 和 DI 有什么区别IoC 是设计思想DI 是它的实现方式之一AOP 代理怎么选有接口走 JDK 代理没接口走 CGLIB包装类为什么能用泛型泛型约束引用类型自动装箱做适配记住我算不算登录算身份恢复不算完整认证面试前一天我会把题库七个考点口头过一遍每个考点先花 30 秒说结论再花 60 秒走流程最后 30 秒讲一个坑。整个过程不碰文档讲不出来就在题目前面做记号回去重点补。这套自检脚本帮我避开了很多「看着会、张嘴忘」的场面建议你也拿题库按这个流程过一遍。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

前端社招面试复盘:从基础原理到性能优化与工程化实战

前端社招面试复盘:从基础原理到性能优化与工程化实战

前阵子刚面完一个前端工程师的社招岗位,趁着记忆还热乎,把整场面试里涉及的知识点、我的回答思路、答得不好的地方,以及事后复盘下来的改进方案,全部梳理了一遍。这篇文章我先把公司信息隐掉,只保留岗位本身和考核内容…

2026/10/15 14:03:58 阅读更多 →
大型语言模型全解读:转换器、预训练、微调与实战避坑

大型语言模型全解读:转换器、预训练、微调与实战避坑

简介:这是一份面向自然语言处理初学者与大模型应用开发者的全景式大型语言模型解读PDF,内容覆盖LLM定义、Transformer架构、编码器-解码器结构、自注意力机制与单词嵌入原理,并延伸到预训练、微调、零样本和少样本学习等关键环节。正文按定义…

2026/10/15 14:02:53 阅读更多 →
纯C++从零手写CNN:彻底搞懂卷积与反向传播原理

纯C++从零手写CNN:彻底搞懂卷积与反向传播原理

简介:这份资源面向深度学习初学者与具备一定C基础的开发者,用纯C从零实现卷积神经网络与全连接神经网络,并在MNIST手写数字数据集上完成训练与精度验证,帮助读者绕开框架黑盒、直击底层原理。压缩包共30个文件,约11MB&…

2026/10/15 14:02:53 阅读更多 →

最新新闻

SpringBoot+Vue网上订餐系统开发实践

SpringBoot+Vue网上订餐系统开发实践

1. 项目背景与核心价值 网上订餐系统是当前餐饮行业数字化转型的典型应用场景。随着移动互联网的普及,传统电话订餐方式已无法满足现代消费者的便捷需求。这个基于SpringBootVue的毕业设计项目,完整实现了从后台管理到前端用户交互的全流程解决方案。 我…

2026/10/15 14:39:53 阅读更多 →
pi:面向开发者的AI原生CLI/TUI Agent运行时

pi:面向开发者的AI原生CLI/TUI Agent运行时

1. 这不是“圆周率”,而是一个正在成型的AI原生交互范式最近在多个技术社区和开发者频道里,“pi”这个词频繁跳出,但绝不是数学课上的那个3.1415926。它正快速演变成一个代号——代表一类新型轻量级、终端优先、以自然语言为第一接口的AI代理…

2026/10/15 14:39:53 阅读更多 →
SpringBoot+Vue智慧旅游系统架构设计与实践

SpringBoot+Vue智慧旅游系统架构设计与实践

1. 项目概述这个智慧旅游系统项目采用SpringBootVue前后端分离架构,为旅游目的地提供一站式数字化服务解决方案。我在实际开发中发现,这类系统要真正落地需要平衡三个核心需求:游客端的便捷体验、商户端的管理效率以及平台方的数据分析能力。…

2026/10/15 14:39:53 阅读更多 →
openGauss数据库安装避坑指南:SELinux、AVX2与时间同步三大硬约束

openGauss数据库安装避坑指南:SELinux、AVX2与时间同步三大硬约束

1. 项目概述:为什么一个国产数据库的安装过程值得花2000字讲清楚?“华为国产openGauss数据库安装详细教程”——这标题看着平平无奇,但如果你真去试过,就会发现它背后藏着一整套系统级适配逻辑。我第一次在某高校实验室部署openGa…

2026/10/15 14:39:53 阅读更多 →
Romax C1模块入门指南:齿轮箱建模与轴承寿命分析

Romax C1模块入门指南:齿轮箱建模与轴承寿命分析

简介:面向传动系统设计初学者与中级用户的Romax软件入门资料,内容源自英国Romax Technology官方培训教程,聚焦C1模块。资源围绕软件认知与上手操作展开:先介绍软件定义、应用领域、版权保密约定和教程适用对象,再逐步讲…

2026/10/15 14:39:53 阅读更多 →
深圳松岗燃气灶维修|华帝燃气灶检修|面板积水接口漏气故障检查|欧米到家服务电话

深圳松岗燃气灶维修|华帝燃气灶检修|面板积水接口漏气故障检查|欧米到家服务电话

导读:厨房燃气灶天天用,遇到打不着火、黄火、松手就灭、闻到燃气味,先别慌着换。下面把深圳报修最高频的问题按"自己能查 → 师傅上门"的顺序拆开讲,帮你一眼定位问题、避开低价引流和小病大治。 📞 24小时…

2026/10/15 14:38:50 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →