自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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笔记-11 AQS核心

AQS核心,及ReentrantLock源码解析

2025-03-12 09:16:35 1492

原创 Java-JUC笔记-10 聊聊Synchronized叭

详细介绍了synchronized 的实现原理,锁的升级,使用场景等。

2025-03-10 11:28:33 858

原创 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笔记-5 volatile深入剖析

volatile 是解决多线程并发问题的重要工具,但需根据具体场景选择合适的并发控制机制。

2025-02-19 11:04:32 795

原创 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笔记-2 锁的机制

本笔记详细介绍了Java中的各种锁机制及其应用场景,及多道大厂关于锁的面试题。

2025-02-16 23:13:06 484

原创 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关注的人

提示
确定要删除当前文章?
取消 删除