- 博客(13)
- 收藏
- 关注
原创 Reflection反射(万物皆对象)
Java反射机制是程序在运行时动态分析和操作类信息的能力,通过Class、Constructor、Field和Method四个核心类实现。它支持获取类结构、创建对象、访问字段和调用方法,广泛应用于框架开发(如Spring、Hibernate)和动态代理。虽然功能强大,但反射存在性能开销和安全隐患,使用时应权衡利弊,避免过度依赖。
2025-08-14 00:02:30
553
原创 ThreadLocal
ThreadLocal是Java中的线程局部变量,用于实现线程间数据隔离与线程内数据共享。它以ThreadLocal对象为key,将数据存储在各自线程的ThreadLocalMap中,通过弱引用机制避免内存泄漏。核心特点包括:线程隔离性、线程内共享性、支持多变量存储。常用方法有set()、get()和remove(),其中remove()方法对防止内存泄漏至关重要,特别是在线程池环境中。通过InheritableThreadLocal可实现父子线程数据传递。
2025-08-12 23:16:12
502
原创 线程池的详细讲解
线程池通过池化技术管理线程生命周期,解决频繁创建/销毁线程的性能损耗和资源分配不确定性问题。其核心是线程复用和并发控制,维护固定数量线程处理任务,实现任务提交与执行的解耦。Java提供ThreadPoolExecutor作为标准实现,包含核心线程数、最大线程数、任务队列和拒绝策略等关键参数,执行流程遵循"核心线程→工作队列→非核心线程→拒绝策略"的优先级。线程池具有RUNNING、SHUTDOWN、STOP、TIDYING和TERMINATED五种状态,通过状态机管理生命周期。相比直接创建线程,线程池能降低
2025-08-11 22:45:58
856
原创 ReentrantLock可重入锁
摘要:ReentrantLock是Java提供的可重入锁实现,相比synchronized具有更丰富的功能,包括支持公平/非公平锁、可中断获取、超时机制和多条件变量等。其核心方法包含lock()、tryLock()、unlock()等操作,通过Condition可实现精细的线程等待/唤醒控制。内部采用Sync、NonfairSync和FairSync三个类实现不同的锁策略。与synchronized相比,ReentrantLock提供了更灵活的锁控制,但需要手动管理锁的获取和释放。适用于需要高级同步特性的复
2025-08-07 22:38:01
940
原创 synchronized关键字
摘要: synchronized是Java中实现线程同步的关键字,通过加锁机制保证代码块的原子性。它有三种使用方式:1)修饰代码块,需指定锁对象;2)修饰实例方法,默认使用this对象作为锁;3)修饰静态方法,使用类的Class对象作为锁。同一时刻只有一个线程能持有锁并执行被锁代码,从而确保线程安全。示例展示了通过共享锁对象实现计数器线程安全操作,以及静态方法同步时使用类对象作为锁的用法。
2025-08-05 22:30:51
163
原创 线程的常用方法
本文介绍了Java多线程编程中的几个关键方法:1)join()方法实现线程"插队",控制执行顺序,有阻塞主线程、释放锁等特点;2)interrupt()方法通过中断标志实现线程中断,需配合中断状态检测;3)yield()方法让出CPU执行权,但不保证切换;4)守护线程(setDaemon(true))在用户线程结束后自动终止。文章对比了这些方法与sleep()、wait()的区别,包括锁释放、唤醒条件等特性,并提供了代码示例说明各方法的典型应用场景和使用注意事项。
2025-08-05 19:11:35
563
原创 初学线程--基础
本文系统介绍了操作系统中的进程与线程概念及其在Java中的实现。主要内容包括:1)进程是程序的一次执行过程,线程是进程内的执行单元;2)Java提供Thread类、Runnable和Callable接口三种创建线程的方式;3)线程池技术能提高线程复用效率;4)线程控制方法如命名、休眠和优先级设置;5)现代并发技术如协程和Java19虚拟线程。文章通过代码示例详细演示了多线程编程实现,并对比了并发与并行的区别,为理解操作系统任务调度和Java多线程编程提供了全面指导。
2025-08-04 22:57:51
776
原创 Spring Bean的生命周期
本文详细介绍了 Spring 框架中 Bean 的生命周期全过程,包括实例化、属性赋值、初始化、使用和销毁五个核心阶段。主要内容包括: 三种实例化方式:无参构造器、静态工厂方法和实例工厂方法 三种依赖注入方式:构造器注入、setter注入和注解注入 初始化阶段的完整流程:BeanPostProcessor前置处理、InitializingBean接口回调、自定义init方法等 三种销毁方式:@PreDestroy注解、DisposableBean接口和自定义destroy-method
2025-07-31 22:55:23
1033
原创 MyBatis工作原理
MyBatis是一个轻量级的数据持久化框架,通过XML/注解配置简化JDBC操作。核心组件包括:1)配置加载(mybatis-config.xml)定义数据库连接;2)映射器(Mapper)接口与XML文件绑定SQL语句;3)SqlSessionFactory构建会话工厂;4)SqlSession执行SQL并处理结果映射。其工作流程为:解析配置→创建会话→执行映射SQL→结果转换。支持动态SQL和两级缓存,既保持SQL灵活性又减少样板代码,通过与Spring集成实现线程安全的事务管理。相比全自动ORM框架,
2025-07-25 22:37:19
967
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人