自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐北辰的博客

软件开发

  • 博客(12)
  • 收藏
  • 关注

原创 面试必问!Java 线程池 7 大核心机制与源码深挖

本文深入解析Java线程池(ThreadPoolExecutor)的核心原理与实现。主要内容包括:线程池通过复用线程降低资源消耗,提高响应速度;详细讲解ThreadPoolExecutor的构造参数(核心线程数、最大线程数、任务队列等)及4种拒绝策略;剖析任务提交流程(先核心线程→入队→非核心线程→拒绝);指出Executors工厂方法的潜在风险(无界队列OOM);分析线程池5种状态(RUNNING/SHUTDOWN/STOP等);结合源码解析execute/addWorker等关键方法;总结常见使用场景(

2025-10-07 15:36:04 644

原创 一文吃透 ThreadLocal:原理、源码、面试题全解析

ThreadLocal是Java提供的线程局部变量机制,每个线程持有变量的独立副本,避免多线程竞争。其核心原理是通过Thread内部的ThreadLocalMap存储数据,以ThreadLocal实例为弱引用key。使用时需注意内存泄漏风险(尤其是线程池环境),典型场景包括线程独享数据、会话管理、数据库连接等。最佳实践包括及时调用remove()、避免存储大对象,并区分其与锁机制的适用场景(隔离 vs 同步)。面试常考察原理、内存泄漏及与InheritableThreadLocal的区别。

2025-10-07 15:29:02 516

原创 面试官最爱问的 synchronized 深挖题,全在这篇里了

synchronized 是 Java 的关键字,用于实现线程同步,提供互斥、可见性和可重入性。它可以修饰实例方法、静态方法和代码块,分别锁定当前实例、类对象和指定对象。在底层通过 monitorenter/monitorexit 指令和对象头实现锁机制,JDK 6+ 引入了偏向锁、轻量级锁和重量级锁的升级优化。相比 ReentrantLock,它更简单但功能较少,适用于大多数同步场景。最佳实践包括减小同步范围、使用专用锁对象和避免嵌套锁。

2025-10-07 15:23:41 560

原创 HTTP vs HTTPS:你必须了解的安全性差异与应用场景

HTTP(超文本传输协议)是明文传输数据的网络协议,默认端口80,存在安全风险。HTTPS(安全超文本传输协议)在HTTP基础上引入SSL/TLS加密层(端口443),通过公钥加密、数字证书认证和哈希校验确保数据安全。

2025-10-04 11:42:06 900

原创 面试必备:`ConcurrentHashMap` 高并发操作原理,瞬间提升面试表现!

ConcurrentHashMap是Java并发编程中的核心数据结构,通过独特设计实现高性能线程安全。JDK 1.7采用分段锁机制,将哈希表划分为16个独立加锁的Segment;而JDK 1.8重构为更精细的桶级别锁,结合CAS操作和synchronized关键字,仅锁定当前操作的节点。该实现通过volatile保证可见性、分片计数器减少竞争、多线程协同扩容等优化技术,在读多写少场景下表现卓越。

2025-10-04 11:40:27 920

原创 你必须知道的TCP和UDP核心区别,快速搞懂这两大协议!

TCP和UDP是传输层两大核心协议。TCP面向连接,通过三次握手建立连接,四次挥手断开,提供可靠传输,适用于网页浏览、文件传输等场景。UDP无连接、不可靠但高效,适合实时音视频、在线游戏等低延迟需求。TCP保证数据完整性但较慢,UDP传输快但不保证可靠性。现代协议如QUIC在UDP上实现了TCP的可靠性。选择协议时需权衡可靠性与实时性,TCP适合数据完整性要求高的场景,UDP则适用于实时性优先的应用。

2025-10-04 11:35:36 863

原创 HashMap深度解剖:你以为的“键值对”远不止那么简单!

HashMap是Java中基于哈希表的键值对存储结构,采用数组+链表+红黑树实现。JDK1.8优化了哈希冲突处理,当链表长度超过8且数组容量≥64时转换为红黑树。通过扰动函数(hashCode高16位异或低16位)提升哈希均匀性,扩容时容量翻倍并优化重哈希过程。HashMap非线程安全,多线程操作可能导致数据不一致或死循环(JDK1.7头插法问题)。使用时应确保键对象不可变,重写equals和hashCode方法,预估容量避免频繁扩容,并发场景推荐ConcurrentHashMap。其设计融合了位运算、泊松

2025-10-03 17:35:57 973

原创 ssh远程连接出现someone counld be eavesdropping on you right now 的错误

ssh上传文件遇到无法上传的错误以及解决方法

2024-07-23 16:27:14 943

原创 MySQL函数(二)

日期和时间处理函数

2022-07-18 19:33:26 245

原创 MySQL函数(一)

trim、as、Concat()

2022-07-18 19:20:37 455

原创 MySQL正则表达式的使用

正则表达式的基础知识,以及如何在MySQL的SELECT语句中通过REGEXP关键字使用它们。

2022-07-13 19:59:41 3867 1

原创 Java反射

反射框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成成分封装为其它对象,这就使反射机制好处:可以在程序运行过程中,操作这些对象 ,可以解耦,提高程序的可扩展性。获取Class对象的方式:Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象多用于配置文件,将类名定义在配置文件中。读取文件,加载类。类名.class:通过类名的属性class获取多用于参数的传递对象.getClass():getClass()方

2021-12-07 07:53:45 161

空空如也

空空如也

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

TA关注的人

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