摘要: 今天正式进入多线程领域,用“卖票案例”重现了线程安全问题,再通过三种方案解决,终于理解了“并发”与“同步”的核心逻辑。 核心实践:用三个线程模拟卖100张票,未加同步时出现“超卖”(卖出102张)和“重复卖”(同一张票卖两次),原因是多个线程同时操作 ticket 变量,出现了“指令交错”。 ​ 解 阅读全文
posted @ 2025-10-27 08:41 百折不可夺志 阅读(4) 评论(0) 推荐(0)
摘要: 今天正式进入多线程领域,用“卖票案例”重现了线程安全问题,再通过三种方案解决,终于理解了“并发”与“同步”的核心逻辑。 核心实践:用三个线程模拟卖100张票,未加同步时出现“超卖”(卖出102张)和“重复卖”(同一张票卖两次),原因是多个线程同时操作 ticket 变量,出现了“指令交错”。 ​ 解 阅读全文
posted @ 2025-10-27 08:41 百折不可夺志 阅读(4) 评论(0) 推荐(0)
摘要: 今天不再满足于“try-catch捕获异常”,而是深入理解异常体系,还动手写了第一个自定义异常,解决“业务错误无法用系统异常表达”的问题。 关键收获:理清了 Checked Exception (编译时异常,如 IOException ,必须处理)和 Unchecked Exception (运行时 阅读全文
posted @ 2025-10-27 08:41 百折不可夺志 阅读(4) 评论(0) 推荐(0)
摘要: 今天不再满足于“try-catch捕获异常”,而是深入理解异常体系,还动手写了第一个自定义异常,解决“业务错误无法用系统异常表达”的问题。 关键收获:理清了 Checked Exception (编译时异常,如 IOException ,必须处理)和 Unchecked Exception (运行时 阅读全文
posted @ 2025-10-27 08:40 百折不可夺志 阅读(3) 评论(0) 推荐(0)
摘要: 今天聚焦 ArrayList 与 LinkedList 的底层差异,用“10万次增删查”测试验证性能区别,彻底跳出“只会用API”的误区。 核心突破:搞懂了两者的本质区别—— ArrayList 基于动态数组,查询快(通过索引直接定位)但增删慢(需移动元素); LinkedList 基于双向链表,增 阅读全文
posted @ 2025-10-27 08:40 百折不可夺志 阅读(2) 评论(0) 推荐(0)
摘要: 今天聚焦 ArrayList 与 LinkedList 的底层差异,用“10万次增删查”测试验证性能区别,彻底跳出“只会用API”的误区。 核心突破:搞懂了两者的本质区别—— ArrayList 基于动态数组,查询快(通过索引直接定位)但增删慢(需移动元素); LinkedList 基于双向链表,增 阅读全文
posted @ 2025-10-27 08:40 百折不可夺志 阅读(3) 评论(0) 推荐(0)