- 博客(83)
- 收藏
- 关注
原创 量大管饱!两万字!操作系统笔记
操作系统是管理计算机硬件和软件资源的系统程序,本质上是一个运行在计算机上的软件程序 ,它为用户和应用程序提供统一的接口和运行环境,并且为用户提供了便捷的交互方式,使计算机系统高效、稳定、可用。操作系统主要有哪些功能进程和线程的管理:进程的创建、撤销、阻塞、唤醒,进程间的通信等。存储管理:内存和外存(磁盘等)的分配和管理等。文件管理:文件的读、写、创建及删除等。设备管理:设备(输入输出设备和外部存储设备等)的请求或释放以及启动等。网络管理:管理计算机网络的配置、连接、通信和安全等。安全管理。
2025-11-07 21:12:05
681
原创 为什么TCP设计中要设计ACK不重传?
若 ACK 丢失,对方无法收到确认,将触发超时重传机制,从而间接促使新的 ACK 被再次发送。我们在讨论TCP握手挥手的时候,经常谈到报文丢失问题,如果ACK不重新发,就会间接导致SYN/FIN重新发送,岂不是会导致资源浪费?然而,在 TCP 三次握手或四次挥手阶段,如果 ACK 丢失,会导致对方的 SYN 或 FIN 报文被重传。在握手过程中,若客户端发送的第三次 ACK 丢失,服务端会重发 SYN+ACK;在挥手过程中,若最后一次 ACK 丢失,另一方会重发 FIN;收到后对方再发一次 ACK。
2025-11-07 21:10:28
319
原创 三万三千字!Java多线程/并发编程笔记
这个接口负责线程的创建逻辑,可以在创建线程时给它设置有意义的名称,比如加上业务前缀、线程编号等。在实际项目中,比较常见的做法是使用。
2025-10-20 20:13:10
720
原创 两万七千字!JAVA SE笔记
上,重载是指同一个类中存在多个同名方法,通过不同的参数列表进行区分;而重写是子类对父类方法进行重新定义,保持方法签名完全一致。其次在。
2025-10-20 20:11:30
732
原创 Java分布式高并发实战项目:仿12306的分布式高并发票务系统
技术栈:Java17,SpringBoot3,SpringCloud,SpringCloudAlibaba,MySQL,Redis,MyBatis-Plus,RocketMQ等Redis分布式细颗粒度锁串行操作,Redis+Lua 库存预扣减,数据库层乐观锁,异常回退和Seata事务,保证不超卖/数据一致性令牌桶/前端图片验证码限流,Sentinel熔断降级,MQ 排队削峰异步,Redis防护缓存穿透、击穿、雪崩,应对秒杀。
2025-10-10 16:17:28
933
1
原创 Spring boot 3.0整合RocketMQ不兼容的问题
Springboot-3.0已经放弃了spring.plants自动装配,被/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports所取代。在resources下创建META-INF,然后在META-INF下创建文件:org.springframework.boot.autoconfigure.AutoConfiguration.imports。
2025-10-08 19:38:34
428
原创 使用jmeter做压力测试
JMeter 是一款开源的、纯 Java 应用程序,主要用于对软件进行性能测试和负载测试。它的核心功能可以概括为:模拟高并发负载:用一个图形化界面创建测试计划,模拟大量用户同时访问服务器(如 Web 服务器、数据库等),从而测试其性能和稳定性。测量和分析性能:在测试过程中,JMeter 会收集并生成各种性能指标报告,例如:响应时间:服务器处理请求并返回结果所花费的时间。吞吐量:单位时间内处理的请求数量。错误率:请求失败的百分比。。
2025-10-06 15:47:18
1027
1
原创 解决在使用Lombok时maven install 找不到符号的问题
在 “Settings”(设置)->“Plugins”(插件)中搜索并安装 Lombok 插件,然后在 “Settings”->“Build, Execution, Deployment”->“Compiler”->“Annotation Processors” 中启用 “Enable annotation processing”(启用注解处理)。是纯命令行编译,如果没有告诉 Maven 使用 Lombok 注解处理器,编译器就找不到 get/set 方法,因此报。等注解就会在编译时生成对应方法。
2025-09-29 21:23:59
513
原创 Java集合框架深度剖析:结构、并发与设计模式全解析
Java 集合框架是用于存储和操作对象数据的统一 API,主要分为 Collection 和 Map 两大体系。Collection 包括 List(有序可重复)、Set(无序不可重复)和 Queue(队列操作),而 Map 用于存储键值对。常见实现类如 ArrayList、HashSet、HashMap 等。
2025-05-22 11:42:37
1643
原创 初学者视角探索面向对象编程(OOP):从基础特性到实践性延伸
1.OOP 基础概念和特性(语法层面)2.OOP 高级特性(机制层面)3.OOP 的工程实践(设计层面)4.OOP 的实践性延伸(应用层面)5.OOP 的局限性与边界6.其他面向对象编程语言
2025-05-22 11:36:43
1143
原创 关于“集合框架底层原理”的一些问题
在 JDK 1.8 中,取消了分段锁,采用了 CAS(Compare-And-Swap)和 synchronized 关键字相结合的方式,使用数组加链表或红黑树的结构存储键值对,进一步提高了并发性能。答:HashMap 是基于哈希表实现的,底层使用数组加链表或红黑树的结构存储键值对。它支持快速随机访问,时间复杂度为 O(1),但在中间插入或删除元素时,需要移动后续元素,时间复杂度为 O(n)。它适合频繁的插入和删除操作,时间复杂度为 O(1),但随机访问效率较低,时间复杂度为 O(n)。
2025-05-16 13:43:57
355
原创 “数据类型与OOP核心”的一些问题
它是 Java 中非常常用的类,具有不可变性(immutable),即一旦创建,其值不能更改。答:基本类型是 Java 的内置类型,存储在栈内存中,效率较高。包装类型是基本类型的对象表示,存储在堆内存中,提供了更多的方法和功能。当父类引用指向子类对象时,调用的方法是子类中重写的方法,而不是父类的方法。答:自动装箱是指 Java 编译器自动将基本类型转换为对应的包装类型,自动拆箱则是将包装类型转换为基本类型。需要注意的是,频繁的装箱和拆箱可能会影响性能,尤其是在循环或大量数据处理时。
2025-05-16 13:42:14
524
原创 面试篇: Redis(持续更新)
哈希表(Dict):存储元素到分值的映射,分值查询时间复杂度为O(1)。单线程模型:避免多线程竞争和上下文切换,通过I/O多路复用(如epoll)处理高并发请求。高效数据结构:如跳跃表(ZSet)、压缩列表(Hash/List)优化查询效率。跳跃表(SkipList):支持有序性,范围查询时间复杂度为O(log n)。全量同步:从节点首次连接主节点时,主节点生成RDB文件发送给从节点。高可用:每个主节点有1~N个从节点,主节点故障时从节点自动接替。Hash:存储对象(如用户信息),支持字段级操作。
2025-05-14 10:43:44
761
原创 面试篇:MySQL
MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现属于Oracle旗下产品。索引是帮助MySQL高效获取数据的数据结构,类似于书籍的目录。死锁是指两个或多个事务互相持有对方需要的锁,导致都无法继续执行的情况。主从复制是将主数据库的数据同步到一个或多个从数据库的过程。• 共享锁(S锁):读锁,允许多个事务同时读取。• 意向锁:表级锁,表明事务准备对表中的行加锁。• 主键索引:特殊的唯一索引,不允许NULL。• 行锁:锁定单行记录(InnoDB默认)
2025-05-13 10:06:22
753
原创 面试篇:Spring Security
Spring Security 是 Spring 家族中用于提供认证(Authentication)和授权(Authorization)的安全框架。它是高度可定制的安全解决方案,支持 Web 安全、方法级安全、OAuth2、JWT 等主流安全机制。:表示用户的核心信息,如用户名、密码、权限等。:用于根据用户名加载用户信息,是认证过程的关键接口。@Override// 查询数据库返回 UserDetails实现加载用户信息。注入和自定义。可重写添加自定义登录 URL、登录成功/失败处理器等。
2025-05-13 09:46:03
1138
原创 面试篇:Spring MVC
Spring MVC 是 Spring Framework 提供的一个基于 Servlet 的 Web 框架,属于 MVC(Model-View-Controller)架构的一种实现。它通过 DispatcherServlet 作为前端控制器,对请求进行分发和调度,实现请求控制逻辑与业务逻辑、视图渲染的解耦。通过配置或实现接口来自定义视图路径规则:@Bean。
2025-05-12 17:09:59
956
原创 9.3.云原生架构模式
解决了传统架构的扩展性、弹性与运维复杂度问题。:Pod(最小调度单元)、Deployment(副本控制)、Service(服务发现)。通过深度实践这些模式,企业可构建出弹性、安全、高效的云原生系统,从容应对数字化时代的挑战。:绕过虚拟化层(如Hypervisor),容器直接运行在物理机,网络延迟降低50%。:Prometheus + Thanos长期存储、Grafana Loki日志聚合 •。:指标(Prometheus)、日志(Loki)、追踪(Jaeger)全链路覆盖。
2025-05-12 13:34:57
1177
原创 9.2.高并发系统
支付宝三地五中心架构中,每个单元独立处理用户请求,通过全局唯一路由键(如用户ID哈希)分配流量。:本地缓存(Caffeine) + 分布式缓存(Redis) + CDN •。:令牌桶、漏桶、滑动窗口的适用场景(Guava vs Sentinel) •。:Sentinel熔断规则与Fallback逻辑(mock数据/默认值) •。:Snowflake优化(美团Leaf)与号段模式(滴滴TinyID) •。:通过升级硬件(CPU/内存)提升单机性能,适合有状态服务(如数据库)。
2025-05-11 10:00:10
1200
原创 9.1.领域驱动设计
• 战略设计:限界上下文(Bounded Context)与上下文映射(Context Mapping) • 战术设计:实体、值对象、聚合根、领域服务的构建原则。• 领域专家与开发团队的协作范式(Event Storming工作坊设计) • 代码与文档的同步策略(Swagger + DDD Glossary):时标对象(Moment-Interval)、角色(Role)、描述(Description)、参与方(Party) •。:多币种汇率转换导致的小数位丢失(如0.1 USD = 0.78 HKD)。
2025-05-11 09:59:30
966
原创 8.2.CICD自动化
fileTree(dir: it, excludes: ['**/model/**', '**/config/**']) // 排除非业务类。:从高效构建(多阶段、分层优化)到安全管控(Trivy/Clair扫描),再到Harbor治理(保留策略),形成完整镜像生命周期管理。sonar.exclusions=**/test/**, **/generated/** # 排除测试和生成代码。: ◦ 区域化构建集群(美东/欧中/亚太独立Jenkins集群) ◦ 定时任务分流(非高峰时段执行批量测试)
2025-05-10 14:58:41
1128
原创 8.1.Kubernetes进阶
通过源码级原理剖析(如List-Watch实现)和实战配置示例(如CRD定义、调度策略),读者可掌握Kubernetes核心组件的内部工作原理,为后续高阶实践(如Operator开发、多集群管理)奠定坚实基础。• 案例1:API Server OOM问题(增大--default-not-ready-toleration-seconds) • 案例2:大规模集群etcd性能优化(SSD磁盘+心跳参数调整):通过 CSI 插件对接云存储,结合本地卷调度策略优化 I/O 性能。
2025-05-09 15:09:23
845
原创 7.3.隐私合规
• 数据导出(Right to Access):CSV/JSON格式生成与加密下载 • 数据更正(Right to Rectification):版本化存储与历史记录追踪 • 数据可携带(Right to Portability):跨平台数据迁移工具(如Google Takeout)• 第三方供应商管理:DPA(数据处理协议)签署与安全评估 • 用户数据删除:逻辑删除(软删除)与物理删除(GDPR "Right to Erasure") • 数据留存策略:日志保留周期(等保2.0要求6个月以上)
2025-05-09 15:08:49
1229
原创 7.2.安全防御
• 密码存储:BCrypt与Argon2算法实现(Spring Security) • 多因素认证(MFA):TOTP集成(Google Authenticator API) • 生物识别安全:活体检测与本地存储(Android Biometric API)• 数据库加密:透明数据加密(TDE)、字段级加密(Jasypt) • 文件存储安全:权限控制(Linux ACL)、客户端加密(WebCrypto API) • 备份与恢复策略:异地加密备份(AWS S3 + KMS)-- 身份证号 -->
2025-05-07 14:07:56
1440
原创 7.1.认证与授权
MySQL(ms) | Neo4j(ms) | |------------------------|------------|-------------| | 查询用户所有权限 | 120 | 15 | | 更新角色继承关系 | 200 | 30 |• RBAC(基于角色的访问控制):角色继承与权限继承的树形结构设计 • ABAC(基于属性的访问控制):策略语法(JSON/CASL)与动态规则引擎 • PBAC(策略驱动的访问控制):与微服务架构的集成(如Istio RBAC)
2025-05-07 14:07:15
976
原创 6.4.高并发设计
开启Change Buffer(QPS) | 关闭Change Buffer(QPS) | |----------------|--------------------------|--------------------------| | 批量插入索引列 | 12,000 | 6,500 || 写入吞吐量(docs/s) | |-----------------------|----------------------| | 1s | 5,000 | | 30s | 25,000 |
2025-05-07 14:06:43
1181
原创 3.JVM调优与内存管理
• TLAB(Thread-Local Allocation Buffer)与缓存对象分配效率 • 大对象(缓存Value)直接进入老年代的策略 • 年轻代与老年代比例调优(避免缓存更新风暴触发Full GC)• 堆内缓存(Caffeine/Guava)的GC压力分析 • 堆外缓存(Ehcache Offheap/MapDB)的内存泄漏防护 • 混合缓存架构的性能与资源平衡。• Prometheus + Grafana监控堆内/堆外缓存内存 • 基于Micrometer的缓存命中率与GC耗时埋点。
2025-05-07 14:06:04
1284
原创 2.Redis高阶实战
• ziplist与quicklist的内部结构解析 • 大Key检测与分拆方案(10MB+ Value处理) • 内存碎片率(mem_fragmentation_ratio)调优。• Bitmap实现用户行为统计(如日活、留存) • HyperLogLog在去重场景下的误差分析与优化 • Stream在消息队列中的消费组(Consumer Group)管理。• 慢查询日志(slowlog)的分析与优化 • 网络抖动引起的Redis集群脑裂解决方案 • CPU绑核(taskset)与NUMA架构优化。
2025-05-06 20:18:32
1176
原创 1.多级缓存架构
```java public List<Post> getFeed(String userId) { // 先查本地缓存 List<Post> cached = caffeineCache.getIfPresent(userId);• L1:JVM堆内缓存(Caffeine) • L2:堆外缓存(Offheap/Redis) • L3:持久化存储(MySQL/MongoDB)if (lock.tryLock(3, 10, TimeUnit.SECONDS)) { // 尝试加锁。
2025-05-06 20:17:23
1018
原创 面试篇:Spring Boot
Starter 依赖是 Spring Boot 提供的一种模块化依赖管理方式,用来简化常见功能的依赖引入和自动配置。Starter 是一种命名规范,通常命名为,本质上是一个普通的 Maven/Gradle 项目,里面封装了一组常用依赖和可能的自动配置。:包含了构建 Web 应用所需的依赖,如 Spring MVC、Tomcat 等。:包含 JPA、Hibernate、数据库驱动等依赖。目的:让开发者通过引入一个 Starter,就能获得一整套功能所需的所有依赖与配置支持。创建两个模块:用于编写自动配置类。
2025-04-24 21:38:24
954
原创 面试篇:Java并发与多线程
yield()是一种提示线程调度器让当前线程暂停执行,可能会导致当前线程被暂时挂起,等待其他线程执行。join()是一种同步机制,用于确保当前线程在另一个线程执行完成后再继续执行。线程安全指的是在多线程环境下,多个线程对共享资源进行操作时,能够保证数据的一致性和正确性,不会出现竞态条件或数据错误。CAS,全称是 Compare-And-Swap(比较并交换),是一种原子操作,用于实现无锁并发。比较内存中的值是否和预期值相等,如果相等则更新为新值,否则什么都不做。
2025-04-23 21:56:46
979
原创 面试篇:Java集合
JDK 1.7中的 HashMap 主要使用链表来解决哈希冲突,扩容时效率较低,且没有对链表较长的情况进行优化。JDK 1.8引入了红黑树机制,在链表长度较长时将链表转换为红黑树,提高查找效率,避免了性能瓶颈。并且扩容过程和哈希冲突的处理进行了优化,使得整体性能得到了显著提升。总的来说,JDK 1.8 对 HashMap 的实现做了很多性能优化,尤其是在哈希冲突较多的情况下,提供了更好的处理方式。TreeMap的特点是什么?TreeMap 是基于红黑树(Red-Black Tree)实现的有序性。
2025-04-23 17:34:52
956
原创 5.4.云原生与服务网格
spring.cloud.kubernetes.discovery.primary-port-name=http # 指定K8s主端口。spring.cloud.nacos.discovery.register-enabled=false # 禁用Nacos注册。spring.cloud.nacos.config.export=true # 开启配置同步。scaler.aliyun.com/max: "10000" # 阿里云弹性增强。.setCount(1000) # QPS阈值。
2025-04-23 15:12:42
1110
原创 5.3 分布式事务
3.1 高可用部署方案 • TC Server集群配置(DB存储模式) • 事务分组与集群隔离策略 3.2 性能优化技巧 • 批量操作减少全局锁竞争 • 异步提交事务实现。TMRMTCDB开启全局事务(XID)注册分支事务执行业务SQL(生成undo_log)提交/回滚异步补偿(根据undo_log)TMRMTCDB。log.warn("空回滚防御: {}", ctx.getXid());
2025-04-23 14:58:46
656
原创 5.2.Spring Cloud Alibaba生态
log.info("请求耗时: {}ms - {}", duration, exchange.getRequest().getURI());核心组件矩阵与选型指南 • Nacos vs Eureka/Consul(服务发现与配置管理) • Sentinel vs Hystrix(流量控制与容错能力对比).doOnNext(route -> log.info("路由更新: {}", route));isTryPhaseExecuted(context.getXid())) { // 检查try阶段是否执行。
2025-04-23 14:53:06
1019
原创 6.4高并发设计
开启Change Buffer(QPS) | 关闭Change Buffer(QPS) | |----------------|--------------------------|--------------------------| | 批量插入索引列 | 12,000 | 6,500 || 写入吞吐量(docs/s) | |-----------------------|----------------------| | 1s | 5,000 | | 30s | 25,000 |
2025-04-23 14:31:54
976
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅