
Java
文章平均质量分 70
Java干货分享,基础+进阶,从入门到入土,助力你轻松拿高薪!
五道书童
随心所欲,想发就发
展开
-
IntelliJ IDEA 中一键收起方法内部的实现代码
【代码】IntelliJ IDEA 中一键收起方法内部的实现代码。原创 2025-04-30 09:45:00 · 470 阅读 · 0 评论 -
Java中高效判断字符串是否在List中(忽略大小写)
优点查询时间复杂度O(log n)保持元素有序缺点比HashSet稍慢同样需要预处理。原创 2025-04-29 09:00:00 · 298 阅读 · 0 评论 -
Java中Type 类的作用
TypeType。原创 2025-04-25 23:58:57 · 168 阅读 · 0 评论 -
正则表达式超详细教程
正则表达式(Regular Expression,简称。原创 2025-04-22 10:45:00 · 665 阅读 · 0 评论 -
Java中List.sort()自定义排序规则
int age;// 构造方法、getter/setter省略// 按年龄排序// 按年龄降序// 多条件排序:先按姓名,再按年龄。原创 2025-04-19 09:45:00 · 510 阅读 · 0 评论 -
组合模式(Composite Pattern)详解
组合模式是一种结构型设计模式,它允许你将对象组合成来表示"部分-整体"的层次结构,使得客户端可以单个对象和组合对象。原创 2025-04-22 12:15:00 · 237 阅读 · 0 评论 -
Java中使用异步IO的终极指南
Java 提供了多种异步 I/O 的实现方式,主要包括 NIO.2 (AsynchronousFileChannel) 和 NIO (Selector),下面我将详细介绍各种用法和最佳实践。原创 2025-04-21 08:30:00 · 899 阅读 · 0 评论 -
IO(输入输出)详解
I/O 是信息处理系统(如计算机)与外部世界(包括存储设备、网络、用户界面等)进行数据交换的过程。原创 2025-04-19 08:45:00 · 787 阅读 · 0 评论 -
IDEA的Debug调试按钮功能详解
在 IntelliJ IDEA 中进行 Debug 调试时,调试工具栏提供了一系列按钮,每个按钮都有特定的功能。原创 2025-04-16 23:58:08 · 979 阅读 · 0 评论 -
Java.lang.OutOfMemoryError GC Overhead Limit Exceeded错误分析与解决
这个错误表示Java虚拟机(JVM)在垃圾回收(GC)上花费了过多时间(超过98%的CPU时间)却只能回收很少的内存(少于2%的堆空间)。原创 2025-04-14 09:00:00 · 897 阅读 · 0 评论 -
【 工厂模式详细教程】
—模式—|———————特点———————|————适用场景————|| 简单工厂 | 一个工厂类,通过参数创建不同产品 | 产品较少,不频繁变化 || 工厂方法 | 一个抽象工厂,多个具体工厂 | 需要扩展新产品 || 抽象工厂 | 一个抽象工厂创建多个产品族 | 需要创建相关产品对象 |工厂模式的核心思想是将对象的创建与使用分离,降低系统的耦合度,使两者修改起来都相对容易。在实际开发中,应根据具体需求选择合适的工厂模式。原创 2025-04-09 10:45:00 · 648 阅读 · 0 评论 -
高并发系统设计的注意事项
实现高并发系统时,需要考虑多方面的因素以确保系统的稳定性、性能和可扩展性。原创 2025-04-09 11:00:00 · 277 阅读 · 0 评论 -
什么是哈希表
哈希表是一种高效的数据结构,用于存储键值对(key-value pairs)。它通过哈希函数将键(key)映射到表中的特定位置来实现快速的数据访问。原创 2025-04-06 08:30:00 · 274 阅读 · 0 评论 -
Java服务高并发性能优化排查指南
当Java服务在低并发时响应迅速,但高并发时性能急剧下降时,可能是由多种因素导致的。原创 2025-04-04 09:15:00 · 886 阅读 · 0 评论 -
Java高并发实现方案详解
选择哪种方案取决于具体场景:计算密集型任务适合多线程,I/O密集型任务适合异步非阻塞处理,分布式系统则需要考虑集群方案。原创 2025-04-04 08:45:00 · 325 阅读 · 0 评论 -
LinkedHashSet 类详解
是 Java 集合框架中的一个重要类,它继承自HashSet并实现了Set接口。下面我将从多个方面详细讲解。原创 2025-04-03 09:00:00 · 317 阅读 · 0 评论 -
HttpPost设置param参数方法
在HTTP POST请求中,参数可以通过几种不同的方式传递,具体取决于服务器端的接收方式。原创 2025-04-02 09:15:00 · 604 阅读 · 0 评论 -
如何使用IntelliJ IDEA进行远程调试服务
远程调试是开发过程中非常有用的功能,允许你将本地IDE连接到远程运行的服务进行调试。原创 2025-03-31 09:30:00 · 769 阅读 · 0 评论 -
JDK动态代理为何只能代理interface接口
在Spring等框架中,这种限制通过组合模式得到了很好的解决(接口代理+委托模式),这也是为什么Spring推荐面向接口编程的重要原因之一。JDK动态代理是通过。原创 2025-03-27 09:30:00 · 281 阅读 · 0 评论 -
Java线程池的默认的拒绝策略
在 Java 中,如果没有显式设置拒绝策略(RejectedExecutionHandler),线程池(ThreadPoolExecutor)会使用。原创 2025-03-27 08:45:00 · 243 阅读 · 0 评论 -
【重生之23种设计模式修炼手册】
定义: 提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。结构接口: 声明创建一系列产品的方法。类: 实现接口,创建具体产品。接口: 定义产品的接口。类: 实现接口的具体产品。示例代码void use();void use();应用场景: 跨平台 UI 库、数据库访问库等需要创建一系列相关对象的场景。理解核心思想:掌握设计原则和模式分类。刻意练习:通过小项目和重构练习模式。分析真实场景:在实际项目中识别和应用模式。持续学习:阅读源码、书籍和参与开源项目。原创 2025-03-13 10:30:00 · 942 阅读 · 0 评论 -
Java中Optional的主要作用
Optional是 Java 中处理null值的有效工具,能够减少的发生,并提升代码的可读性和健壮性。然而,使用时需注意场景,避免滥用。原创 2025-03-17 14:02:00 · 563 阅读 · 0 评论 -
哈希表扩容时元素的索引如何变化
这是因为哈希表的扩容是基于二次幂的。在计算索引时,通常使用哈希值与表大小减一(掩码)进行按位与操作。原表大小 ( 8 ),掩码为 ( 7 )(二进制0111新表大小 ( 16 ),掩码为 ( 15 )(二进制1111如果哈希值的二进制形式是...0101在原表中,索引计算为(即 ( 5 ))。在新表中,索引计算为(即 ( 5 )),或者如果高位有变化,可能是1101(即 ( 13 ))。因此,元素在新表中的位置要么是原索引 ( 5 ),要么是 ( 5 + 8 = 13 )。原创 2025-03-17 10:22:14 · 664 阅读 · 0 评论 -
【重生之Java零基础快速入门】
Java是一种面向对象的编程语言,由Sun Microsystems于1995年发布。希望这份详细的教程能帮助你快速入门Java编程!如果有任何问题,欢迎随时提问!原创 2025-03-10 15:06:33 · 1575 阅读 · 0 评论 -
【HashMap源码中的threshold变量】
threshold用于控制HashMap的扩容时机,确保在元素数量达到一定比例时进行扩容,以维持性能。原创 2025-03-12 14:33:33 · 241 阅读 · 0 评论 -
【Java中的transient关键字】
transient关键字用于阻止变量被序列化,适用于不需要持久化或传输的数据。原创 2025-03-10 13:55:09 · 308 阅读 · 0 评论 -
Java中如何获取本机IP
对于大多数简单场景,使用是最简单和直接的方式。如果你需要更细粒度的控制或处理多个网络接口,可以使用类。原创 2025-03-17 14:53:45 · 856 阅读 · 0 评论 -
ConcurrentHashMap源码详解
是 Java 并发包 () 中的一个线程安全的哈希表实现。它通过分段锁(Segment)和 CAS(Compare-And-Swap)操作来实现高效的并发访问。以下是对 源码的详细解析。 内部由一个数组组成,数组的每个元素是一个 或 (在 Java 8 中引入了红黑树来优化链表过长的情况)。每个 包含键值对,并且可能指向下一个节点(链表结构)。2. 分段锁机制在 Java 7 中, 使用了分段锁(Segment)来实现并发控制。每个 是一个独立的哈希表,拥有自己的锁。这样,不同的线程可以同时访问原创 2025-03-18 11:03:48 · 548 阅读 · 0 评论 -
Java有哪些性能分析工具可以找出耗时函数
根据你的需求和环境,选择合适的工具和方法来找出耗时函数。对于生产环境,推荐使用 JFR 或 Async Profiler;对于开发环境,JProfiler 和 VisualVM 是不错的选择。原创 2025-03-19 14:16:52 · 653 阅读 · 0 评论 -
Java使用jdk的VisualVM分析代码性能
通过这些步骤,你可以使用VisualVM找出并优化Java应用中的性能瓶颈。原创 2025-03-19 13:47:46 · 303 阅读 · 0 评论 -
Java中Lock和Condition用法详解
Lock提供了比更灵活的锁机制,支持尝试获取锁、超时获取锁、可中断获取锁等操作。是Lock接口的一个实现类,支持可重入锁。tryLock()和方法允许尝试获取锁,避免线程阻塞。Condition接口用于线程间的协调,类似于wait()和notify(),提供了比wait()和notify()更灵活的线程协调机制,支持多个条件队列。Lock和Condition通常结合使用,以实现复杂的线程同步机制,如生产者-消费者问题。Lock的优势提供更灵活的锁控制(可重入、可中断、超时、公平锁)。原创 2025-03-20 08:45:00 · 897 阅读 · 0 评论 -
垃圾回收GC算法过程解释
垃圾回收(Garbage Collection, GC)算法展示:在这个阶段,GC会标记所有从根对象出发可以访问到的对象(A、B、C、D、E)。在这个阶段,GC会回收那些没有被标记的对象(F、G)。在这个阶段,GC会将所有存活的对象移动到内存的一端,以便后续分配内存时更加高效。示意图总结这个示意图展示了GC算法的基本流程:标记存活对象、清除不可达对象、整理内存(可选)、分配新内存。每种算法都有其优缺点,适用于不同的场景。原创 2025-03-19 08:59:21 · 252 阅读 · 0 评论 -
Java的Lock和Condition实战:手写生产者-消费者
【代码】Java的Lock和Condition实战:手写生产者-消费者。原创 2025-03-20 09:00:00 · 194 阅读 · 0 评论 -
Java有哪些加锁方式
简单易用,适合大多数场景。:提供更多功能,如可中断锁、超时锁等。:适合读多写少的场景。:性能更高,适合复杂场景。Semaphore:控制资源访问数量。Condition:用于线程间协调。Atomic类:无锁同步,适合简单操作。:底层线程阻塞和唤醒工具。根据具体需求选择合适的加锁方式。原创 2025-03-19 13:49:20 · 640 阅读 · 0 评论 -
JVM(Java虚拟机)详解
Java虚拟机(JVM)是Java平台的核心组件之一,它负责执行Java字节码。JVM提供了一个与硬件和操作系统无关的运行环境,使得Java程序可以在不同的平台上运行。JVM的主要功能包括加载字节码、解释或编译字节码为机器码、管理内存、执行垃圾回收等。JVM的设计目标是提供一个高效、稳定、安全的运行环境。为了实现这一目标,JVM采用了多种技术,如即时编译(JIT)、垃圾回收(GC)、内存管理等。JVM是Java平台的核心组件,它负责执行Java字节码,并提供了内存管理、垃圾回收、线程管理等功能。原创 2025-03-19 08:58:11 · 977 阅读 · 0 评论