- 博客(16)
- 收藏
- 关注
原创 全面深入解析:synchronized 原理、事务运行机制、代理对象与 Spring 的关系
本文深入解析了Java并发编程中的synchronized机制和数据库事务的底层原理。首先从JVM层面剖析synchronized的实现,包括字节码指令monitorenter/monitorexit、监视器Monitor的工作机制和锁升级流程(偏向锁→轻量级锁→重量级锁)。接着探讨数据库事务的ACID特性实现,重点分析InnoDB的redo/undo日志机制、两阶段提交协议和MVCC多版本并发控制。通过逐层分解,揭示了高并发场景下的同步与事务处理的核心机制,为性能优化和问题排查提供了理论基础。
2025-09-12 11:42:08
1096
原创 弱引用强引用以及ThreadLocal为什么要remove的内存泄露问题
摘要:ThreadLocal的精髓在于理解弱引用与remove()的必要性。ThreadLocalMap使用弱引用作为Key,仅能自动回收Key而无法释放Value,导致内存泄漏。必须手动调用remove()彻底清除Entry,才能避免Value因强引用无法回收。最佳实践是在try-finally块中使用ThreadLocal,确保最终执行remove()。弱引用解决Key泄漏,remove()解决Value泄漏,二者缺一不可。(149字)
2025-09-08 12:29:15
656
原创 Session和 LoginFormDTO 的结构化学习笔记。
Session与LoginFormDTO核心摘要 Session:解决HTTP无状态问题,通过“Session ID钥匙-保险箱”机制跟踪用户状态。服务器创建唯一Session并返回ID,浏览器通过Cookie携带ID实现身份识别。生产环境需用Redis存储以避免内存问题,并注重HTTPS、安全Cookie等防护措施。 LoginFormDTO:专为登录场景设计的数据传输对象(DTO),核心价值是安全性(防数据绑定攻击)与解耦性。仅定义必要字段(如账号密码),隔离前端表单与数据库实体,集中验证逻辑,使代码更
2025-09-08 12:27:52
1144
原创 Session和 LoginFormDTO 的结构化学习笔记。
文章摘要: 本文分为两部分,分别介绍了Session机制与LoginFormDTO的核心概念与应用。 Session部分: Session解决了HTTP无状态问题,通过服务器生成唯一Session ID并存储在客户端Cookie中,实现用户状态跟踪。Express.js示例展示了Session的配置与读写操作,并强调生产环境需使用Redis等外部存储以避免内存泄漏和集群同步问题,同时需注意HTTPS和安全Cookie设置以保障安全性。 LoginFormDTO部分: LoginFormDTO作为登录场景的数
2025-09-08 10:12:03
581
原创 正则表达式
正则表达式(Regular Expression,简称Regex)是一种用于匹配、查找或替换文本中特定模式的工具。它通过一系列特殊字符和语法规则,高效地处理字符串操作,广泛应用于编程、文本编辑和数据清洗等领域。
2025-07-23 10:00:00
347
原创 javascript_part1
本文介绍了JavaScript的基础知识,包括引入方式、变量声明、数据类型和类型转换。主要内容有: JS引入方式:通过script标签内嵌代码、引入外部js文件(此时标签内代码无效)或直接在元素中写js代码(不推荐) 变量声明:JS是弱类型语言,使用var/let/const声明变量,变量类型根据赋值决定 数据类型: 基本类型:undefined、number、string、boolean 对象类型:Object(包括Date、Array等) 特殊类型:function 类型转换: 数字转字符串:拼接空字符
2025-07-22 10:03:38
977
原创 关于前端的基本知识
本文介绍了前端开发的基础知识,涵盖HTML、CSS和JavaScript三大核心技术。HTML用于网页结构构建,讲解了标签、元素、属性和文档结构等基础概念;CSS负责样式设计,详细说明了选择器、盒模型、布局属性和动画效果;JavaScript实现动态交互,解释了其核心特性、用途和基本语法。文章提供了代码示例和最佳实践建议,推荐通过W3Schools等网站深入学习。掌握这些技术是成为前端开发者的第一步,建议结合实践逐步提升技能。
2025-07-13 10:26:13
921
原创 数据库的基本知识和MySQL的基本操作
本文介绍了数据库的基础知识和MySQL操作指南。主要内容包括:1. 数据库分类:按存储位置分为磁盘存储(如MySQL)和缓存存储(如Redis);按关系划分为关系型数据库(MySQL、Oracle)和非关系型数据库(Redis、MongoDB)。2. DBMS数据库管理系统功能及MySQL常用命令行操作:数据库连接、查询、表管理、用户权限等基本指令。3. 数据定义语言(DDL)操作:数据库/表创建修改、索引视图管理等。4. 数据操作语言(DML)指令:数据增删改查及事务控制。5. 数据查询语言(DQL)。
2025-06-04 15:15:00
1126
原创 Java线程通信与线程池实战指南
等待唤醒机制:通过wait()、notify()和notifyAll()实现线程间通信,需在同步代码块中使用,典型应用于生产者-消费者模型。 线程池:Executors提供四种线程池(单线程、固定数量、缓存型、定时任务),实际开发推荐使用ThreadPoolExecutor自定义参数。 单例模式:饿汉式(线程安全但加载效率低)与懒汉式(需同步保证线程安全)。 还介绍了线程状态,守护线程以及线程的优先级。
2025-06-02 13:08:07
734
原创 深入解析Java多线程与抢占式调度机制
文章主要介绍了进程、线程、多线程编程及其相关概念。进程是运行中的程序,线程是进程中的执行单元。Java采用抢占式调度,CPU通过高速切换线程实现多线程的假象,多核CPU则能真正实现多线程并行。多线程能提高用户体验和CPU利用效率,但需注意线程安全问题。文章还介绍了定义线程的两种方式:继承Thread类和实现Runnable接口。线程安全隐患可通过同步代码块、同步方法或静态同步方法解决。此外,文章还讨论了锁的概念、死锁及其避免方法,以及同步与异步、线程安全与不安全的数据结构。
2025-05-18 16:53:37
1395
1
原创 映射(HashMap)
本文详细介绍了HashMap的定义、主要方法、底层数据结构、put方法的底层操作、哈希碰撞的三种情况及解决办法,以及HashMap的扩容机制。Map是表示键值对映射关系的接口,键唯一且不可重复,值可重复。HashMap的底层数据结构结合了数组、链表和红黑树的优点,查询和增删改查效率较高。哈希碰撞的三种情况包括键值相同、哈希值相同但键不同、以及哈希值和键都不同但存储位置相同。解决办法包括链地址法、开放定址法、调整负载因子和自定义哈希函数。HashMap的扩容机制通过将容量增加一倍来减少哈希冲突,提高性能。
2025-05-11 17:37:06
1052
原创 Java各接口,集合,队列详解
Java集合框架以`Collection`为核心,提供多种数据结构。`List`(有序、可重复)含`ArrayList`(动态数组,查询快)、`LinkedList`(双向链表,增删快)及线程安全的`Vector`。`Set`(元素唯一)含哈希表实现的`HashSet`、保持插入顺序的`LinkedHashSet`和红黑树排序的`TreeSet`。`Queue`支持FIFO队列,`Deque`扩展为双端队列,两端操作灵活。各集合基于数组、链表或树结构,结合线程安全与性能差异,适用于查询、增删、排序及并发。
2025-05-07 17:38:13
707
原创 面向对象(第二部分)
Java面向对象的基本应用,包括面向对象的三大特性以及详细解释,static关键字,final关键字,abstract关键字的应用和具体方法以及注意事项。
2025-04-22 14:12:01
1144
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅