- 博客(14)
- 收藏
- 关注
原创 算法之常见八大排序
本文介绍了8种经典排序算法的实现原理和Java代码示例。算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和桶排序。每种算法都有简明的工作原理说明,如冒泡排序通过相邻元素比较交换,快速排序采用分治策略等。文中提供了完整的Java实现代码,包含性能测试方法,可直观比较各算法的执行效率。这些排序算法涵盖了从O(n²)到O(nlogn)不同时间复杂度的实现,适合不同场景下的排序需求。
2025-09-08 10:46:03
427
原创 Java-JUC笔记-线程池设置核心参数大小
确定线程池的核心线程数(corePoolSize)和最大线程数(maximumPoolSize)需要结合具体业务场景、任务类型和系统资源进行权衡。-Xss。
2025-03-12 09:19:00
687
1
原创 Java-JUC笔记-9 对象内存布局
在64位系统中,Mark Word占了8个字节,类型指针占了8个字节,一共是16个字节。(Padding)。如果是数组、集合类型对象,对象头中会再多一个Length。
2025-03-06 11:24:57
312
原创 Java-JUC笔记-8 ThreadLocal核心要点
1. 定义ThreadLocal 是 Java 提供的线程级变量隔离机制,通过为每个线程创建变量的独立副本,实现线程封闭(Thread Confinement),解决多线程共享资源时的竞争问题。2. 核心价值无锁化线程安全:避免使用或Lock,以空间换时间提升并发性能。隐式传参:跨方法、跨类传递线程上下文信息(如用户身份、事务ID),避免接口污染。3. 经典应用场景Spring 事务管理(用户会话存储(数据库连接池(线程绑定 Connection)4. 核心API。
2025-02-28 16:15:51
842
原创 Java-JUC笔记-7 原子操作类
原子类:解决多线程环境下非原子操作导致的数据不一致问题,基于CAS(Compare And Swap)实现非阻塞同步,性能高于。核心原理:CAS + volatile变量(保证可见性CAS通过Unsafe类调用底层CPU指令实现原子操作。CAS缺点ABA问题(用版本号解决)自旋消耗CPU(LongAdder优化)只能保证单个变量原子性选型策略简单操作 → AtomicXXX高并发统计 → LongAdder对象属性修改 → FieldUpdater。
2025-02-28 14:00:22
1982
原创 Java-JUC笔记-6 cas
CAS 是一种高效且无锁的并发控制技术,适用于需要高并发性能的场景。它通过比较和交换的方式确保共享变量的原子性更新,避免了传统锁机制带来的开销和复杂性。然而,开发者需要注意 ABA 问题,并根据具体需求选择合适的解决方案。
2025-02-20 17:45:01
1763
原创 Java-JUC笔记-4 Java内存模型
本笔记详细介绍了Java内存模型(JMM)及其三大特性(原子性、可见性和有序性),并通过具体的代码示例展示了如何在实际编程中应用这些特性。特别强调了happens-before先行发生原则的重要性,解释了其总原则及具体的八条规则。希望这份笔记能帮助你更好地理解和应用JMM,提升多线程编程的能力。
2025-02-18 14:09:30
732
原创 Java-JUC笔记-3 线程中断机制与LockSupport
线程中断机制:通过 interrupt()、interrupted()、isInterrupted() 实现线程的协作式中断。LockSupport:提供更灵活的线程阻塞和唤醒机制,无需锁支持。线程等待唤醒机制:wait()/notify()、Condition、LockSupport 三种方式各有优劣,适用于不同场景。
2025-02-18 14:05:57
668
原创 Java-JUC笔记-1 CompletableFuture
Future 的阻塞和轮询方式与异步编程理念相违背,JDK 8 引入 CompletableFuture。提供了函数式编程、函数回调、异步编排、比较任务的计算速度等功能。
2025-02-14 16:48:41
816
原创 用户态与内核态
这种切换开销较大,因为它涉及到操作系统层面的处理,包括上下文保存与恢复,以及可能的线程调度。在操作系统中,"用户态"(User Mode)和"内核态"(Kernel Mode)是CPU执行程序时的两种不同权限级别,它们定义了程序运行时可以访问的资源和执行的指令范围。的性能已经有了显著提升,能在很多情况下避免昂贵的内核态切换,从而提高并发性能。用户态下,程序权限有限,只能执行基本操作;锁提到的“牵扯到了用户态和内核态的切换,效率不高”,主要是因为在某些情况下(尤其是早期的Java版本或特定的使用场景中),
2024-06-20 16:41:13
662
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人