Java后端面试高效复习:构建知识体系与实战思维
Java 后端面试准备是一个系统工程单纯背诵知识点很难应对真实面试中灵活多变的场景题和深度追问。很多开发者准备了大量零散的“八股文”却在面试中被问到“为什么这么设计”或“线上如何排查”时卡壳。真正的面试准备需要将 Java 基础、并发编程、JVM、MySQL、Spring 等核心知识串联起来形成可解释、可推导、可应用的知识体系并能结合具体场景进行分析。本文旨在提供一个为期一周的高效复习框架目标不是覆盖所有细节而是帮助你建立核心知识的主干和连接点理解技术选型背后的“为什么”并掌握从原理推导到问题排查的思维路径。这套方法适用于有一定 Java 开发经验1-3年、正准备面试初中级或部分高级后端岗位的开发者。通过遵循这个框架你可以系统性地回顾关键领域将零散的知识点整合成应对面试的实战能力。1. 构建知识体系从孤立知识点到可推导的逻辑链面试官考察的不仅是记忆更是理解深度和解决问题的能力。因此复习的第一步是建立知识之间的关联形成逻辑链条。1.1 核心领域的关联图谱Java 后端面试的核心领域并非孤立存在。例如一个“秒杀场景”问题可能同时涉及Java 并发如何用synchronized、ReentrantLock或Semaphore控制并发流量。JVM高并发下对象创建与 GC 压力如何避免 Full GC。MySQL库存扣减的 SQL 语句UPDATE ... SET stock stock - 1 WHERE id ? AND stock 0事务隔离级别防止超卖以及索引优化。Spring如何使用Transactional声明事务其传播行为如何设置。复习时应有意识地将不同模块的知识点围绕常见业务场景如上述秒杀、或缓存穿透、分布式锁等进行串联。1.2 理解“为什么”比记住“是什么”更重要对于每个核心概念不仅要知其然更要知其所以然。这通常体现在面试官的追问上。不要只背HashMap的底层是数组链表/红黑树负载因子是 0.75。要能解释为什么是 0.75空间和时间成本的折衷。过高则链表过长查找慢过低则数组利用率低扩容频繁。为什么链表长度超过 8 要转红黑树泊松分布统计链表长度达到 8 的概率极低若达到通常意味着哈希冲突严重红黑树能保证 O(log n) 的查询效率。为什么转回链表的阈值是 6避免频繁的树化和链化提供一个缓冲区间。这种理解能让你在面试中从容应对“如果让你设计一个 HashMap你会考虑哪些因素”这类开放性问题。2. 核心领域精讲与串联复习我们将核心知识划分为几个模块并给出每日复习重点和串联思路。2.1 Java 基础与集合框架第1-2天这是所有问题的基石必须牢固。核心复习清单JVM 内存区域与 JVM 模块关联堆、栈、方法区、程序计数器、本地方法栈的作用。重点理解堆内存的划分新生代 Eden/S0/S1老年代及其与 GC 的关系。对象创建与内存布局new关键字背后的步骤类加载检查、分配内存、初始化零值、设置对象头、执行init方法。对象头里有什么Mark Word、类型指针。集合框架ArrayListvsLinkedList底层数组 vs 双向链表。增删改查的时间复杂度。ArrayList扩容机制1.5倍。HashMap详细梳理 put 流程计算 hash、寻址、处理冲突。重点理解hash 算法((h key.hashCode()) ^ (h 16))、扩容机制2倍扩容rehash、线程不安全的表现JDK 1.7 头插法可能导致死链1.8 已修复但仍有数据覆盖问题。ConcurrentHashMap如何保证线程安全JDK 1.7 分段锁1.8synchronized CAS volatile。size()方法如何统计基础计数器baseCount 分段计数器CounterCell。HashSet底层是HashMapTreeMap底层是红黑树。常见坑与面试点Arrays.asList()返回的列表不支持结构性修改add/remove。ArrayList的subList是原列表的视图修改会相互影响。遍历集合时删除元素要用Iterator.remove()避免ConcurrentModificationException。HashMap的 key 需要正确重写hashCode()和equals()方法。2.2 并发编程第3天这是区分初级和中高级工程师的关键领域。核心复习清单线程状态与生命周期NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED。sleep()、wait()、yield()、join()的区别。Java 内存模型 (JMM)理解主内存与工作内存volatile关键字如何保证可见性和禁止指令重排内存屏障但不保证原子性。synchronized使用方法代码块、实例方法、静态方法。底层原理Monitor 机制字节码层面的monitorenter/monitorexit。锁升级过程无锁 - 偏向锁 - 轻量级锁 - 重量级锁。与ReentrantLock的区别见表。特性synchronizedReentrantLock实现层面JVM 原生关键字JDK 实现API锁的获取隐式进入同步块自动获取显式lock()/unlock()锁的释放自动退出同步块或异常必须手动在finally中unlock()可中断不支持支持lockInterruptibly()公平锁非公平可配置公平或非公平条件变量单一wait/notify可创建多个Condition锁绑定与对象头关联与AQS队列关联AQS (AbstractQueuedSynchronizer)理解其作为并发工具基石的作用。核心是一个 volatile int 状态变量和一个 FIFO 线程等待队列。ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier都是基于 AQS 实现的。线程池 (ThreadPoolExecutor)七大核心参数必须熟记并能解释。new ThreadPoolExecutor( int corePoolSize, // 核心线程数 int maximumPoolSize, // 最大线程数 long keepAliveTime, // 空闲线程存活时间 TimeUnit unit, // 时间单位 BlockingQueueRunnable workQueue, // 工作队列 ThreadFactory threadFactory, // 线程工厂 RejectedExecutionHandler handler // 拒绝策略 );工作流程任务提交 - 核心线程是否已满 - 工作队列是否已满 - 最大线程数是否已满 - 执行拒绝策略。拒绝策略AbortPolicy抛异常、CallerRunsPolicy调用者运行、DiscardOldestPolicy丢弃最老任务、DiscardPolicy直接丢弃。常见配置IO 密集型任务可调大maximumPoolSizeCPU 密集型任务应与 CPU 核数相近。队列常用LinkedBlockingQueue无界需警惕 OOM或ArrayBlockingQueue有界。场景题串联如何实现一个生产者-消费者模型可以用BlockingQueue也可以用wait/notify或Lock/Condition。如何控制同时访问某个资源的线程数Semaphore。如何等待多个线程都完成后再继续CountDownLatch。2.3 JVM 与性能调优第4天理解 JVM 是解决线上内存、GC 问题的前提。核心复习清单运行时数据区回顾 Java 基础重点在堆和方法区元空间。垃圾回收算法标记-清除产生碎片。标记-复制用于新生代Eden, S0, S1。标记-整理用于老年代。垃圾收集器了解常见组合及其适用场景。Serial / Serial Old单线程Client 模式。ParNew / CMSParNew 是 Serial 的多线程版与 CMS 配合。CMS目标是最短停顿时间过程初始标记 - 并发标记 - 重新标记 - 并发清除。缺点产生碎片并发阶段占用 CPU。Parallel Scavenge / Parallel OldJDK8 默认吞吐量优先。G1JDK9 及以后默认将堆划分为多个 Region可预测停顿时间。过程Young GC - Mixed GC回收部分老年代 Region。ZGC / Shenandoah超低停顿TB 堆停顿 10ms适用于超大内存。GC 日志解读这是面试和实战的关键。[GC (Allocation Failure) [PSYoungGen: 153600K-25568K(179200K)] 153600K-88096K(588800K), 0.0234567 secs] [Times: user0.05 sys0.01, real0.02 secs]PSYoungGen收集器是 Parallel Scavenge。153600K-25568K(179200K)年轻代回收前 150M回收后 25M总容量 175M。153600K-88096K(588800K)整个堆回收前 150M回收后 86M总容量 575M。user/sys/realCPU 时间和实际耗时。关键指标YGCYoung GC 次数、YGCTYoung GC 总时间、FGCFull GC 次数、FGCTFull GC 总时间、GCTGC 总时间。内存问题排查工具链jps查看进程jstat -gcutil pid interval查看 GC 统计jmap -heap pid堆概要jmap -histo:live pid对象直方图jmap -dump:formatb,fileheap.hprof pid生成堆转储。分析工具MAT, JProfiler, VisualVM。常见问题OOM堆内存不足对象太多、元空间不足类太多、栈溢出递归过深、直接内存不足NIO。CPU 飙升频繁 GC、死循环、线程阻塞。排查思路先用top找到高 CPU/内存的 Java 进程再用jstack抓取线程栈结合jstat的 GC 情况分析。调优实战思路调优不是背参数而是有明确目标降低延迟提高吞吐和证据GC 日志、监控指标。常见动作调整堆大小-Xms,-Xmx、调整新生代比例-XX:NewRatio、调整 Survivor 区比例-XX:SurvivorRatio、选择或更换 GC 收集器。2.4 MySQL 与数据库原理第5天数据库是后端系统的核心面试必考。核心复习清单索引B树为什么用 B树而不是 B 树或哈希B树所有数据存储在叶子节点且叶子节点有指针链接范围查询和全表扫描效率极高。聚簇索引主键索引叶子节点存数据行 vs 非聚簇索引二级索引叶子节点存主键值。事务与隔离级别ACID特性。隔离级别读未提交、读已提交、可重复读、串行化及可能产生的并发问题脏读、不可重复读、幻读。重点理解 MVCC多版本并发控制是如何在“读已提交”和“可重复读”级别下实现无锁读的通过 ReadView 和 undo log。场景题SELECT ... FOR UPDATE是当前读会加锁不受 MVCC 影响。锁机制行锁记录锁、间隙锁、临键锁。间隙锁和临键锁是为了解决幻读问题。表锁意向锁IS, IX是表级锁为了快速判断表中是否有行锁。死锁如何排查SHOW ENGINE INNODB STATUS查看LATEST DETECTED DEADLOCK部分。如何避免约定访问顺序、减小事务粒度、使用SELECT ... FOR UPDATE NOWAIT。SQL 优化与执行计划EXPLAIN命令是关键。关注type访问类型const/ref/range/index/ALL由好到坏、key使用的索引、rows预估扫描行数、ExtraUsing filesort,Using temporary表示需要优化。优化原则避免SELECT *只为查询条件创建索引注意最左前缀原则避免索引列上使用函数或计算避免类型转换。主从复制与读写分离了解 binlog 的三种格式STATEMENT, ROW, MIXED及其优缺点。延迟问题如何监控与处理场景题串联如何设计一个“点赞”功能保证高性能和高并发使用 Redis 计数异步落库。订单表有user_id,create_time字段如何查询某个用户最近一个月的订单并按时间倒序联合索引(user_id, create_time)。2.5 Spring 框架生态第6天Spring 是 Java 后端的事实标准重点在理解其设计思想。核心复习清单Spring IoC 与 AOPIoC控制反转将对象创建和依赖注入交给容器。ApplicationContext是容器接口。Bean 的生命周期实例化、属性填充、初始化、销毁。AOP面向切面编程。核心概念切面Aspect、连接点Joinpoint、通知Advice、切点Pointcut。实现原理动态代理JDK 基于接口CGLIB 基于子类。Spring Bean 的作用域与事务作用域singleton默认、prototype、request、session 等。事务Transactional传播行为PROPAGATION_REQUIRED, REQUIRES_NEW, NESTED 等必须理解其应用场景。失效场景方法非 public、同类方法调用因为代理机制、异常被捕获未抛出、数据库引擎不支持。Spring MVC 流程DispatcherServlet - HandlerMapping - HandlerAdapter - 调用 Controller - 返回 ModelAndView - ViewResolver - 渲染视图。重点理解Controller与RestController区别以及常用注解RequestMapping,RequestBody,PathVariable。Spring Boot 自动配置原理是SpringBootApplication-EnableAutoConfiguration-spring.factories文件 -XXXAutoConfiguration类 -ConditionalOnXxx条件注解。如何自定义 starterSpring 常用设计模式工厂模式BeanFactory、单例模式Bean 作用域、代理模式AOP、模板方法模式JdbcTemplate, RestTemplate、观察者模式ApplicationEvent。场景题串联如何实现一个全局异常处理器ControllerAdviceExceptionHandler。如何统一处理接口的入参校验和返回格式使用Valid校验配合全局异常处理使用ResponseBodyAdvice统一包装返回体。3. 面试实战与问题排查思维3.1 如何回答场景题面试官给出一个场景如“设计一个短链接系统”考察的是你的系统设计能力和知识运用能力。回答应有结构澄清需求询问 QPS、数据量、功能边界是否要统计访问量、过期时间等。概要设计分模块阐述。如生成算法自增ID、哈希、存储MySQL Redis 缓存、跳转302 重定向。细节深入在每个模块运用具体知识。如生成算法用 Snowflake 避免冲突存储考虑分库分表缓存用 Redis 并设置过期策略跳转用 302 便于统计。考虑扩展与容灾如何防刷如何监控数据库挂了怎么办3.2 线上问题排查标准化流程当被问到“线上 CPU 100% 如何排查”时展示你的系统性思维。定位问题进程top -c找到 CPU 高的 Java 进程 PID。定位问题线程top -Hp [PID]找到该进程下 CPU 高的线程 IDTID。线程 ID 转换将十进制的 TID 转为十六进制printf “%x\n” [TID]。分析线程栈jstack [PID] | grep -A 20 [十六进制TID]查看该线程在做什么可能是 GC 线程也可能是业务线程陷入死循环。结合其他信息如果是 GC 线程用jstat -gcutil [PID] 1000观察 GC 频率和耗时。如果是业务线程分析其堆栈指向的代码。内存问题类似用jmap或jcmd GC.heap_dump导堆转储用 MAT 分析 Dominator Tree 和 Leak Suspects。3.3 高频“八股文”深度追问示例HashMap 为什么线程不安全初级回答多线程 put 可能导致数据覆盖。深度回答在 JDK 1.7 中扩容时采用头插法转移节点多线程可能形成环形链表导致死循环。在 JDK 1.8 中修复了死循环但 put 时的size等操作非原子性仍会导致数据不一致。根本原因是内部状态被并发修改未加锁。synchronized 和 ReentrantLock 区别不能只背表格。要能说出“synchronized是 JVM 内置锁优化得好锁升级ReentrantLock功能更灵活可中断、可公平、多条件但需要手动释放用不好容易导致死锁”。MySQL 的 RR 级别如何解决幻读初级回答通过 MVCC 和间隙锁。深度回答在“可重复读”级别下普通SELECT是快照读通过 ReadView 解决。对于当前读SELECT ... FOR UPDATEInnoDB 通过间隙锁Gap Lock和临键锁Next-Key Lock来防止其他事务在范围内插入新记录从而解决幻读。4. 七日冲刺复习计划与行动清单第1-2天Java 基础与集合目标深入理解 JVM 内存模型、对象、集合底层。行动画一遍HashMapput 和扩容的流程图。写代码验证各集合类的线程不安全现象。阅读ArrayList、HashMapJDK 1.8部分源码。自测解释String的不可变性及 intern 方法。比较HashMap、Hashtable、ConcurrentHashMap。第3天并发编程目标掌握线程协作、锁、AQS、线程池。行动手写生产者-消费者模型的三种实现wait/notify, Lock/Condition, BlockingQueue。配置一个自定义参数的线程池并测试其工作流程。画出 AQS 的队列模型。自测解释volatile和synchronized的区别。线程池队列满了怎么办第4天JVM目标掌握 GC 原理、收集器、调优和问题排查命令。行动在本地写一个内存泄漏的程序用jmap导出堆快照用 MAT 分析。找一份线上 GC 日志或自己生成进行解读。自测描述 CMS 和 G1 的收集过程。线上频繁 Full GC 可能有哪些原因第5天MySQL目标掌握索引、事务、锁、SQL 优化。行动针对一张表设计不同索引用EXPLAIN验证 SQL 执行计划。模拟一个死锁场景并查看死锁日志。自测什么是覆盖索引MVCC 是如何工作的UPDATE语句加什么锁第6天Spring目标理解 IoC/AOP 原理、Spring Boot 自动配置、常用特性。行动实现一个自定义的 Spring Boot Starter。模拟一个Transactional失效的场景并解决。自测Spring Bean 的生命周期。Autowired和Resource的区别。第7天综合模拟与复盘目标串联知识模拟面试查漏补缺。行动找朋友进行模拟面试或自己录音回答常见问题。整理过去几天遇到的难点和易错点。针对自己的项目思考可能被问到的技术深挖点。自测设计一个微信红包系统。如何排查接口响应慢的问题面试前检查清单项目经历能否清晰介绍项目背景、个人职责、技术架构、遇到的挑战及解决方案使用 STAR 法则基础知识对核心概念能否不仅说出是什么还能解释为什么场景思维面对开放性问题是否有结构化的分析思路排错能力是否熟悉从监控报警到定位代码的完整排查链路沟通表达能否用简洁、有条理的语言阐述复杂技术问题最终面试通过的关键在于将“八股文”转化为你自己的“知识树”和“解决方案库”。当你能从原理出发逻辑清晰地推导出现象和解决方案时面试官看到的就不再是一个知识的背诵者而是一个有思考能力的工程师。

相关新闻

Windows Hello生物识别登录配置与优化指南

Windows Hello生物识别登录配置与优化指南

1. Windows Hello 配置全指南 Windows Hello 是微软推出的生物识别登录系统,它彻底改变了我们与Windows设备的交互方式。作为一名长期使用Windows系统的技术顾问,我见证了从传统密码到面部识别、指纹解锁的进化过程。今天我们就来深入探讨如何正确配置Wi…

2026/10/9 5:48:41 阅读更多 →
企业风险防控体系构建与异常行为识别实践

企业风险防控体系构建与异常行为识别实践

1. 企业治理中的风险识别与防控体系构建 在企业经营管理实践中,风险防控体系的建设往往决定着组织的可持续发展能力。作为从业十余年的企业合规顾问,我见证过太多因内部管控失效导致的经营危机。今天要探讨的这个框架,实际上是一套经过实战检…

2026/10/7 20:31:38 阅读更多 →
暗黑破坏神2存档编辑器:5分钟打造完美角色,告别无尽刷装备

暗黑破坏神2存档编辑器:5分钟打造完美角色,告别无尽刷装备

暗黑破坏神2存档编辑器:5分钟打造完美角色,告别无尽刷装备 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为刷不到心仪的暗金装备而苦恼吗?想体验各种强力build却不想重新练级&#xff1…

2026/10/8 4:55:03 阅读更多 →

最新新闻

YOLOv3电塔绝缘子检测权重:快速推理与微调实战

YOLOv3电塔绝缘子检测权重:快速推理与微调实战

简介:这是一份面向电力设施智能监测场景的YOLOv3电塔绝缘子检测训练成果包,适合目标检测初学者、电力巡检算法开发者及需要小目标检测参考方案的技术人员使用。资源包共990个文件,约520.07MB,包含json标注数据、png与jpg图像样本、…

2026/10/14 1:38:10 阅读更多 →
单链表头尾插法:带尾指针的工业级实现

单链表头尾插法:带尾指针的工业级实现

/* 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 1:38:10 阅读更多 →
编译原理试卷A考点剖析:从词法分析到代码生成的完整复习链路

编译原理试卷A考点剖析:从词法分析到代码生成的完整复习链路

简介:常州工学院《编译原理》试卷A是一份面向计算机专业学生的期末试题,覆盖词法分析、语法分析、中间代码生成等编译流程核心知识点,既适合考前自测、查漏补缺,也可供教师布置作业或命题时参考。资源为单个doc文档,体…

2026/10/14 1:38:10 阅读更多 →
从JSON到Parquet:半结构化数据全链路处理与优化实战

从JSON到Parquet:半结构化数据全链路处理与优化实战

1. 半结构化数据到底是什么,为什么大数据绕不开它1.1 从数据形态演变看半结构化数据的定位做了这几年大数据的人应该都有同感:早期大家张口闭口都是“结构化数据”,建表、写SQL、跑报表,一切井然有序。可随着业务系统越接越多&…

2026/10/14 1:38:10 阅读更多 →
普通人抓住国产大模型红利:从提示词工程到工作流自动化

普通人抓住国产大模型红利:从提示词工程到工作流自动化

简介:清华大学新闻与传播学院新媒体研究中心发布的DeepSeek实用指南,面向希望借助AI提升工作、学习与生活效率的普通用户。文档系统梳理了DeepSeek-R1的模型定位与核心能力,涵盖智能对话、文本生成、语义理解、代码补全、联网搜索与深度思考等…

2026/10/14 1:38:10 阅读更多 →
Lua面试题深度拆解:从数据类型到协程的性能避坑指南

Lua面试题深度拆解:从数据类型到协程的性能避坑指南

/* 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 1:37:10 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →