首页
文章列表
标签墙
返回找工具啦
Java
共 83 篇文章
Java 堆外内存DirectBuffer的分配与回收
2026-04-14 06:18:01
Java 堆外内存 DirectBuffer 的分配与回收 Java 堆外内存(OffHeap Memory)是指直接在 JVM 堆之外分配的内存,主要由操作系统管理。使用 DirectBuffer(特别是 DirectByteBuffer)操作堆外内存,可以避免数据在 Java 堆和本地堆之间复制
Java
堆外内存
DirectBuffer
109
0
Java 序列化:Serializable 接口与 ObjectOutputStream
2026-04-13 05:17:13
Java 序列化:Serializable 接口与 ObjectOutputStream Java 序列化机制允许将对象转换为字节序列,以便存储到硬盘或在网络中传输。通过 Serializable 接口和 ObjectOutputStream,开发者可以轻松实现对象的持久化。以下是其具体使用方法与核
Java
序列化
反序列化
103
0
Java 注解处理器在编译期代码生成
2026-04-13 01:19:13
Java 注解处理器在编译期代码生成 Java 注解处理器是编译器的一个插件,它在编译 Java 源代码时运行,扫描特定的注解并生成额外的 Java 源文件或资源文件。这种方式常用于减少样板代码(如 ButterKnife, Glide, EventBus)或在编译期进行代码检查(如 Lint)。本
Java
注解处理器
代码生成
82
0
Java 类加载问题:ClassNotFoundException 类找不到
2026-04-11 19:27:58
Java 类加载问题:ClassNotFoundException 类找不到 ClassNotFoundException 是 Java 开发中最常见的异常之一,它表明 Java 虚拟机(JVM)在运行时试图通过其字符串名称加载类,但在类路径(Classpath)中找不到对应的类定义。解决这个问题通
Java
类加载
异常处理
121
0
Java 内存问题:OutOfMemoryError 内存溢出
2026-04-11 07:19:16
Java 内存问题:OutOfMemoryError 内存溢出 Java 应用程序在生产环境中最常见的崩溃原因之一就是 OutOfMemoryError(OOM)。这通常意味着应用程序试图使用的内存量超过了 Java 虚拟机(JVM)允许的范围,或者内存中存在无法回收的“垃圾”。解决这个问题不需要猜
Java
内存溢出
JVM
137
0
Java 并发编程:线程池与线程安全
2026-04-11 00:22:14
Java 并发编程:线程池与线程安全 在 Java 开发中,多线程是提升性能的利器,但直接使用 new Thread 往往会导致资源耗尽或数据错乱。通过线程池管理线程生命周期,并利用同步机制保证线程安全,是编写高并发程序的必经之路。 一、 创建与管理线程池 频繁创建和销毁线程会消耗大量系统资源。线程
Java
并发编程
多线程
124
0
Java 静态与非静态:static 关键字的使用
2026-04-10 18:25:37
Java 静态与非静态:static 关键字的使用 Java 中 static 关键字的核心在于改变成员(变量、方法、代码块)的归属权。使用 static 修饰的成员不再属于某个具体的对象,而是归属于类本身。理解这一区别是优化内存使用和设计工具类的基础。 1. 核心概念:类层级与对象层级 在内存中,
Java
static关键字
静态变量
104
0
Groovy 与 Java 互操作:无缝调用
2026-04-09 08:19:32
Groovy 与 Java 互操作:无缝调用 Groovy 与 Java 的互操作性是其核心优势之一。由于 Groovy 编译后也是字节码,两者可以在同一个项目中完美混合使用。以下指南将详细介绍如何在不同场景下实现两者的无缝调用。 1. 构建混合项目环境 在开始编码前,必须配置好支持两种语言的构建环
Groovy
Java
互操作
88
0
Java 注解处理器:APT 与自定义注解
2026-04-07 22:23:09
Java 注解处理器:APT 与自定义注解 APT(Annotation Processing Tool)是 Java 编译器提供的一种工具,用于在编译期扫描和处理注解,从而生成新的源代码或辅助文件。通过 APT,你可以将繁琐的重复代码(如 ButterKnife、Dagger 的生成逻辑)交给机器
Java
APT
注解处理器
92
0
Java 网络编程:Socket 与 NIO 对比
2026-04-06 17:22:15
Java 网络编程:Socket 与 NIO 对比 网络编程是 Java 开发中的核心技能,从传统的阻塞式 IO(BIO)到非阻塞式 IO(NIO),底层逻辑决定了应用的性能上限。理解两者的差异与实现步骤,是构建高性能服务的基础。 核心模型差异 传统的 Socket(BIO)采用“一连接一线程”模型
Java
网络编程
Socket
112
0
Java 序列化问题:NotSerializableException 异常
2026-04-06 16:53:55
Java 序列化问题:NotSerializableException 异常 NotSerializableException 是 Java 开发中常见的运行时异常,通常发生在对象序列化阶段。当程序尝试将一个对象转换为字节流(例如写入文件或进行网络传输)时,如果该对象所属的类未正确实现序列化接口,系
Java
序列化
异常处理
91
0
Java 线程问题:线程死锁与线程安全
2026-04-05 23:39:53
Java 线程问题:线程死锁与线程安全 在 Java 多线程编程中,线程死锁与线程安全是两个最核心、也是最容易被忽视的问题。一旦处理不当,你的程序可能会陷入无限等待,或者出现数据错乱、崩溃等严重故障。这篇文章将用最直白的方式,帮你彻底理解这两个问题的本质,并掌握实际的解决方法。 一、线程死锁:程序永
Java多线程
线程死锁
线程安全
87
0
Java 高级特性:反射机制与动态代理
2026-04-05 15:12:18
Java 高级特性:反射机制与动态代理 在 Java 开发中,反射机制与动态代理属于进阶技能。掌握它们,你才能真正理解 Spring、Hibernate 等框架的底层原理,也能写出更灵活、更具扩展性的代码。这篇文章将用最直白的方式,带你彻底搞懂这两个核心概念。 一、反射机制:程序自我的"X光透视"
Java
反射
动态代理
70
0
Java 类路径冲突与依赖树排查
2026-04-04 13:37:04
Java 类路径冲突与依赖树排查 在 Java 项目开发中,类路径(Classpath)冲突是最令人头疼的问题之一。当你看到 ClassNotFoundException、NoSuchMethodError 或 LinkageError 这样的异常时,很可能就遇到了依赖冲突。这类问题隐蔽性强、定位困
Java
类路径冲突
依赖管理
109
0
Java 流处理:Stream API 与 Lambda 表达式
2026-04-03 20:28:20
Java 流处理:Stream API 与 Lambda 表达式 Java 8 引入了 Stream API 和 Lambda 表达式,彻底改变了处理集合数据的方式。传统 for 循环遍历、筛选、转换数据的代码往往冗长且难以维护,而 Stream 提供了一种声明式、链式调用的风格,让逻辑更清晰、代码
Java
StreamAPI
Lambda表达式
87
0
Java 日期处理:LocalDateTime 与 DateTimeFormatter
2026-04-03 17:23:58
Java 日期处理:LocalDateTime 与 DateTimeFormatter Java 8 引入的 java.time 包彻底改变了日期时间的处理方式。其中,LocalDateTime 和 DateTimeFormatter 是最常用的两个类。前者用于表示不含时区的日期和时间,后者用于格式
Java
日期处理
LocalDateTime
134
0
Java 字符串操作:String 与 StringBuilder
2026-04-03 13:30:07
Java 字符串操作:String 与 StringBuilder 在 Java 中处理文本时,你会频繁使用字符串。但 Java 提供了两种主要方式:String 和 StringBuilder。它们看似都能存文字,实际性能和用途差别很大。选错类型可能导致程序变慢甚至卡顿。下面直接告诉你怎么选、怎么
Java
字符串
不可变
128
0
Java类加载机制与自定义ClassLoader实现热部署
2026-04-03 11:52:55
Java类加载机制与自定义ClassLoader实现热部署 Java程序运行时,.class文件需要被加载到JVM中才能执行。这个过程由类加载器(ClassLoader)完成。理解其机制,可以让我们在不重启应用的情况下动态替换代码,实现“热部署”。 一、Java类加载机制基础 JVM使用双亲委派模型
Java
类加载器
双亲委派
124
0
Java 继承与多态:extends 与 @Override
2026-04-03 10:35:03
Java 中的继承与多态是面向对象编程的核心机制。通过 extends 关键字实现类之间的继承关系,通过 @Override 注解明确标识方法重写行为,二者协同工作,使代码具备更强的复用性与扩展性。 理解继承:用 extends 构建父子关系 创建一个父类(也称超类或基类),定义通用属性和行为。 定
Java
继承
多态
100
0
Java 依赖问题:Maven 依赖冲突与版本管理
2026-04-03 05:39:21
Java 依赖问题:Maven 依赖冲突与版本管理 在使用 Maven 构建 Java 项目时,多个依赖库可能间接引入同一个第三方库的不同版本,导致运行时行为异常或编译失败。这种“依赖冲突”是常见痛点。Maven 自带一套依赖调解机制,但有时仍需手动干预。本文提供一套可直接执行的排查与解决流程。 第
Maven
依赖冲突
版本管理
109
0
上一页
1
2
3
4
5
下一页