首页
个人开发
工作相关
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1823
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
作者 【1】 的文章
2025-12-13
如何诊断和解决由大对象分配引发的频繁Full GC问题?
解决频繁Full GC的核心步骤:识别大对象:通过堆转储分析大对象来源调整内存区域:增大老年代或使用G1的Region大小优化代码:避免长期持有大对象引用JVM参数调优:设置-XX:PretenureSizeThreshold直接分配老年代选择回收器:G1/ZGC更适合大对象场景
2025年-12月-13日
5 阅读
0 评论
垃圾回收机制
2025-12-13
设计一个高性能Java NIO非阻塞HTTP服务器并处理半包/粘包问题
核心设计要点:使用Selector实现多路复用,监听OP_ACCEPT/OP_READ/OP_WRITE事件基于Reactor模式分离I/O与业务线程,主线程处理连接,I/O线程池处理读写通过状态机+ByteBuffer解析HTTP请求,处理半包/粘包:定义READ_HEADER、READ_BODY等状态使用compact()方法处理不完整数据包资源管理:ByteBuffer对象池避免GC压力定时器清理空闲连接响应后正确重置状态而非关闭连接
2025年-12月-13日
5 阅读
0 评论
网络编程
2025-12-13
如何通过反射获取类上的注解信息?
通过反射获取类上注解的步骤如下:使用Class.forName()或对象.getClass()获取Class对象调用Class对象的getAnnotation()方法获取特定注解调用isAnnotationPresent()检查注解是否存在通过注解对象获取注解属性值
2025年-12月-13日
5 阅读
0 评论
反射与注解
2025-12-13
设计基于反射和注解的轻量级依赖注入框架
实现要点:定义@Inject注解标记需要注入的字段创建DIContainer类管理Bean生命周期使用反射动态实例化对象并注入依赖实现循环依赖检测机制处理接口的多实现类场景核心代码结构:public class DIContainer { private Map, Class> implementations = new ConcurrentHashMap(); public void register(Class interfaceType, Class implType) {...} public T getInstance(Class type) {...} }
2025年-12月-13日
5 阅读
0 评论
反射与注解
2025-12-13
设计一个支持多种文件格式导出的报表系统
核心设计要点:使用工厂方法模式为每种导出格式(PDF/Excel/CSV)创建独立工厂通过抽象工厂模式处理格式相关的多产品族(如内容+样式)关键选择依据:单一产品扩展 → 工厂方法多关联产品扩展 → 抽象工厂客户端通过统一接口调用,与具体实现解耦
2025年-12月-13日
5 阅读
0 评论
设计模式
2025-12-13
ArrayList 的遍历方式及注意事项
ArrayList 的主要遍历方式:普通 for 循环:通过索引访问元素增强 for 循环:语法简洁,自动处理迭代迭代器 (Iterator):支持安全的删除操作关键注意事项:遍历时直接调用 remove() 会导致 ConcurrentModificationException删除元素时应使用迭代器的 remove() 方法
2025年-12月-13日
5 阅读
0 评论
Java集合框架
2025-12-13
Spring AOP中常用的通知类型有哪些?请简述其执行时机
Spring AOP包含5种核心通知类型:Before Advice:目标方法执行前触发After Returning Advice:目标方法成功返回后触发After Throwing Advice:目标方法抛出异常后触发After (Finally) Advice:目标方法结束后触发(无论成功或异常)Around Advice:包裹目标方法,可控制方法执行
2025年-12月-13日
5 阅读
0 评论
Spring AOP
2025-12-13
设计一个支持任务优先级的多线程文件下载器
实现一个支持任务优先级的多线程下载器需要:使用ThreadPoolExecutor配合PriorityBlockingQueue实现优先级队列自定义Runnable实现Comparable接口定义优先级规则使用CountDownLatch确保所有下载完成后再合并文件正确处理线程中断和IO异常实现文件分块下载和合并逻辑
2025年-12月-13日
5 阅读
0 评论
多线程与线程池
2025-12-13
如何诊断和解决Java应用中由大对象分配导致的内存泄漏问题?
诊断和解决大对象导致内存泄漏的关键步骤:监控GC日志:使用-XX:+PrintGCDetails观察Full GC频率和老年代占用堆转储分析:通过jmap -dump获取堆快照,用MAT/Eclipse Memory Analyzer定位大对象代码审查:检查集合类(如HashMap)、缓存实现和静态字段对大对象的使用解决方案:优化数据结构、采用对象池、调整JVM参数(如-XX:PretenureSizeThreshold)
2025年-12月-13日
5 阅读
0 评论
垃圾回收机制
2025-12-13
设计高性能多线程日志系统:基于NIO实现并发写入与文件滚动分割
核心实现要点:使用FileChannel配合ReentrantReadWriteLock实现线程安全写入采用ByteBuffer双缓冲机制(写入缓冲+刷新缓冲)减少I/O阻塞通过AtomicLong记录文件大小实现无锁滚动检测文件滚动时使用Files.move()原子操作重命名直接内存分配+批量写入策略提升吞吐量
2025年-12月-13日
5 阅读
0 评论
Java IO/NIO
34
35
36
37
38