synchronized vs ReentrantLock目录 一、核心区别(面试第一答) 二、synchronized 原理 三、ReentrantLock 原理(AQS) 四、ReentrantLock 四大高级功能 五、公平锁 vs 非公平锁 六、如何选择 七、面试追问 一、核心区别 synchronized ReentrantLock 层面 JVM 内置(monitorenter/monitorexit) API 层(AQS) 释放 自动(退出同步块) 手动 unlock(必须在 finally) 可中断 ❌ ✅ lockInterruptibly() 超时 ❌ ✅ tryLock(timeout) 公平 仅非公平 公平/非公平可选 条件变量 1 个 wait/notify 多个 Condition,精确唤醒 锁状态 不可查 可查(isLocked、队列长度等) 读写分离 ❌ ✅ ReentrantReadWriteLock 共同点:都支持可重入。 面试一句话: synchronized 是 JVM ...
Claude 使用技巧目录 一、Claude Code CLI 实用技巧 二、对话与提示工程技巧 三、Claude API 高级用法 四、MCP 服务器与工具集成 五、常见误区与避坑指南 一、Claude Code CLI 实用技巧1.1 CLAUDE.md 项目指令文件在项目根目录放置 CLAUDE.md,Claude Code 每次启动都会自动加载,等效于项目级的 system prompt: 12345# CLAUDE.md- 本项目使用 pnpm,不要用 npm- 代码风格:2 空格缩进,单引号- 测试命令:pnpm test- 提交信息格式:conventional commits 技巧:可分层放置 —— ~/.claude/CLAUDE.md(全局)、项目根目录(项目级)、子目录(模块级),越深层级优先级越高。 1.2 权限与自动批准减少权限弹窗的两种方式: 命令行参数:claude --dangerously-skip-permissions(不推荐日常使用) settings.json 配置:在 .claude/settings.json 中添加允许列表 12 ...
Kimi WebBridge 原理目录 架构概览 通信流程 关键设计点 核心工具一览 已知限制 架构概览Kimi WebBridge 由三个核心组件协作: 浏览器扩展 — 安装在用户真实浏览器(Chrome 等)中,拥有对浏览器标签页、DOM 的完整访问权限。 本地守护进程 (Daemon) — 运行在 http://127.0.0.1:10086 的本地 HTTP 服务,由 ~/.kimi-webbridge/bin/kimi-webbridge 启动和管理。 AI Agent(如 Claude) — 通过 curl 向守护进程发送 JSON 指令。 通信流程1Claude → curl POST → 本地 Daemon (127.0.0.1:10086) → 浏览器扩展 → 操作真实浏览器 AI 把操作意图(如”导航到某 URL”、”点击某元素”)以 JSON 格式 POST 给 Daemon Daemon 转发指令给浏览器扩展 扩展在真实浏览器中执行操作(点击、填表、截图等) 结果沿原路返回给 AI 关键设计点 使用用户的真实浏览器:扩展运行在用户已有的浏览器会话中 ...
Flowable目录 一、介绍 二、概念 流程部署 流程定义 流程实例 执行实例 活动实例 三、制作流程图 flowable-ui 流程模板文件的一些概念 请假流程模板案例 四、springboot集成flowable 引入依赖 配置数据源 核心api 部署流程 启动流程 删除流程 推进流程 流程历史 一、介绍Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。 二、概念流程部署一次流程部署会在act_re_deployment表中生成一条记录,一次可部署一个或者多个流程模板 流程定义流程定义 ProcessDefinition 这个好说,将一个流程 XML 文件部署到 flowable 中,对应的数据在act_re_procdef表中,这就是一个定义好的流程了,基于这个定义好的流程,我们可以开启很多流程实例 流程实例流程实例 ProcessInstance 就是通过流程定义启动的一个流程,他表示一个流程从开始到结束 ...
7月目录 1.1抽象类 1.2泛型的使用: 1.3next()和nextLine()的区别 1.4正则表达式 1.5count(*)和count(1)的区别 1.1final 1.2常用注解 1.3String 1.4Java中final和static 1.5String底层 1.6 反射 1.1 DTO参数校验问题 1.2 双亲委派 1.3自动装箱与拆箱 1.4为什么重写equals必须重写hashCode 1.5 == 和 equals() 的区别 1.6 Exception 和 Error 有什么区别 1.7try-catch-finally执行顺序 1.8 @RequiredArgsConstructor 1.9 IO多路复用 1.10 Java集合 1.11二进制运算 1.12 git reset 1.13 JVM 1.mysql性能优化 2.mybatis执行原理 1.1 锁 偏向锁: 5月 Java四大引用 ArrayList和LinkedList 1.底层使用的数据结构 2.是否保证线程安全: 3.插入和删除的复杂度: 4.继承树 git命令 ...
Linux常用命令 防火墙 123456789101112131415161718192021222324252627282930311、开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口firewall-cmd --reload # 配置立即生效2、查看防火墙所有开放的端口firewall-cmd --zone=public --list-ports3.、关闭防火墙如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估systemctl stop firewalld.service4、查看防火墙状态 firewall-cmd --state5、查看监听的端口netstat -lnptPS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools6、检查端口被哪个 ...
背景目录 变量 打包 一般新建项目都是选择maven或spring initializr来生成项目,然后经过一系列的修改、配置、加入自己项目的一些风格。 由于微服务越来越流行,一个项目需要新建很多的微服务项目,每次新建项目时都需要花费大量的时间来进行修改、配置,达到所有项目结构和风格一致。如果新建项目的同事不是很熟悉项目风格,就会导致部分项目风格不一致等问题。 maven提供了解决这些问题的方法,那就是创建自己项目的脚手架,下面就介绍脚手架项目如何创建和使用。 第一步 创建基础项目创建项目(会以此项目生成脚手架,所有通过该脚手架生成的项目都是此项目的格式和风格) 例如: groupId:com.yyds.oa artifactId:oa-archetype version:0.0.1-SNAPSHOT package:com.yyds.oa.archetype 注意: 创建的启动类最好使用一个所有项目都能用的名字 ,如:StartApplication 第二步 通过基础项目生成原型(脚手架) 在项目根目录下添加 archetype.propertie ...
Mybatis-Generate目录- [0823](#0823) - [0922](#0922) 08231、自动生成配置文件:https://blog.csdn.net/zengqiang1/article/details/79381418?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-79381418-blog-123915950.pc_relevant_multi_platform_whitelistv4&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-79381418-blog-123915950.pc_relevant_multi_platform_whitelistv4&utm_relevant_index=1 RabbitMQ0922 R ...
Mysql篇目录 0825 一对多null的问题 事务:atomicity、consistency、isolation、durabilityxxxxxxxxxx ONBOOT=“yes” 表示启用该网卡IPADDR=192.168.11.11 指定一个静态IPGATEWAY=192.168.1.1 指定网关DNS1=8.8.8.8 连接外网需要配置 域名解析服务器DNS2=223.5.5.5static表示配置静态IP propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是最常见的选择(spring默认事务传播行为) 数据表的类型:MylSAM 、InnoDB 、HEAP、BOB 、CSV 修改数据库:AlTER 修改表名 :ALTER TABLE 旧表名 RENAME AS 新表名 添加字段 : ALTER TABLE 表名 ADD字段名 列属性[属性] 123456789101112131415161718192021222324252627282930313 ...






