- 博客(10)
- 收藏
- 关注
原创 原子操作与线程同步:保障多线程安全的核心机制
/ 线程安全,无需额外同步 二、线程同步:解决多线程并发冲突的机制 当多个线程共享资源时,若操作不是原子的,就需要线程同步(Thread Synchronization)机制来控制线程对资源的访问顺序,保证数据一致性。// 线程2能立即看到flag的最新值if (flag) { // 执行逻辑} 4. 等待/通知机制( wait() / notify() ) 基于 Object 类的方法,实现线程间的协作通信,适用于“一个线程需要等待另一个线程完成某操作”的场景。
2025-12-10 15:34:51
319
原创 进程 vs 线程:从浏览器多标签页看懂核心区别
理解了进程与线程的区别,你就能更清晰地看懂程序的运行逻辑——小到一个函数的并发执行,大到整个系统的资源调度,本质都是这两个概念的延伸。在计算机程序的运行世界里,“进程”和“线程”是两个绕不开的核心概念——小到一个简单的命令行工具,大到复杂的浏览器、游戏,都依赖这两个单元来实现任务的并发执行。但很多人会混淆它们的边界:为什么有的程序是“多进程”,有的是“多线程”?一、进程与线程:本质是“资源容器”和“执行单元”的关系 先抛结论:进程是操作系统分配资源的基本单位,线程是CPU执行任务的基本单位。
2025-12-10 15:25:57
373
原创 无内鬼,来点老掉牙的Java笑话
Y:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!我一直专注于本职工作,对外部的没有时间涉猎。M:知道,不过我工作努力,上进心强,暂时还没有打算找对象。Y:知道,动物冬天经常Hibernate,但我从来不冬眠。应聘者:我这人实在,工作努力,不知道什么叫累。应聘者:我这个人工作认真。Y:我很勤奋,只知道干活,不知道休息。M:用过bea的weblogic吗?Y:不知道,不过我爆喜欢队中的纳什。Y:不了解,我只去那儿旅游过。Y:我是孤儿没什么可以继承的。M:了解SUN的创始人吗?
2025-12-05 22:55:05
180
原创 在Java中如何实现Set集合的自定义排序?
/ 结果:[Book{name=‘Java编程思想’, price=59.9}, Book{name=‘设计模式’, price=49.9}, Book{name=‘数据结构’, price=39.9}] }} 关键说明 1. TreeSet 的排序依赖: TreeSet 底层是红黑树,排序规则由 Comparable (元素类)或 Comparator (外部比较器)决定,二者同时存在时, Comparator 优先级更高。
2025-12-05 22:48:34
389
原创 Python里面不是这样的
我才会考虑把你的分支 squash and merge 到 develop 里,等待下一个版本发布。我们会 review 你的代码,可能会留下一些评论,你需要解决所有的 thread。你为啥直接 commit 到我的 main 分支啊?GitHub 上不是这样!然后从 develop 分支 checkout 一个新的 feature 分支,在 PR 描述里,你要详细说明你的功能改动和实现思路,之后你把这个分支 push 到你自己的远程仓库,你应该先 fork 我的仓库,然后你把你的心意写成代码,
2025-11-28 09:47:20
313
原创 为什么需要自定义异常
log.error("订单{}创建失败,错误码{}:{}", e.getOrderId(), e.getErrorCode(), e.getMessage());2. 业务逻辑无法覆盖:内置异常不包含业务相关信息(如“订单状态异常”“权限不足”“库存不足”),无法满足具体业务场景的异常描述需求;自定义异常可通过构造方法传入原始异常( cause ),形成异常链,既保留业务异常信息,又不丢失底层错误根源,便于复杂场景排查。// 传入底层异常(如SQL异常)// 自定义错误码(用于前端提示)
2025-11-26 14:08:08
356
原创 开发中如何决定一个异常应设计为编译时异常还是运行时异常
原因:借阅天数超期可能是调用者传入非法参数(如误传 40 天),属于“编程/输入错误”,无需强制处理(但可捕获并提示用户),设计为 OverdueException extends RuntimeException 更合适,督促调用者传入合法天数。- 选 运行时异常:当异常是“编程错误导致、不可预测、需要开发者修复逻辑”时(如空指针、非法参数),不强制处理,让错误直接暴露,避免掩盖代码漏洞。发生概率 可预测、大概率发生(如IO操作、网络请求) 不可预测、通常是编程错误导致(如空指针、数组越界)
2025-11-26 13:58:20
389
原创 Java发展简史:从诞生到生态繁荣
当时很多开发者担心 Java 会“变味”,但事实证明,Oracle 持续投入 Java 生态建设:一方面维护经典版本(如长期支持的 JDK 8 、JDK 17 ),另一方面推动 Java 向云原生、模块化方向发展(比如 JDK 9 引入的模块化系统 Project Jigsaw )。每次回顾 Java 的发展历程,都不禁感叹它的强大生命力。3. 持续进化:从 JDK 5 的语法升级,到 JDK 8 的函数式编程,再到模块化、云原生优化,Java 始终紧跟技术潮流,既兼容老项目,又能拥抱新技术。
2025-07-09 16:54:11
734
原创 Java开发环境搭建全攻略:从零基础到Hello World
2. 在 src 目录右键→“New”→“Java Class”,类名填 HelloWorld (Java类名必须与文件名一致,首字母大写)。2. 在“系统变量”中点击“新建”,变量名填 JAVA_HOME ,变量值填JDK安装路径(如 D:\Java\jdk-17 )。3. 找到“Path”变量,点击“编辑”→“新建”,输入 %JAVA_HOME%\bin ,再点击“上移”将其置顶。1. 打开IDEA,点击“New Project”,选择“Java”,确认JDK路径正确,点击“Create”。
2025-07-09 16:50:48
707
原创 DeepSeek发展背景
**窗口期争夺**:2023年前后,全球大模型赛道进入白热化阶段,但中文语境下的AGI仍存在明显短板(如逻辑推理、跨文化理解)。- **拒绝“暴力美学”**:不同于单纯依赖算力与数据量的大模型路径,DeepSeek早期便提出“小模型、高智能密度”理念,例如通过**动态稀疏计算**(减少无效参数激活)提升能效比,其训练成本仅为同类模型的1/3。- **认知优先主义**:团队内部强调“让模型学会思考,而非记忆”,例如在预训练中引入**反事实推理数据集**,强制模型跳出数据中的统计规律,模拟人类假设性思维。
2025-03-07 16:13:12
905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅