- 博客(42)
- 收藏
- 关注
原创 关于 ExecutorService 和 ThreadPoolExecutor 的详细说明及示例,涵盖核心概念、线程池类型、参数配置、生命周期管理及实战案例
java复制System.out.println("任务被拒绝: " + r.toString());java复制queue,new ThreadPoolExecutor.CallerRunsPolicy() // 队列满时由提交线程执行i < 20;i++) {System.out.println("执行任务 " + taskId + ",线程:" + Thread.currentThread().getName());try {});。
2025-06-08 08:30:00
547
原创 synchronized 关键字 和 Lock 接口(ReentrantLock) 的详细说明及示例,涵盖核心概念、使用场景、代码实现及两者对比
:简单易用,适合基础同步场景,但灵活性有限。Lock:功能丰富,适合复杂场景(如公平锁、多条件队列),但需手动管理锁。选择原则:优先使用(代码简洁)。需要高级功能时选择Lock(如公平性、超时、多条件)。
2025-06-08 08:00:00
389
原创 关于 Thread 与 Runnable 以及 线程生命周期 的详细说明与示例
Thread 与 Runnable:Runnable 更灵活,推荐使用;Thread 适合直接控制线程行为。线程生命周期:重点关注 新建 → 就绪 → 运行 → 终止,以及 阻塞 状态的触发条件。核心方法:start()启动线程,run()定义任务,sleep()和join()控制流程。最佳实践优先使用Runnable+ 线程池(如避免直接调用长时间阻塞。处理中断异常(),确保线程优雅退出。
2025-06-07 19:15:00
641
原创 Checked Exception 和 Unchecked Exception 的详细对比与示例说明,涵盖核心概念、继承关系、使用场景及最佳实践
必须处理:在方法内抛出时,必须在方法签名中声明(throws),或在方法内部捕获(try-catch可恢复性:通常表示外部环境问题,可通过重试、回退等操作恢复。Java API 示例。无需强制处理:编译器不强制要求捕获或声明。不可恢复性:通常是程序逻辑错误,需通过修复代码解决。Java API 示例。当需要明确业务语义时,自定义 Unchecked Exception。java复制// 自定义业务异常(Unchecked)
2025-06-07 18:30:00
625
原创 Java 异常处理 的详细说明及示例,涵盖 try-catch-finally、自定义异常、throws 与 throw 的核心概念和使用场景
业务语义化:表达特定业务错误(如用户年龄非法)。异常分类:区分不同场景的异常,提高代码可读性。java复制// 自定义检查型异常super();// 自定义非检查型异常java复制throw new InvalidAgeException("年龄不能为负数");// 其他注册逻辑// 调用方处理异常try {System.out.println("注册失败: " + e.getMessage());:确保资源释放和异常处理,
2025-06-06 19:15:00
685
原创 JUnit 和 Mockito 的详细说明及示例,涵盖核心概念、常用注解、测试场景和实战案例。
JUnit:核心是编写可重复的自动化测试,通过断言验证逻辑正确性。Mockito:通过模拟依赖隔离被测对象,支持复杂场景的单元测试。最佳实践:测试粒度小,聚焦单一功能。使用初始化测试环境。避免过度模拟,优先测试真实逻辑。应用场景JUnit:所有单元测试的基础框架。Mockito:依赖外部服务或复杂对象的场景(如数据库、API 调用)。
2025-06-06 19:00:00
882
原创 Maven 和 Gradle 依赖管理的详细说明及示例,涵盖核心概念、配置方法、常见问题解决和工具对比。
Maven:适合标准化项目,依赖管理简单但灵活性不足。Gradle:适合复杂项目,依赖管理灵活且性能优越,但学习曲线较陡。选择建议新项目优先选择 Gradle(尤其是 Kotlin DSL)。遗留项目或严格遵循标准化的团队可使用 Maven。
2025-06-05 18:30:00
967
原创 OOP的三大特性:封装、继承、多态
1. 核心概念2. 示例java复制public class Person { // 私有属性,外部无法直接访问 private String name; private int age; // 公共方法:提供对属性的受控访问 public String getName() { return
2025-05-19 14:42:05
540
原创 MySQL 性能优化
性能优化的核心在于减少磁盘 I/O、利用索引加速查询、合理设计表结构和配置参数。通过工具定位瓶颈(如慢查询日志、EXPLAIN),结合业务场景选择最优方案。例如,对高频查询字段建立覆盖索引,对大数据量表进行分区或分表,通过读写分离分散压力。
2025-05-15 16:35:23
1060
原创 MySQL中通用表表达式(CTE)中的递归CTE
通用表表达式(CTE)中的是MySQL中处理树形结构数据(如组织架构、分类目录、评论嵌套等)的强大工具。它允许通过递归查询逐层遍历父子关系的数据。
2025-05-14 17:31:25
957
原创 MySQL 主键冲突排查与解决详解
通过以上方法,可以有效解决和预防主键冲突问题。如果数据量极大或业务复杂,建议结合业务逻辑设计更健壮的主键生成策略。:从 CSV 文件导入数据,文件中包含重复的。删除旧记录并插入新记录(注意会触发。上限,无法插入新数据。:自增 ID 达到。
2025-05-10 14:39:37
967
原创 MySQL 死锁排查与解决详解
通过合理设计事务和优化查询,可显著降低死锁发生概率。若问题持续,建议结合业务逻辑进一步分析资源依赖关系。减少事务持有锁的时间,避免在事务中执行耗时操作(如网络请求、复杂计算)。确保所有事务以相同顺序访问资源。
2025-05-10 14:34:50
796
原创 MySQL 安全管理
MySQL 安全管理是保障数据库系统稳定运行和数据安全的核心环节。以下从多个维度深入讲解 MySQL 安全管理的核心要点,并附具体操作示例。
2025-05-08 13:44:01
982
原创 MySQL中的information_schema
MySQL中的是一个非常重要的系统数据库,它存储了MySQL服务器运行时的元数据(metadata),即关于数据的数据。通过查询,用户可以获取数据库、表、列、权限、存储引擎等详细信息。
2025-05-08 11:48:09
579
原创 MySQL 分区表详解
MySQL 分区表是一种将大表数据按特定规则拆分成多个独立存储单元(分区)的技术,能有效提升大数据量下的查询性能和管理效率。
2025-05-08 11:23:30
869
原创 MySQL 事务与锁详解
事务是数据库操作的基本单元,由一组 SQL 语句组成,要么全部成功,要么全部失败。锁用于控制并发访问,保证数据一致性。
2025-05-08 11:09:33
1071
原创 深入理解 MySQL 索引
索引是查询优化的核心工具优先使用覆盖索引,减少回表。遵循最左前缀原则,设计复合索引。定期维护索引,避免碎片化。通过EXPLAIN分析执行计划,确保索引生效。示例场景用户表查询:在username和email上建复合索引。订单表统计:在created_at上建索引,加速按时间范围查询。商品搜索:使用全文索引支持关键词搜索。通过合理使用索引,可将查询时间从 100ms 优化到 1ms,显著提升数据库性能。
2025-05-08 10:47:57
1026
原创 MySQL 中,用于操作和查询 JSON 数据的JSON_EXTRACT 和 JSON_CONTAINS 的核心函数
JSON_TABLE在 MySQL 中, 和 是用于操作和查询 JSON 数据的核心函数。它们允许你通过(Path Expression)定位 JSON 文档中的特定部分。
2025-05-07 11:27:44
1556
原创 MySQL 8.0 及以上版本支持丰富的窗口函数
MySQL 8.0 及以上版本支持丰富的窗口函数,用于在查询结果的特定窗口范围内执行计算。以下是所有窗口函数的详细讲解,结合示例说明其用法和实际应用场景。
2025-05-07 09:21:01
931
原创 MySQL 的监控与日志
MySQL 的监控与日志是保障数据库稳定运行、快速定位问题的关键工具。以下从、、三个维度深入讲解,并结合实际案例说明如何应用。
2025-05-06 11:43:23
1012
原创 MySQL 安全管理
MySQL 安全管理是保障数据库系统稳定运行和数据安全的核心环节。以下从多个维度深入讲解 MySQL 安全管理的核心要点,并附具体操作示例。
2025-05-06 11:28:12
1040
原创 MySQL 和 SQL Server 在操作上不同之处
MySQL 和 SQL Server 是两种主流的关系型数据库管理系统(RDBMS),它们在操作上有许多相似之处,但也存在显著差异。
2025-05-04 16:22:24
903
原创 数据库课程设计
关于 数据库课程设计 的详细指导,涵盖设计流程、案例分析及实战示例,帮助你完成一个完整的数据库项目。问题:并发操作导致数据不一致(如两人同时借阅同一本书)。存储引擎:使用 InnoDB(支持事务和外键)。索引:为 ISBN、ReaderID 添加索引。问题:在多个表中重复存储相同数据(如读者姓名)。性能测试:使用 EXPLAIN 分析慢查询。并发测试:模拟多用户同时借书(检查锁冲突)。解决:通过外键关联,遵循第三范式(3NF)。
2025-05-04 15:31:49
462
原创 MySQL 的增删改查(CRUD)
复制->SELECT AVG(score) AS average_score, MAX(score) AS highest_score FROM students;复制->SELECT name, score FROM students WHERE gender = 'Female';复制->INSERT INTO students (name, age, gender, score)复制->SELECT * FROM students;复制->-- 假设存在 classes 表。
2025-05-04 10:40:18
641
原创 MySQL 存储引擎的详细讲解
FOREIGN KEY (user_id) REFERENCES users(id) -- 外键约束(仅 InnoDB 支持)-- SELECT * FROM test_myisam;-- InnoDB 行级锁示例(同上操作,会话2可立即更新 id=2 的行)-- 强制终止连接后,数据不会插入(事务回滚)-- 会话2:尝试写入会阻塞,直到会话1提交。-- 使用 InnoDB 引擎(默认)复制->-- 使用 MyISAM 引擎。复制->-- MyISAM 表级锁示例。-- 会话1:执行写操作(锁定全表)
2025-05-04 10:25:20
561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人