自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 大厂二面挂了!面试官:谈谈并发锁synchronized的优化,了解膨胀升级过程么?

摘要:本文深入分析了Java中synchronized锁的优化机制,包括锁粗化、锁消除、偏向锁、轻量级锁和重量级锁的升级过程。通过JOL工具展示了对象头结构,详细说明了64位JVM下对象的内存布局。文章还通过实际代码示例对比了锁消除前后的性能差异,并提供了JVM参数配置建议。最后针对Client版本JDK的配置报错问题给出了解决方案。这些优化策略使synchronized在并发性能上已接近Lock接口的表现。

2026-02-02 07:30:00 719

原创 面试官:谈谈并发锁synchronized原理,为什么唤醒使用notifyAll()而不是notify()?

并发锁与synchronized机制摘要 并发锁是多线程环境中的同步机制,用于控制共享资源访问。synchronized是Java内置锁,基于Monitor监视器机制实现,依赖操作系统互斥原语。每个Java对象都关联一个ObjectMonitor结构,包含关键属性如_recursions(重入次数)、_owner(持有线程)、_EntryList(入口队列)、_WaitSet(等待队列)和_cxq(竞争队列)。synchronized通过这两个队列管理线程竞争:未获锁线程进入_cxq/EntryList,调

2026-01-30 14:28:00 834

原创 面试官:谈谈对Java的线程理解,WAITING与BLOCKED状态有什么的区别?

本文系统梳理了线程生命周期相关知识,主要包含以下内容: 系统线程的5种状态(初始、可运行、运行、阻塞、终止)及其转换条件 Java线程的6种状态(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)及其特点 Java线程创建方式(继承Thread类和实现Runnable接口) Java线程与系统线程的一对一映射关系 重点区分了阻塞状态(BLOCKED)和等待状态(WAITING/TIMED_WAITING)的差异 总结了WAITING和BLOCKED的

2026-01-28 07:30:00 2138

原创 让AI成为你的免费动画师:个人IP动画低成本量产全攻略

AI技术正迎来打造个人IP的黄金时代,其核心优势在于:大幅降低创作门槛,将创作者从繁琐工作中解放出来,实现"一人千面"的内容矩阵。通过四个简单步骤即可完成IP角色设计:首先使用豆包AI工具,根据提示词生成基础形象(如Q萌男生形象);然后对初稿进行精细调整(如修改表情、发型等细节)。整个过程虽然需要耐心调试,但AI大大简化了传统创作流程,让每个人都能轻松实现独特的创意构想。AI工具正在打破行业壁垒,帮助创作者将脑海中的想法快速转化为现实。

2026-01-26 07:30:00 360

原创 大厂二面挂了!问 “ThreadLocal 为什么内存泄漏”,我背了弱引用,面试官:那为什么内存还是会溢出?

ThreadLocal是Java提供的线程本地变量机制,通过为每个线程创建独立变量副本来实现线程安全。其核心设计是每个Thread维护自己的ThreadLocalMap,以ThreadLocal实例为key存储变量值。这种结构相比早期设计提升了查询效率,并优化了内存回收。ThreadLocalMap采用线性探测法处理哈希冲突,通过CAS保证线程安全。但需注意Entry使用弱引用可能引发内存泄漏问题,建议及时调用remove()方法清理资源。典型应用包括数据库连接管理、事务上下文传递等场景。

2026-01-24 08:00:00 1628

原创 Java性能优化实战之并发编程

并发编程是通过同时处理多个任务来提升系统性能的编程范式。其核心优势包括:加快响应速度(如多线程下载)、实现代码模块化与异步化(如拆分邮件通知功能),以及充分利用多核CPU资源。并发通过单核CPU快速切换线程实现"同时"执行,而并行则依靠多核CPU真正同时处理任务。虽然线程能显著提升性能,但需注意并非所有场景都适用。合理使用并发编程可优化资源利用率,提高系统吞吐量和响应速度,是现代高性能系统开发的关键技术。

2026-01-17 21:24:44 703

原创 深入理解进程和线程的区别

本文系统阐述了进程与线程的核心概念及其区别。进程是操作系统资源分配的基本单位,拥有独立内存空间;线程则是CPU调度的最小单位,共享进程资源。文章详细分析了二者的运行机制、通信方式和资源管理特点,并通过实例说明线程在程序中的具体应用。同时探讨了CPU核心数与线程数的关系,区分了并发(时间片轮转)和并行(多核同步执行)的本质差异,并针对I/O密集型和计算密集型任务提出了相应的优化策略。全文从底层原理到实际应用,完整呈现了现代操作系统中的多任务处理机制。

2026-01-16 07:00:00 871

AutoMapper和表达式条件的实体映射(DDD的使用)

在领域驱动设计中,我们需要用到实体映射,但是实体映射的查询条件怎么映射呢?这里是用AutoMapper和表达式的实体映射解决条件映射的问题代码

2019-06-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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