自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 Elasticsearch (ES)相关

ES 中,Term Index 是。

2025-09-13 12:54:57 678

原创 计算机网络相关

旧 JWT不会自己失效,必须靠额外机制。短期 Access Token + 长期 Refresh Token(最常用)。黑名单(适合高安全要求系统)。版本号机制(高效且常见)。

2025-09-07 20:50:27 401

原创 tcp粘包产生的根源

时,TCP 并不会保证“一次 send = 一次对方 recv”。的协议,它只保证字节的顺序和可靠传输,并不关心应用层的消息边界。,TCP 本身不会帮你区分“消息的边界”。的数据拼在一起,或者把一次大的。

2025-09-07 17:36:11 192

原创 IO多路复用相关知识

它们没有内核中“长期保存的集合”。每次调用 或 ,你都要把 整个数组/集合(所有要监控的 fd)重新传给内核。不管你只是新增了 1 个连接,还是 100 个连接,调用时都要把全部 fd 拷贝一次。内核里有一个持久化的数据结构(红黑树 + 就绪链表)来保存“我关心的 fd”。新连接到来时,只需 调用一次 把这个单个 fd 注册进去,内核集合就更新了。后续的 不需要再传全集合,只返回就绪 fd。是的,差异就在于:这个“苏醒”其实是个形象的说法,指的是:线程在调用 时会进入阻塞睡眠状态,当监控的 soc

2025-09-07 13:09:39 1119

原创 什么是携程?

在学习携程的概念时,我的理解是不是对的,如下:携程就类似于用户管理的线程?普通的线程是需要对应操作系统的资源的,比如线程切换等,是由操作系统进行切换上下文等信息。而携程这些都由用户程序完成,这样就不需要底层上下文进行切换了。那么,携程是在进程的基础之上还是线程上?必然要作用在可执行的线程上吧,不然如何使用资源,以及运行切换携程上下文的程序也要是一个线程或者进程吧?

2025-09-05 16:11:03 252

原创 分布式中防止重复消费

好问题!这个唯一 ID,但通常是,然后随着消息一起放进消息队列传到消费者。如果在消费端才生成唯一 ID,就失去了去重的意义,因为同一条消息多次被投递时,消费端生成的 ID 也会不同,无法判断它们是重复的。消费者拿到msg_id做去重。msg_id。

2025-09-02 18:14:13 1153

原创 git相关

冲突=两边改了同一处代码(不只是新增行),Git 无法自动判断。解决冲突时,你需要手动决定最终保留main的改动、feature的改动,或两者结合。

2025-09-02 17:54:20 759

原创 分布式一致性算法相关

Raft 是一种共识算法,用多数投票 + 日志复制来保证所有节点日志和状态机的一致性。状态机是指“执行日志操作的确定性程序”,用它保证每个节点最终状态一致。安全性保证:使用Term(任期号)确保最新的 Leader 一定包含最新的日志。即使出现网络分区,只要超过半数节点还连通,系统就能继续工作。Raft 把时间分成一个个逻辑“任期(Term)”,可以理解为“第几届 Leader 的任期”。每次开始 Leader 选举时,节点会把自己的 term 增加 1。

2025-09-01 18:49:58 771

原创 分布式事务相关02

TCC:Try 是业务显式冻结,Confirm/Cancel 由开发实现;AT:通过拦截 SQL 生成 undo log,业务透明,本地事务直接提交,回滚时用 undo 恢复。需要参与者不擅自回滚、协调者/参与者可最终恢复;否则会有阻塞或一致性风险。现实中通过协调者高可用、参与者策略、或改用其他协议来缓解。工程取舍就是在“一致性(安全)”与“可用/性能(活性)”之间权衡:银行核心常选择强一致(2PC/consensus-backed DB),高并发外围业务常用 TCC/Saga/MQ 方案。

2025-09-01 18:19:46 1035

原创 分布式事务相关

特性2PC3PC阶段数2阶段(准备+提交)3阶段(询问+准备+提交)是否阻塞容易阻塞降低阻塞概率超时机制无有数据一致性较强较弱(极端情况下不一致)复杂度较低较高适用场景强一致性系统高并发、弱一致性容忍系统3PC是在2PC的基础上引入一个询问阶段和超时机制,让参与者更智能地“自救”,减少阻塞和单点故障风险,但无法完全保证强一致性。对比点实现层数据库层事务协议业务应用层逻辑谁来执行数据库事务协调器控制提交或回滚。

2025-08-31 22:42:34 868

原创 java垃圾回收相关

核心思想基于对象的生命周期特征进行内存管理。大多数对象“朝生夕死”,存活期短。少部分对象存活时间长,会长期存在。做法年轻代(Young Generation):新对象分配的区域,回收频率高,空间较小。老年代(Old Generation):长期存活对象存放的区域,回收频率低。有的JVM还有永久代/元空间(PermGen/Metaspace),存类元数据。所以“分代”本质是一个内存管理策略,并不是算法。分代回收不是单一算法,而是一种内存管理策略。

2025-08-27 16:18:10 358

原创 运行时常量池中数值存在的原因

非常精准的问题!我们来深入拆一下字节码细节,看看这个100。

2025-08-27 11:51:49 260

原创 类的常量和静态变量相关知识

非常好的问题!这里“类的常量”要分两种情况来看,容易混淆。我们要区分:1. 编译期常量(Compile-time Constant)2. 运行期常量(Runtime Constant)⸻🔹1. 编译期常量(static final + 基本类型/字符串字面量)• 典型例子:class Demo {static final int A = 10;static final String S = “Hello”;}⸻🔹2. 运行期常量(static final 但值在运行时才能确定)• 典型例

2025-08-24 16:24:15 716

原创 Redisson相关知识

数据结构存的内容作用Hash (普通锁就有)threadId -> 重入次数记录当前持有锁的线程List线程标识列表保证排队顺序(FIFO)ZSet控制线程最早能获取锁的时间👉list保证顺序zset保证时机。“排在队首还要等时间戳” → 确保前一个线程释放锁之后,下一个线程按顺序、按时机才能拿到锁,避免插队。公平锁没有自动续期→ 因为续期会破坏公平性。如果任务耗时不确定,不推荐用公平锁,可以用普通RLock(有看门狗自动续期)。B 丢失唤醒信号后,确实可能错过抢锁机会。

2025-08-21 21:44:22 756

原创 java中ReentrantLock使用公平锁相关问题

的线程不会立即进入 CLH 队列,而是进入。只有在signal()或时,才会被转移到 CLH 队列,等待重新竞争锁。CLH 队列 = 锁竞争阻塞队列Condition 队列 = 等待条件的线程队列最终线程一定会回到 CLH 队列,因为想继续执行必须重新抢锁。

2025-08-21 21:34:41 409

原创 redis在Spring中应用相关

KEYS对应 Java 里传的第二个参数(List 类型)ARGV对应 Java 里后面跟着的可变参数(Object… args):只是把一个锁名包装成单元素 List,以便传到 Lua 脚本的KEYS[1]。

2025-08-21 17:52:04 417

原创 类加载过程中的初始化和对象创建过程初始化区别

JVM类加载初始化:执行<clinit>(),给类的静态变量赋值,执行静态块 → 属于类级别。JVM对象实例化:new 的时候执行<init>()→ 属于对象级别。SpringBean 初始化:在实例化和依赖注入完成之后,Spring 调用的钩子方法 → 属于容器级别。👉 也就是说:你看到的“初始化是执行构造方法”,其实指的是类构造方法<clinit>(),不是我们写的对象构造函数<init>()。

2025-08-21 16:41:21 305

原创 Spring相关知识

实例化 → 属性注入 → Aware回调 → 前置处理 → 初始化 → 后置处理 → 就绪使用 → 销毁在实例化之前准备 BeanDefinition(配置扫描、合并)。加载 class 对象。调用 InstantiationAwareBeanPostProcessor → 机会点:是否要直接返回代理对象。推断用哪个构造方法。才会执行实例化 (new)。

2025-08-21 12:50:09 1360

原创 非公平锁吞吐量大的本质

公平锁:排队必然阻塞,线程上下文切换更频繁,吞吐量低。非公平锁:允许插队,能抢到就直接执行,减少阻塞开销 → 吞吐量更高。抢不到锁的线程,依旧会被阻塞休眠,并不能完全避免内核态切换。

2025-08-20 18:00:38 419

原创 TheadLocal相关

情况是否需要 remove()说明普通短生命周期线程不必线程结束后 ThreadLocalMap 随线程回收线程池线程 / 长期线程必须避免 value 长期被强引用,导致内存泄漏key 弱引用 + value 强引用→ 仅仅 ThreadLocal 对象被回收不会自动回收 value。remove()是手动清理 value,尤其在线程池场景非常重要。如果你愿意,我可以画一张ThreadLocal 内存泄漏示意图,显示线程池线程 + ThreadLocalMap + key/value。

2025-08-20 17:26:16 1333

原创 java线程池相关知识

看到 Mark Word 偏向别人时就自旋并改写线程 ID”这一描述不对。撤销偏向(可选重偏向)→ 若存在竞争则转入轻量级锁 → 这时才会自旋。

2025-08-20 16:01:17 832

原创 为什么不推荐直接用 Executors 创建线程池?

在线程池里,workQueue用来存放等待执行的任务。和默认用的是 LinkedBlockingQueue的无参构造方法它的容量是(约 2.1 billion),几乎等于无限长队列。

2025-08-20 12:34:55 279

原创 java线程状态中,WAITING和BLOCKED区别是什么?

会把 Wait Set 的线程全部转移到 Entry List。Entry List + 新来的线程 → 一起竞争锁。Java 规范没要求谁优先,JVM 通常是非公平调度,所以最终谁拿到锁是不确定的。

2025-08-19 17:23:42 642

原创 mysql||事务相关知识

m_ids:Read View 生成时刻,系统里真正活跃事务的 ID 列表。m_ids中最小的事务 ID。**max_trx_id **:全局下一个即将分配的事务 ID(比当前最大事务 ID +1)。这个区间是可能活跃的事务 ID 的范围,但不是所有都活跃,真正活跃的事务只在 m_ids 里。

2025-08-17 16:27:53 487

原创 加密货币||交易所知识

你问到的这个场景,其实就是合约市场极端单边行情下的盈亏对手方问题**。我给你拆开讲,你就能明白交易所在这种情况下是怎么扛的。举例:那会发生什么?保险基金出手ADL(自动减仓)机制启动重点:交易所并不是无限制掏自己的钱去付给多方,大部分时候是靠空方的亏损 + 保险基金 + ADL 来完成结算。大多数中心化交易所不愿意自己直接当对手盘,因为那是纯粹赌方向,很容易出巨额亏损。但现实中,为了流动性,交易所常常会用自营做市账户补足流动性,这就等于间接承担风险——所以他们会极力避免出现你说的这种“所有人一边倒”的情况。

2025-08-15 17:14:40 678

原创 加密货币||中国为什么不让搞加密货币?不怕如果发展起来,后期整个国家都要在加密货币领域落后?

中国不是怕落后,而是选择。

2025-08-08 16:09:26 300

原创 加密货币||如何监控到区块打包速度?什么是主链?

你问的问题回答谁来监控区块打包速度?每个节点自己监控(看区块时间戳)系统如何调整难度?每 2016 个区块所有节点根据规则统一自动调整有没有中心化监控机构?没有,全靠去中心算法规则驱动下面逐条来回答你的问题,帮助你厘清“主链”、“节点同步”与“区块竞争”之间的关系。主链(Main Chain):指在全网共识下,被绝大多数节点认同、并且“最长”或“累积难度最大”的那一条区块链分支。

2025-08-07 23:29:26 653

原创 加密货币||挖矿相关知识

挖矿”是区块链系统中用来打包交易、验证新区块并维护网络安全的机制。通过计算竞争,争取打包新区块的权利,并获得系统奖励(新币+交易手续费)这个过程最典型的代表就是比特币,采用了工作量证明机制(Proof of Work, PoW),也是我们常说的“挖矿”。比特币挖矿之所以设计得这么“贵”(耗电、耗算力),是为了让篡改历史或攻击网络的代价高到不值得尝试,从而通过“经济激励 + 计算难度”来保护网络的安全性。概念意思篡改某个旧区块改了旧的交易记录(比如删交易)挖出之后的区块。

2025-08-07 23:11:22 583

原创 加密货币||加密货币数量相关知识

虽然比特币的理论总量是 2100 万枚,但由于私钥丢失、误操作等原因,实际流通量在不断减少,使得比特币长期具备更强的稀缺性和通缩性特征。这既是系统设计的一部分优势,也是用户需承担的责任与风险。也正因如此,比特币保管私钥的方法、钱包的安全性,成了最重要的用户教育内容之一。是的,从技术角度看,加密货币的总量是可以改变的,但从实际运行和社区信任的角度看,几乎不可能。特别是像比特币这样的主流币,其核心价值就在于稀缺性和不可随意更改的规则。

2025-08-07 22:44:54 901

原创 java中classpath 是如何工作的...

场景Spring 查找逻辑自己写的资源文件放在,编译后进入,从 classpath 查找第三方 JAR 提供的资源放在 JAR 内部(如),Spring 也会从 classpath 的每个 JAR 中查找所有路径查找起点从每个 classpath 根目录开始找,不看包名、不看你写在哪个 Java 类下。

2025-08-07 21:43:35 374

原创 加密货币||资金交易相关知识,为何能收到黑钱?

冻结并非瞬时:从可疑交易到拿到法院冻结令,中间有监测、审核、司法授权等流程。犯罪分子利用滞后期:快速分散资金到多个账户,突破冻结封锁。追踪下家才能全面打击:识别受害者、追赃和甄别帮凶,都需要沿资金链一路往下。冻结只是手段,追踪才是核心,只有对整个资金流向了然于胸,才能更有效地阻断洗钱链条、追回涉案资金。

2025-08-06 17:17:03 680

原创 加密货币||那公钥被hash了,地址用来干嘛呢?那进行交易了,公钥也就被暴露了是吗?

收钱时地址是哈希(隐藏公钥)花钱时必须公开公钥(才能验证你是主人)问题答案地址被 hash 后干什么用?用于接收币,是资产“挂靠”的标签交易时公钥会暴露吗?✅ 是的,花钱时必须公开公钥来验证为什么不直接用公钥?安全性更高、地址更短、更防未来攻击公钥暴露安全吗?对现在的计算能力是安全的,未来量子计算可能带来挑战。

2025-08-05 22:44:47 558

原创 为什么是公钥hash?而不是直接公布公钥?如何使用公钥hash的?这里生成一个随机私钥(256位随机数)是只0和1的随机数为256位吗?我看我的私钥好像是16进制位?

公钥哈希(hash)原因如下:真正的私钥是一个256位二进制随机数我们用十六进制(hex)显示它每个十六进制字符表示4位 → 共64个字符更方便人类阅读和存储十六进制私钥 = 256位二进制私钥的一种表现形式,不是两回事,只是表示方式不同。概念内容私钥一个随机生成的256位二进制数,通常以64位十六进制表示公钥用椭圆曲线算法从私钥推导出,通常是33或65字节公钥哈希(PKH)SHA256 → RIPEMD160 对公钥双重哈希后得到20字节地址(P2PKH)

2025-08-05 21:06:43 876

原创 加密货币||地址和交易知识

某个地址“获得了”一些 BTC这些 BTC尚未被花掉,就叫做一个“UTXO”问题答案比特币地址谁都可以创建?✅ 是,随便创建,不需要注册交易时怎么验证我有币?查你地址拥有的“未花费输出(UTXO)”是查所有历史交易吗?❌ 不用,节点维护一份“未花费余额表”查起来会很慢吗?❌ 不会,非常快,专门设计优化过。

2025-08-05 20:54:52 838

原创 什么是REST API?

特性内容本质基于 HTTP 协议的接口风格核心思想用 URL 表示资源、用 HTTP 方法表示操作使用场景前后端通信、微服务调用、开放 API 接口等返回格式通常是 JSON。

2025-08-05 15:39:40 440

原创 java中类继承实现原理相关知识

• 继承 ≠ 持有父类对象,继承 = 对象内存包含父类状态。• 继承的实现 ≠ 编译器复制代码,实现 = JVM 运行时管理内存 + 方法表。• 构造函数优先调用父类构造器的强制性 = 为了确保对象的父类部分得到正确初始化,为构建完整、安全、一致的对象状态打下坚实基础。这是面向对象设计保证对象完整性和多态行为正确性的基石。

2025-07-29 23:12:26 478

原创 Spring AOP 底层原理

Aspect@Component// 目标方法执行。

2025-07-29 17:01:33 312

原创 中国移动宽带,家庭网络两个主从设备工作原理

• 在手机WiFi设置中,手动选择 从设备的5G信号(同名SSID但BSSID不同,主:80:88:00:8d:ee:d6,从:f4:e8:4f:e6:63:d2)。• 当终端(如手机)从客厅走到卧室,信号强度(RSSI)低于阈值(如-70dBm)时,自动断开主设备,连接从设备的同名WiFi。从设备 → 主设备 光信号(1577nm) G1612 通过内置光模块将电信号转为光信号,经光纤传输至主设备。从设备(G1612)本质是“光电转换中继器”:需将WiFi信号转为光信号回传主设备。

2025-07-25 22:10:49 1259

原创 家庭网络拓扑知识

根据您提供的两张图片和设备描述,您家中的网络拓扑是典型的 中国移动 FTTR(Fiber to The Room)全光组网方案,具体架构和角色解析如下:📡 一、设备角色定位设备型号 功能角色 网络层级 关键证据ZTE:G7615AV5 主光猫(光网关) 核心层 1. IP地址 192.168.1.1(默认网关)2. 显示PON上行速率(TX/RX:2500/1250Mbps)ZTE:G1612 从光网关(子设备) 扩展层 1. 图片标注 “登录从网关”

2025-07-25 14:52:55 1234

原创 局域网主机访问外网的流程

主机:目的不在本网 → 发给默认网关(路由器 LAN IP)路由器:接收 → NAT 源地址+端口 → 转发到外网路由器 LAN 口:既有内网 IP(供主机当网关用),又有公网 IP(WAN 口,供外网识别)这样就完成了“跨子网”的通信。希望这下把整个链路彻底串起来了!

2025-07-24 16:30:39 656

PotPlayer.zip

一个非常简约的轻便的播放器,几乎可以播放所有格式的视频

2021-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除