首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java-Base
订阅
bobchen3377
更多收藏集
微信扫码分享
微信
新浪微博
QQ
24篇文章 · 0订阅
从源码角度认知ArrayList,LinkedList和HashMap
本文会从源码(JDK 1.8)的角度来分析以下几个Java中常用的数据结构,主要会分析原理与实现,以及每个数据结构所支持的常用操作的复杂度。 我们可以看到,HashMap是采用数组+链表实现的,在JDK 1.8中,对HashMap做了进一步优化,引入了红黑树。当链表的长度大于8…
注册中心 Eureka 源码解析 —— 调试环境搭建
- [1. 依赖工具] - [2. 源码拉取] - [3. Eureka-Server 启动] - [3.1 MockRemoteEurekaServer] - [3.2 Eureka-Server war 包]
JAVA 拾遗 — CPU Cache 与缓存行
最近的两篇文章,介绍了我参加的中间件比赛中一些相对重要的优化,但实际上还存在很多细节优化,出于篇幅限制并未提及,在最近的博文中,我会将他们整理成独立的知识点,并归类到我的系列文章「JAVA 拾遗」中。 这问题问的和中小学试卷中的:“它们之间有区别吗?如有,请说出区别。”一样没有…
面试官: 既然已经有数组了,为什么还要链表
对于不少开发者而言,链表(linked list)这种数据结构既熟悉又陌生,熟悉是因为它确实是非常基础的数据结构,陌生的原因是我们在业务开发中用到它的几率的确不大. 链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指…
我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。 这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。 既然是合理的推断,那就要要足够的依据,所以我们可…
利用策略模式优化过多 if else 代码
不出意外,这应该是年前最后一次分享,本次来一点实际开发中会用到的小技巧。 条件少还好,一旦 else if 过多这里的逻辑将会比较混乱,并很容易出错。 刚开始条件较少,也就没管那么多直接写的;现在功能多了导致每次新增一个 else 条件我都得仔细核对,生怕影响之前的逻辑。 最后…
来谈谈限流-RateLimiter源码分析
前一篇文章提到了限流的几种常见算法,本文将分析guava限流类RateLimiter的实现。 RateLimiter有两个实现类:SmoothBursty和SmoothWarmingUp,其都是令牌桶算法的变种实现,区别在于SmoothBursty加令牌的速度是恒定的,而Smo…
BAT 经典算法笔试题 —— 逆转单向链表
不善言谈的优秀程序员在面试中往往是要吃巨亏的,你没有办法通过说话来轻易证明自己的实力。不论是大厂还是小厂,大部分面试官都不具备优秀的面试能力,它们也只能通过三言两语观察一下面试者的表面工夫。有很多这样吃了亏的程序员,不喜欢准备面试,不喜欢吹嘘虚假的不存在的经验和能力,甚至连网上…
Sentinel 发布里程碑版本,添加集群流控功能
自去年10月底发布GA版本后,Sentinel在近期发布了另一个里程碑版本v1.4(最新的版本号是v1.4.1),加入了开发者关注的集群流控功能。 为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)…
聊聊 TCP 长连接和心跳那些事
可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇…