自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 线程池全面解析:核心原理、参数配置与实践指南

摘要:线程池是并发编程中优化资源利用的核心组件,通过复用线程减少创建销毁开销,提升程序性能。本文系统解析线程池原理、核心参数配置及实践建议。关键点包括:线程池处理流程(核心线程→任务队列→非核心线程→拒绝策略)、7大核心参数说明、3类任务队列对比、4种拒绝策略及5种预置线程池的适用场景。生产环境建议手动配置参数(如IO密集型任务线程数=CPU核心数×2),采用有界队列,并设置监控指标。要避免线程泄漏、任务堆积等风险,根据业务特性定制线程池方案。

2025-09-19 18:00:00 636

原创 UDP协议(用户数据报协议)详细知识点

UDP是一种无连接、不可靠但高效的传输层协议,适用于对时延敏感的应用场景。其核心特性包括无连接通信、不保证数据可靠性、无拥塞控制、固定8字节头部和面向数据报传输。UDP常用于实时通信(如视频会议)、网络游戏、DNS查询和组播应用。与TCP相比,UDP具有更低的延迟和开销,但缺乏可靠性保障。在实际应用中,可通过Java等编程语言实现UDP通信,如示例代码展示了简单的UDP客户端/服务器端交互。对于需要可靠性的场景,可在应用层实现补充机制。

2025-09-19 11:42:32 747

原创 TCP协议的详解

TCP协议是面向连接的可靠传输协议,通过三次握手建立连接、四次挥手断开连接。其核心特性包括:1)可靠传输机制(确认应答、超时重传、快速重传);2)流量控制(滑动窗口调节发送速率);3)拥塞控制(慢启动、拥塞避免等算法)。TCP报文首部包含源/目的端口、序列号、确认号、控制位(SYN/ACK/FIN等)、窗口大小等关键字段,通过20-60字节的首部实现精细的传输控制。该协议通过序列号保证数据有序性,利用窗口机制实现高效传输,同时采用校验和确保数据完整性,为上层应用提供可靠的字节流服务。

2025-09-18 18:00:00 1097

原创 HTTP与HTTPS协议的工作原理

HTTP协议是用于浏览器与服务器之间传输超文本数据的应用层协议,采用请求-响应模式,默认端口80。通信过程包括建立TCP连接、发送HTTP请求报文、服务器处理并返回响应报文。HTTP报文包含请求行/状态行、首部字段和内容主体,支持GET/POST等多种请求方法。HTTP是无状态协议,通过URL定位资源,使用状态码表示请求结果。为提高性能,HTTP/1.1支持长连接和管线化技术。HTTPS在HTTP基础上加入SSL/TLS加密层,通过数字证书验证身份,采用对称与非对称加密结合的方式保障通信安全。两者主要区别在

2025-09-18 10:03:20 482

原创 计算机网络

互联网是全球性的计算机网络系统,由多个网络互联而成,遵循TCP/IP协议实现全球通信。其核心特点包括:1)全球互联,打破地理限制;2)基于TCP/IP协议(TCP保证可靠性,IP负责寻址);3)资源共享与交互。互联网由硬件设施(路由器、光纤等)、网络层次(骨干网/城域网/接入网)、关键基础设施(DNS、数据中心)和各类应用服务组成。采用分层的TCP/IP四层模型(应用层、传输层、网络层、网络接口层)实现复杂通信功能,每层各司其职,通过协议和接口协同工作。

2025-09-17 18:00:00 781

原创 Java反射机制全面解析

Java反射机制是运行时动态操作类与对象的核心特性,通过Class、Field、Method等核心类实现类结构解析、对象实例化、字段访问和方法调用。典型应用包括框架开发(如Spring)、动态代理和注解处理。虽然反射增强了灵活性,但存在性能损耗(比直接调用慢10-100倍)、安全隐患和代码可读性问题。建议通过缓存反射对象、限制私有访问等优化手段,在框架开发等必要场景谨慎使用。反射是Java高级编程的双刃剑,需权衡动态能力与系统稳定性。

2025-09-17 10:29:02 241

原创 JVM工具全景指南

摘要:本文系统梳理了JVM监控诊断工具链,从JDK命令行工具到图形化分析平台。第一部分介绍jps、jstat、jstack等基础命令行工具的使用场景;第二部分讲解jconsole、VisualVM等图形化工具;第三部分推荐MAT、Arthas等高级诊断方案;最后提供问题诊断流程和容器环境实践建议。全文重点解析各类工具的核心功能与适用场景,帮助开发者快速定位CPU、内存、线程等线上问题,并强调生产环境使用注意事项。(150字)

2025-09-16 18:45:00 940

原创 JVM参数终极指南

本文系统梳理了JVM核心参数配置,从内存管理、垃圾回收、监控诊断三大维度展开。重点解析了堆内存(-Xms/-Xmx)、新生代(-Xmn)、元空间(-XX:MetaspaceSize)等关键内存参数,对比了SerialGC、ParallelGC、G1GC等不同回收器的特性及适用场景。文中强调必须配置GC日志(-Xloggc)和OOM堆转储(-XX:+HeapDumpOnOutOfMemoryError),并提供了典型场景的参数组合示例。最后指出调优应基于监控数据,避免盲目设置参数,特别是在容器化环境中需注意J

2025-09-16 14:15:20 901

原创 JVM垃圾回收机制详解

垃圾回收(GC)是编程语言中自动管理内存的机制,通过识别并回收不再使用的对象来避免内存泄漏。核心算法包括引用计数法和可达性分析,后者通过GCRoots判断对象存活状态。Java采用分代回收策略,将堆分为新生代(使用标记-复制算法)和老年代(使用标记-清除/整理算法)。常见垃圾回收器如SerialGC(单线程)、ParallelGC(多线程)、CMS(低延迟)和G1(兼顾吞吐量和延迟)。三色标记法(白、灰、黑)用于高效追踪对象状态。GC在保证内存安全性的同时,需平衡回收效率与程序性能。

2025-09-15 19:00:00 1998

原创 Java内存模型的详解

Java内存管理依托JVM自动机制,降低内存风险但需了解内存结构才能高效排查问题。JVM运行时内存分为线程共享区(堆、元空间)和私有区(栈、程序计数器)。堆是GC核心区域,采用分代回收机制(新生代/老年代)。JDK1.8用元空间替代方法区,避免内存溢出。字符串常量池实现字符串复用,intern()方法可手动控制复用。理解这些内存机制是解决内存问题的关键前提。

2025-09-15 14:22:23 1301

原创 深入理解Java类加载机制

摘要:JVM类加载机制包括加载、验证、准备、解析和初始化5个阶段。加载阶段将字节流转换为方法区数据结构并生成Class对象;验证阶段确保字节流符合规范;准备阶段为静态变量分配内存并设零值;解析阶段将符号引用转为直接引用;初始化阶段执行类构造器方法。双亲委派模型通过启动类、扩展类和应用程序类三级加载器的协作,确保核心类库的安全性和避免重复加载,是JVM类加载的核心机制。

2025-09-13 21:30:00 671

原创 Java虚拟机(JVM)基础概念详解

JVM(Java虚拟机)是Java跨平台特性的核心,负责执行字节码文件。其核心架构包括线程私有的程序计数器、虚拟机栈和线程共享的堆、方法区。堆存放对象实例,是垃圾回收的主要区域;方法区存储类信息;栈用于方法执行。JVM通过类加载、解释执行和即时编译(JIT)实现高效运行,自动管理内存分配与回收,使开发者无需手动处理内存。这种"一次编写,到处运行"的设计是Java生态的基石。

2025-09-13 16:55:56 963

原创 CAS(Compare-And-Swap,比较并交换)详解

CAS(比较并交换)是一种无锁同步机制,通过原子操作实现多线程环境下的变量安全访问。其核心原理是比较内存值、预期值和新值,仅当匹配时才更新。CAS避免了锁的开销,适用于读多写少场景,但存在ABA问题、自旋开销和单变量限制等不足。解决方案包括版本号机制和封装对象等。CAS广泛应用于原子类、并发容器等领域,是Java并发编程的重要基础技术之一。

2025-09-12 09:39:24 626

原创 深入剖析Java线程局部变量:ThreadLocal的核心原理与正确实践

特性。

2025-09-11 16:36:05 1080

原创 ReentrantLock的核心原理与最佳实践

Java并发编程中,ReentrantLock提供了比synchronized更强大的锁机制。它具有可重入性、支持公平/非公平锁、可中断获取锁、定时获取锁和多个条件变量等特性。底层基于AQS实现,通过state变量和CLH队列管理锁状态和线程排队。使用时需注意在finally中释放锁,避免死锁。相比synchronized,ReentrantLock在需要高级功能时更具优势,但synchronized在简单场景下性能更好且更安全。开发者应根据具体需求选择合适的锁机制。

2025-09-11 16:13:44 1307

原创 深入剖析 Java 中的线程安全单例模式:原理、实现与最佳实践

实现方式线程安全懒加载性能防止反射/序列化攻击推荐度。

2025-09-09 23:32:05 918

原创 Java synchronized 关键字全面解析

在多线程编程中,当多个线程同时访问共享资源时,可能会发生数据不一致的问题。Java 提供了 synchronized关键字来实现线程同步,确保在同一时刻只有一个线程可以访问特定的代码段或对象。是 Java 中最基本且最常用的线程同步机制,它提供了内置的锁机制,能够有效解决多线程环境下的竞态条件问题。锁状态偏向锁标志(biased_lock)锁标志位(lock)Mark Word 存储内容无锁001哈希码、分代年龄偏向锁101线程 ID、epoch、分代年龄轻量级锁-(无效)00。

2025-09-09 14:06:05 1205

原创 JUC 核心并发集合深度剖析

集合类底层结构并发控制方式核心特性适用场景volatile 数组写时复制 + ReentrantLock读无锁,写复制读多写少、弱一致性需求基于 CopyOnWriteArrayList委托 CopyOnWriteArrayList元素唯一、读多写少唯一元素存储、弱一致性需求数组 + 链表 / 红黑树高并发键值对、锁粒度细分布式缓存、会话存储固定数组单 ReentrantLock + Condition有界、性能稳定固定容量任务缓冲、限流单向链表。

2025-09-05 12:59:20 710

原创 Java线程

Java线程提供了强大的并发编程能力,但也带来了复杂性。掌握线程的创建、生命周期管理、同步机制和线程间通信是编写高效、安全并发程序的关键。通过合理使用线程池、线程安全集合和原子操作类,可以大大提高程序的性能和可靠性。

2025-09-01 17:56:50 392

原创 JAVA基本锁总结

适用于单线程重复获取锁的场景,默认开启(JDK 6+)。

2025-08-12 18:34:13 594

原创 MyBatis基本工作原理

MyBatis是一个持久层框架Q,它封装了JDBC,并通过XML配置文件或注解定义SQL语句,使得开发人员可以直接编写SQL语句,而无需过多关心JDBC的底层细节。MvBatis通过映射器(Mapper)接口与XML配置文件或注解来定义SQL语句与Java对象之间的映射关系。2.通过建造者模式来 构建复杂的对象完成SqlsessionFactory的创建意思就是说就是主配置文件的流对象构建一个会话工厂对象。而且还用到了建造者模式--->大致意思就是要创建某个对象不直接new这个对象而是利用其它的类来创

2025-07-26 16:28:43 594

原创 StringBuffer和StringBuilder的扩容机制

StringBuffer和StringBuilder的扩容机制

2025-01-20 01:20:06 345

空空如也

空空如也

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

TA关注的人

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