java
文章平均质量分 81
早点睡觉好了
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA中基本类型和包装类型的区别
Java基本类型和包装类型的区别:基本类型(如int、boolean等)直接存储数据值在栈内存中,有默认值;包装类型(如Integer、Boolean)是对象,存储引用在堆内存中,默认值为null。Java为每个基本类型提供了对应的包装类,用于将基本类型封装为对象。主要区别体现在存储方式、默认值和类型转换上。基本类型更高效,包装类型则提供更多对象操作方法。原创 2025-12-30 23:02:52 · 225 阅读 · 0 评论 -
基于JDK动态代理的基本原理
本文介绍了Java动态代理的基本原理与实现机制。动态代理通过Proxy类和InvocationHandler接口,在运行时动态创建代理对象并拦截方法调用,实现功能增强。文章详细讲解了动态代理的核心概念、工作原理、实现步骤,并提供了示例代码展示如何创建代理对象和处理方法调用。同时分析了动态代理的优势(解耦、灵活性)和限制(仅支持接口代理、性能开销),以及常见应用场景如事务管理、日志记录等。动态代理是一种强大的设计模式,能够在运行时灵活扩展对象功能。原创 2025-12-30 22:58:40 · 501 阅读 · 0 评论 -
公平锁与非公平锁
摘要:公平锁与非公平锁是多线程编程中的两种锁机制。公平锁严格按照线程请求顺序分配锁资源,保证公平性但性能较低;非公平锁允许线程插队获取锁,性能更高但可能导致线程饥饿。公平锁适用于对公平性要求高的场景,非公平锁适合高并发系统。开发者应根据具体需求选择锁类型,在公平性和性能之间做出权衡。示例代码展示了Java中ReentrantLock实现两种锁的方式。原创 2025-11-22 01:23:56 · 359 阅读 · 0 评论 -
InnoDB 缓冲池详解
InnoDB缓冲池是MySQL存储引擎的核心缓存机制,用于缓存数据页和索引页以减少磁盘I/O。它采用LRU算法管理16KB大小的页面,支持预读机制提高性能。合理配置缓冲池大小(建议物理内存的60-80%)、实例数(减少锁争用)和刷新策略(如O_DIRECT)可显著提升性能。通过监控缓存命中率、页面读取次数等指标可以优化数据库运行效率。缓冲池的大小调整、锁争用减少和合适刷新策略是主要优化方向,需根据实际负载和硬件配置进行调整。原创 2025-11-20 16:16:37 · 873 阅读 · 0 评论 -
B+树介绍
B+Tree是MySQL中InnoDB存储引擎的核心索引结构,它是一种平衡多路搜索树,具有高效查询、范围查询和数据集中存储等特点。B+Tree的节点分为内部节点(存储索引键)和叶子节点(存储数据或指针),通过有序链表连接叶子节点支持高效范围查询。相比B-Tree,B+Tree仅叶子节点存储数据,更适合数据库应用。在MySQL中,InnoDB使用B+Tree实现聚簇索引,MyISAM则用于非聚簇索引。优化手段包括减少树高度、使用覆盖索引和提高索引选择性等。原创 2025-11-17 23:58:55 · 1126 阅读 · 0 评论 -
MYSQL中的MVCC详解
MySQL的MVCC机制通过维护数据多版本实现高并发事务处理。InnoDB使用事务ID、隐藏字段(DB_TRX_ID和DB_ROLL_PTR)、Undo Log和Read View来管理数据版本。读操作根据Read View判断版本可见性,写操作更新版本链。MVCC支持读已提交和可重复读隔离级别,提高并发性能但增加存储开销,需定期清理旧版本数据。该机制允许读写并发,确保事务数据一致性,是InnoDB实现高并发的核心技术。原创 2025-11-17 09:13:28 · 598 阅读 · 0 评论 -
ThreadLocal 的底层原理
是 Java 中用于实现线程局部变量的工具类。它为每个线程提供了一个独立的变量副本,使得同一个变量在不同线程中互不干扰,避免了多线程环境下共享变量带来的同步问题。其主要作用包括:线程隔离:确保每个线程都有自己的变量副本,避免线程间的数据竞争。简化编程模型:无需显式传递参数,线程内部可以直接访问变量。资源管理:可以用于管理线程局部的资源,如数据库连接、事务上下文等。原创 2025-11-16 17:09:09 · 675 阅读 · 0 评论 -
指令重排序
指令重排序是编译器和处理器为优化性能对指令顺序的调整,可能导致多线程环境下的并发问题。主要包括编译器重排序和处理器重排序两种类型。虽然能提高性能(减少内存延迟、优化流水线),但会引发内存可见性和原子性问题。解决方法包括:使用volatile防止重排序、synchronized确保原子性,以及利用java.util.concurrent包中的线程安全类。合理使用这些技术能有效避免重排序带来的并发问题。原创 2025-11-16 00:22:12 · 511 阅读 · 0 评论
分享