分类: Software Architect

14 篇文章

JDK源码系列(五)
ConcurrentHashMap 类 ConcurrentHashMap 1.7 在JDK1.7中ConcurrentHashMap采用了数组+分段锁的方式实现。 Segment(分段锁)-减少锁的粒度 ConcurrentHashMap中的分段锁称为Segment,它即类似于HashMap的结构…
JDK源码系列(四)
Synchronized 类 基础概念 如果某一个资源被多个线程共享,为了避免因为资源抢占导致资源数据错乱,我们需要对线程进行同步,那么synchronized就是实现线程同步的关键字 synchronized 的作用是保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效…
JDK源码系列(三)
HashMap 类 基础概念 定义 Hash 表也称为散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。 哈希表,它是通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表,只需要 O…
JDK源码系列(二)
ArrayList 类 ArrayList 类结构 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复: ArrayList 是一种变长的集合类,基于定长数组实现 ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通…
JDK源码系列(一)
Object 类结构 概述 已知所有类的基类——java.lang.Object Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类 Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。 那么, 在编译源代…
团队管理
赢 使命和价值观 一个优秀的互联网公司: 一定要有很明确的「使命」「愿景」和「价值观」 才能支撑公司长期取得「赢」的结果。 使命和价值观的本质是为了实现: 思想统一 目标统一 行动统一 让价值观在实践中运行,建立完善的奖罚机制: 鼓励践行价值观的行为 处罚违反价值观的行为 公司和团队里的每个角色、项…
双 Token 三验证解决方案
问题分析 以往的项目大部分解决方案为单 token: 用户登录后,服务端颁发 jwt 令牌作为 token 返回 每次请求,前端携带 token 访问,服务端解析 token 进行校验和鉴权 存在的问题: 有效期设置问题:有效期设置需要对时间做平衡,不能太短也不能太长 续期问题:一旦过期,用户必须重…
P0 级重大资损事故复盘
事故概述 事故背景 由于项目组某核心研发成员与项目组内其他成员发生不可调解的矛盾,导致事发当天该成员被裁,出于报复心理,该核心研发成员对正处于线上内测的项目进行了一系列损毁行为,包括: 删除线上数据库、当日数据库备份文件及相关日志文件 删除 apifox 的项目接口及相关文档,导致接口文档不可用 上…
Netty 应用与原理
Java IO 模型 本篇示例代码仓库:learn-netty 基础概念 在 I/O 操作中有这么两组概念,其中同步/异步 要和线程中的同步线程/异步线程要区分开,这里指的是同步IO / 异步IO 阻塞/非阻塞: 没有数据传过来时,读会阻塞直到有数据;缓冲区满时,写操作也会阻塞 非阻塞遇到这些情况,…
Redis 应用与原理(三)
Redis Cluster 解决方案 基础概念 首先,分析一下主从+哨兵模式带来的问题: 在主从 + 哨兵的模式下,仍然只有一个 Master 节点,当并发请求较大时,哨兵模式不能缓解写压力 在 Sentinel 模式下,每个节点需要保存全量数据,无法进行海量数据存储 因此,在 Redis 3.0 …