- 博客(31)
- 收藏
- 关注
原创 《Java并发编程研读》第四章:线程池与任务框架
本文摘要: 线程池是Java并发编程的核心组件,文章详细解析了ThreadPoolExecutor的7个核心参数(核心线程数、最大线程数、存活时间等)及其配置策略
2025-12-31 11:12:57
443
原创 《Java并发编程研读》第三章:锁机制
本文系统梳理Java锁机制,分为六大部分:1)线程基础;2)线程安全;3)锁机制(核心章节);4)线程池;5)线程协作工具;6)底层原理。重点解析synchronized的锁升级机制(无锁→偏向锁→轻量级锁→重量级锁)和ReentrantLock的AQS实现,对比公平/非公平锁差异,分析读写锁适用场景,探讨乐观锁(CAS)与悲观锁的选择策略。最后总结面试高频考点,包括锁实现差异、升级过程和AQS原理。
2025-12-31 11:10:17
503
原创 《深入解析JVM》第五章:JDK 8之后版本的优化与JDK 25前瞻
本文系统梳理了JDK8至JDK25的核心优化演进路线,重点分析了各LTS版本的突破性特性。JDK11引入var语法、ZGC等革命性改进;JDK17带来密封类、模式匹配等语言增强;JDK21实现虚拟线程并发革命;JDK25则通过紧凑对象头、分代ShenandoahGC等进一步提升性能。文章详细对比了各版本在启动时间、内存效率、GC暂停等维度的表现,并给出版本选型建议:新建项目推荐JDK25,微服务优先考虑JDK21/25,传统系统可暂留JDK17。全文既涵盖语法特性演进,又深入底层优化原理,为Java开发者提
2025-12-29 09:16:10
634
原创 《深入解析JVM》第三章:JVM类加载与Spring类加载
本文深入解析JVM类加载机制与Spring框架中的类加载实践。主要内容包括:1)类加载生命周期及初始化触发条件,区分主动引用与被动引用;2)双亲委派模型原理及其破坏场景(如JDBC SPI);3)自定义类加载器实现;4)Spring传统部署与Boot可执行JAR的类加载差异;5)类加载性能监控与优化策略。重点涵盖面试高频考点:类加载过程、双亲委派、初始化触发条件等
2025-12-29 09:10:31
916
原创 《深入解析JVM》第一章:JVM架构全览
本文系统介绍了JVM架构及内存模型,主要包含以下内容:1. JVM执行流程:从源码编译为字节码到最终执行机器码的全过程;2. 运行时数据区详解:包括线程私有的程序计数器、虚拟机栈、本地方法栈,以及线程共享的堆、方法区/元空间;3. 重点解析JDK8从永久代到元空间的改进,以及堆内存的分代结构和相关参数配置;4. 各内存区域的作用、特性及可能出现的错误。文章为理解JVM原理和性能调优提供了基础框架,后续章节将深入探讨垃圾回收、类加载等核心机制。
2025-12-27 20:51:15
959
原创 7天读懂MySQL|Day 7:主从同步与分库分表
MySQL主从同步与分库分表技术解析 本文深入探讨MySQL数据库的两大核心技术:主从同步和分库分表。主从同步通过二进制日志实现数据复制,支持异步、半同步和全同步三种模式,配置时需注意server-id、log-bin等关键参数。分库分表分为垂直和水平两种方式,垂直拆分适合业务模块解耦,水平拆分应对大数据量场景。文章详细介绍了分片键选择、分布式事务处理等核心问题,并提供了主从同步配置流程和分库分表示例。最后给出优化建议:先垂直后水平拆分、使用中间件简化实现、建立完善监控体系等,帮助构建高性能MySQL架构。
2025-12-26 08:40:08
958
原创 7天读懂MySQL|Day 6:存储引擎深度解析
MySQL存储引擎是数据库性能的关键,本文深入解析了InnoDB的架构与优化策略。主要内容包括:1)存储引擎的核心作用,对比InnoDB与MyISAM的特性差异;2)InnoDB内存结构(缓冲池、Redo日志等)和磁盘结构(表空间、数据页)的详细剖析;3)数据组织方式,包括聚簇索引和B+树结构;4)性能优化实践,涵盖缓冲池调优、参数配置和监控诊断方法。文章通过实际SQL示例,展示了如何监控和优化InnoDB性能,为数据库管理员提供了实用指导。
2025-12-25 08:29:09
537
原创 7天读懂MySQL|Day 5:执行引擎与SQL优化
本文详细解析了MySQL执行引擎的全景架构和SQL执行流程,从连接器到存储引擎的完整链路。重点阐述了EXPLAIN执行计划的核心解读方法,包括关键字段分析(type、key、rows、Extra)和常见优化陷阱。
2025-12-25 08:28:21
765
原创 7天读懂MySQL|Day 4:锁与并发控制
本文深入剖析MySQL锁机制与死锁问题,指出90%线上事故源于锁顺序不一致。重点分析三种锁类型:行锁(InnoDB核心机制)、间隙锁(解决幻读)、临界区锁(性能杀手),通过真实案例展示死锁产生链路。
2025-12-24 08:47:42
816
原创 7天读懂MySQL|Day 2:索引的真相
本文深入解析MySQL索引失效的核心原因与优化策略。文章首先阐明索引失效本质是未理解B+树的物理存储逻辑,而非语法错误。通过对比B树和哈希表,指出B+树在范围查询和IO效率上的优势。重点剖析联合索引的"最左前缀"原则,列举三种常见失效场景(LIKE模糊查询、隐式类型转换、OR条件)。最后提出优化建议:使用覆盖索引避免回表、按区分度排序索引列、控制索引数量。全文强调索引设计应基于B+树特性,而非简单添加,为开发者提供实践性指导。
2025-12-23 08:37:36
633
原创 7天读懂MySQL|Day 1: MySQL 架构全景
MySQL架构设计的核心在于分层解耦与安全闭环。其三层架构包括:连接层管理资源隔离,Server层处理SQL逻辑(解析器/优化器/执行器),存储引擎层实现数据持久化(InnoDB/MyISAM)。关键安全机制依赖redolog(物理日志保障崩溃恢复)和binlog(逻辑日志实现主从同步)的协同工作。
2025-12-23 08:36:37
888
原创 Java基础入门:第二周
本文系统总结了Java核心知识点的企业级应用实践,涵盖封装、集合框架、IO流、多线程和OOP设计原则。重点内容包括:1)封装规范(private属性+构造方法+getter/setter校验)及其与Spring框架的深度集成;2)集合框架(HashMap/ArrayList)的底层机制与MyBatis/JPA的关联;3)IO流(缓冲流+try-with-resources)的性能优化;4)多线程(线程池配置)的安全实践;5)OOP设计(组合优于继承)的微服务架构价值。每个知识点均配有企业故障案例和面试真题.
2025-12-19 16:46:55
910
原创 Java基础入门:第一周
如果学号输入非数字(如‘abc’),程序会崩溃吗?关键:Java的强类型能提前捕获90%的低级错误(如。“为什么企业级项目多用Java而不是Python?“为什么企业用JDK 17而不是最新版?为什么有时会跳过输入?“Java在哪些场景下不适合?“JDK和JRE的区别是什么?方法里不能放太多逻辑?
2025-12-19 14:05:46
568
原创 客户端exe嵌入浏览器,如何查看请求地址?
首先尝试F12和。最快生效的解决方案方法三(启动参数法)。优先尝试,然后用本地浏览器连接。这是解决此类问题的标准做法。如果不行或只想看请求方法四,直接使用Fiddler或Charles抓包,这是最通用、最强大的方法,几乎可以捕获任何程序的网络流量。
2025-08-28 10:40:49
1854
原创 SpEL表达式初识与运用
总体使用//解析器 private SpelExpressionParser parser = new SpelExpressionParser();//表达式上下文StandardEvaluationContext context = new StandardEvaluationContext();//添加方法 - 输出json字符串context.registerFunction("toJSONString", JSON.class.getMethod("toJSONStrin
2022-05-18 15:29:56
716
原创 linux SVN 安装 + 同步tomcat web目录
SVN 安装:1.安装命令 yum -y install subversion2.建立版本库目录mkdir /home/svnData # 这里先创建svn的根地址svnadmin create /home/svnData/xiangmu #然后建立版本库 3.添加用户,权限 进入项目的conf目录 cd xiangmu/conf...
2019-04-19 12:18:54
293
2
原创 Spring Boot : Whitelabel Error Page解决方案
1. 在Application类中加上@ComponentScan(basePackages = {"com.demo.controller"}) 多个之间用","分隔 当然,这样治标不治本2.修改正确的目录结构
2018-05-11 09:49:15
693
原创 清空Request,用HttpServletRequestWrapper
class MyHttpServletRequestWrapper extends HttpServletRequestWrapper { private Map params; public MyHttpServletRequestWrapper(HttpServletRequest originalRequest) { super(originalRe...
2018-05-10 11:09:23
1927
原创 Ubuntu 下载jdk wget下载不了?
解决方案:在Ubuntu下载Oracle JDK时,直接使用wget会因Oracle的登录和协议要求而失败。
2018-04-20 16:40:21
636
转载 Spring工作流程描述
Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器...
2018-04-17 23:48:41
1436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅