首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java之源码解析
订阅
蜜汁微笑
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
结合实战和源码来聊聊Java中的SPI机制?
SPI在Java中的全称为Service Provider Interface,是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 Java是一种面向对象语言,虽然Java8开始支持函数式编程和Strea…
Java架构-Java JDK 动态代理
代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject…
Java 8时间和日期API 20例
伴随lambda表达式、streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。
解读 Java 并发队列 BlockingQueue
最近得空,想写篇文章好好说说 java 线程池问题,我相信很多人都一知半解的,包括我自己在仔仔细细看源码之前,也有许多的不解,甚至有些地方我一直都没有理解到位。 说到线程池实现,那么就不得不涉及到各种 BlockingQueue 的实现,那么我想就 BlockingQueue …
gradle插件、注解、javapoet和java asm库实战
首先来介绍一下实战项目的所解决的问题 : 当一个Android工程中如果已经使用不同的module来做业务隔离。那我们就可能有这种需求,module1想实例化一个module2的类,一般要怎么解决呢? module1依赖module2 把module2的这个类沉到底层库,然后m…
Java集合分析之Map-这个Map有顺序(LinkedHashMap & TreeMap)
前文已经分析了 HashMap ,根据其实现,了解到其元素无序特性。今天来分析下两个能保证元素顺序的 Map —— 保证插入顺序的 LinkedHashMap 和可自定义排序规则的 TreeMap ,来看看到底是怎么实现有序的。
深度解析Hashtable
HashTable同样是基于哈希表实现的,其实类似HashMap,只不过有些区别,HashTable同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashTable比较古老, 是JDK1.0就引入的类,而H…
HashMap就是这么简单【源码剖析】
threshold这个成员变量是阈值,决定了是否要将散列表再散列。它的值应该是:capacity * load factor才对的。 我们是根据key的哈希值来保存在散列表中的,我们表默认的初始容量是16,要放到散列表中,就是0-15的位置上。也就是tab[i = (n - 1…
JUC解析-LongAdder
在JDK1.8的atomic中增加了一个原子操作类LongAddr,与AtomicLong相比,在效率方面有了不小的提升。 初始化一个volatile long base和一个int [] cell的数组,数组中的元素都初始化为0。 当线程进行原子操作的时候,优先对base变量…
Java 集合源码分析系列
Java集合是我们使用最频繁的工具,也是面试的热点,但我们对它的理解仅限于使用上,而且大多数情况没有考虑过其使用规范。本系列文章将跟随源码的思路,分析实现的每个细节,以期在使用时避免各种不规范的坑。