- ConcurrentHashMap 是并发编程中的核心集合。从 JDK7 的分段锁设计讲起,逐步演进到 JDK8 基于 CAS 加 synchronized 的实现,分析其在 put、get、扩容操作上的并发控制策略,讲解 sizeCtl、transfer 等关键机制,说明它如何保证线程安全的同时保持高性能读写。 ConcurrentHashMap 是并发编程中的核心集合。从 JDK7 的分段锁设计讲起,逐步演进到 JDK8 基于 CAS 加 synchronized 的实现,分析其在 put、get、扩容操作上的并发控制策略,讲解 sizeCtl、transfer 等关键机制,说明它如何保证线程安全的同时保持高性能读写。
- 上周排查订单状态批量更新接口的随机故障时,定位到根因是开发人员误用ArrayList于多线程迭代场景,同时未正确处理subList视图的隐性引用,最终导致偶发ConcurrentModificationException与高峰期OOM。该问题在迭代处理全量数据的业务场景中具有普遍性,往往因ArrayList的日常使用频率高而被忽视底层机制的约束。 ArrayList的fail... 上周排查订单状态批量更新接口的随机故障时,定位到根因是开发人员误用ArrayList于多线程迭代场景,同时未正确处理subList视图的隐性引用,最终导致偶发ConcurrentModificationException与高峰期OOM。该问题在迭代处理全量数据的业务场景中具有普遍性,往往因ArrayList的日常使用频率高而被忽视底层机制的约束。 ArrayList的fail...
- 「订单列表加导出」这个需求,动了三个仓库:前端加按钮和下载,网关加一条路由,后端加接口和查询。三个人,三个分支。后端在自己的功能分支上改,前端在主干上改,网关还停在上一个发布分支,因为那周有个线上问题在热修。三个 IDEA 窗口并排,进度靠群里发消息。消息一多,最容易漏的是那个一直没说话的人。 一个窗口,不等于一个时间点把三个仓库挂进同一个工作区之后,界面上的麻烦先没了。左边一栏三个项目,谁... 「订单列表加导出」这个需求,动了三个仓库:前端加按钮和下载,网关加一条路由,后端加接口和查询。三个人,三个分支。后端在自己的功能分支上改,前端在主干上改,网关还停在上一个发布分支,因为那周有个线上问题在热修。三个 IDEA 窗口并排,进度靠群里发消息。消息一多,最容易漏的是那个一直没说话的人。 一个窗口,不等于一个时间点把三个仓库挂进同一个工作区之后,界面上的麻烦先没了。左边一栏三个项目,谁...
- 一个 2018 年上线的单体服务,前端去年换成了 Vite。要一起改一个需求,我把两个项目塞进了同一个 IDEA 窗口。四步,网上教程都有,带截图。做完之后,第一次编译就停了:IDE 提示这个 JDK 版本已经不支持项目里设的语法级别。项目里写着 1.8,机器上装的是 21。改完再编,卡在依赖。后端要连公司私服,账号在一份配置里;前端要连内部镜像,令牌在另一份配置里。两套凭据互相不认,谁也不... 一个 2018 年上线的单体服务,前端去年换成了 Vite。要一起改一个需求,我把两个项目塞进了同一个 IDEA 窗口。四步,网上教程都有,带截图。做完之后,第一次编译就停了:IDE 提示这个 JDK 版本已经不支持项目里设的语法级别。项目里写着 1.8,机器上装的是 21。改完再编,卡在依赖。后端要连公司私服,账号在一份配置里;前端要连内部镜像,令牌在另一份配置里。两套凭据互相不认,谁也不...
- 最近不少做企业管理的朋友都问我,公司文件到底怎么防泄密,尤其是设计图纸、研发资料、客户合同、报价单这些,丢一份都可能让人特别头疼。说实话,现在企业防泄密真不是靠口头要求员工注意就行,靠谱的办法还是得用系统,把文件加密、外发审批、拷贝限制、操作记录这些环节都管起来。不过这类软件也挺多,有的功能看着很全但员工嫌麻烦,有的又太简单防不住关键场景,所以选的时候真得结合公司实际情况来,不能只看宣传。今... 最近不少做企业管理的朋友都问我,公司文件到底怎么防泄密,尤其是设计图纸、研发资料、客户合同、报价单这些,丢一份都可能让人特别头疼。说实话,现在企业防泄密真不是靠口头要求员工注意就行,靠谱的办法还是得用系统,把文件加密、外发审批、拷贝限制、操作记录这些环节都管起来。不过这类软件也挺多,有的功能看着很全但员工嫌麻烦,有的又太简单防不住关键场景,所以选的时候真得结合公司实际情况来,不能只看宣传。今...
- 最近工作中看到了一个@Builder注解的用法,学习了一下趁着空余时间发一下记录。@Builder 注解是Lombok下的一个注解,可以为我们的类自动生成一个构建器,使用时用建造者模式即可完成对象的实例化。比如我有如下的代码@Builder@Datapublic class Message { private String sender; private String rec... 最近工作中看到了一个@Builder注解的用法,学习了一下趁着空余时间发一下记录。@Builder 注解是Lombok下的一个注解,可以为我们的类自动生成一个构建器,使用时用建造者模式即可完成对象的实例化。比如我有如下的代码@Builder@Datapublic class Message { private String sender; private String rec...
- JAVA8新特性集 JAVA8新特性集
- 上一篇的结尾停在一个不太舒服的事实上:ToolCallingAdvisor 的循环是模型驱动的。模型请求工具,框架执行,结果回传,模型再判断——循环直到模型不再请求工具为止。这个机制在“查订单→查物流→回复”这类线性任务上工作得很好,但它没有回答一个更根本的问题:当任务需要先调研再执行、执行后反思、失败后调整策略时,谁来决定“下一步该做什么”?如果答案仍然是“模型自己决定”,那么 Plann... 上一篇的结尾停在一个不太舒服的事实上:ToolCallingAdvisor 的循环是模型驱动的。模型请求工具,框架执行,结果回传,模型再判断——循环直到模型不再请求工具为止。这个机制在“查订单→查物流→回复”这类线性任务上工作得很好,但它没有回答一个更根本的问题:当任务需要先调研再执行、执行后反思、失败后调整策略时,谁来决定“下一步该做什么”?如果答案仍然是“模型自己决定”,那么 Plann...
- 行业QA:先回答你最关心的问题一、什么是渠道分销商城系统?渠道分销商城系统,是面向品牌商、制造商和一级批发商搭建的B2B数字化分销平台。它把传统的电话下单、传真下单、微信报单、业务员手工录单,统一搬到线上商城,让下游经销商、代理商、门店和终端客户在线选品、下单、支付、查库存、看返利,实现渠道生意全链路在线化。二、它和进销存、ERP里的分销模块有什么区别?进销存和ERP的分销模块,解决的是企业... 行业QA:先回答你最关心的问题一、什么是渠道分销商城系统?渠道分销商城系统,是面向品牌商、制造商和一级批发商搭建的B2B数字化分销平台。它把传统的电话下单、传真下单、微信报单、业务员手工录单,统一搬到线上商城,让下游经销商、代理商、门店和终端客户在线选品、下单、支付、查库存、看返利,实现渠道生意全链路在线化。二、它和进销存、ERP里的分销模块有什么区别?进销存和ERP的分销模块,解决的是企业...
- Spring(Spring Boot)项目的部署,核心流程是打成可执行 jar → 放到 Linux 服务器 → 用 systemd 或 Docker 托管 → Nginx 反向代理到域名。一、打包:先确认能打出正确的 jarpom.xml 里必须有 Spring Boot 插件(Gradle 用 bootJar),否则打出来的 jar 里没有内嵌 Tomcat,运行会报 no main m... Spring(Spring Boot)项目的部署,核心流程是打成可执行 jar → 放到 Linux 服务器 → 用 systemd 或 Docker 托管 → Nginx 反向代理到域名。一、打包:先确认能打出正确的 jarpom.xml 里必须有 Spring Boot 插件(Gradle 用 bootJar),否则打出来的 jar 里没有内嵌 Tomcat,运行会报 no main m...
- 导语做电商,第一步就是选系统。系统选对了,是生意增长的底座;选错了,是资金、时间和数据的无底洞。市面上做商城开发的团队成千上万,报价从几万到几百万都有,宣传话术却几乎一样:源码交付、私有化部署、二次开发无忧、全行业解决方案。可真正落到合同里、落到代码里、落到售后里的,又是另一回事。这篇文章不写空话,只讲方法。我们围绕"如何识别靠谱的商城开发公司"这个核心问题,整理出7个可执行的尽调信号,以及... 导语做电商,第一步就是选系统。系统选对了,是生意增长的底座;选错了,是资金、时间和数据的无底洞。市面上做商城开发的团队成千上万,报价从几万到几百万都有,宣传话术却几乎一样:源码交付、私有化部署、二次开发无忧、全行业解决方案。可真正落到合同里、落到代码里、落到售后里的,又是另一回事。这篇文章不写空话,只讲方法。我们围绕"如何识别靠谱的商城开发公司"这个核心问题,整理出7个可执行的尽调信号,以及...
- 单干一个全栈项目的价值:业务场景逼出技术全局感。系列开篇,379 篇全栈日更计划启动。 单干一个全栈项目的价值:业务场景逼出技术全局感。系列开篇,379 篇全栈日更计划启动。
- 难以想象这两天运维的工作量,虽然除了php都不算大问题,但是都需要处理,ai时代的漏洞挖掘能力初露峥嵘啊! 难以想象这两天运维的工作量,虽然除了php都不算大问题,但是都需要处理,ai时代的漏洞挖掘能力初露峥嵘啊!
- Java 概念小课(一):HashMap 底层到底是怎么工作的HashMap 大概是 Java 里用得最多的容器,但很多人对它的理解停留在「键值对」三个字。这篇用最短的篇幅把它的核心机制讲清楚。 一句话总结HashMap = 数组 + 链表 + 红黑树。数组是主体,冲突的元素挂在链表上,链表太长了就升级成红黑树。 put 的完整流程Map<String, Integer> map = ne... Java 概念小课(一):HashMap 底层到底是怎么工作的HashMap 大概是 Java 里用得最多的容器,但很多人对它的理解停留在「键值对」三个字。这篇用最短的篇幅把它的核心机制讲清楚。 一句话总结HashMap = 数组 + 链表 + 红黑树。数组是主体,冲突的元素挂在链表上,链表太长了就升级成红黑树。 put 的完整流程Map<String, Integer> map = ne...
- Java 21 发布后,虚拟线程(Virtual Threads)几乎是所有后端团队都在关注的新特性。几行代码的改动,就能把「一请求一线程」的并发模型重新变成可行方案。我们在服务里灰度了虚拟线程之后,压测数据非常漂亮——直到线上流量高峰到来,CPU 使用率毫无征兆地飙到了 90%。这篇文章完整复盘了这次排查过程,以及一个很容易被忽视的结论:虚拟线程不是银弹,synchronized 在 JD... Java 21 发布后,虚拟线程(Virtual Threads)几乎是所有后端团队都在关注的新特性。几行代码的改动,就能把「一请求一线程」的并发模型重新变成可行方案。我们在服务里灰度了虚拟线程之后,压测数据非常漂亮——直到线上流量高峰到来,CPU 使用率毫无征兆地飙到了 90%。这篇文章完整复盘了这次排查过程,以及一个很容易被忽视的结论:虚拟线程不是银弹,synchronized 在 JD...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签