标签:Java
-
第9篇:死磕 java集合之TreeMap源码分析(二)- 内含红黑树分析全过程
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 插入元素 插入元素,如果元素在树中存在,则替换value;如果元素不存在,则插入到对应的位置,…
-
第8篇:死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 删除元素 删除元素本身比较简单,就是采用二叉树的删除规则。 (1)如果删除的位置有两个叶子节点…
-
第7篇:死磕 java集合之TreeMap源码分析(四)-内含彩蛋
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 二叉树的遍历 我们知道二叉查找树的遍历有前序遍历、中序遍历、后序遍历。 (1)前序遍历,先遍历…
-
第5篇:死磕 java集合之ConcurrentHashMap源码分析(一)
开篇问题 (1)ConcurrentHashMap与HashMap的数据结构是否一样? (2)HashMap在多线程环境下何时会出现并发安全问题? (3)ConcurrentHas…
-
第4篇:死磕 java集合之ConcurrentHashMap源码分析(二)——扩容
本章接着上一章,链接直达请点我。 初始化桶数组 第一次放元素时,初始化桶数组。 private final Node<K,V>[] initTable() { Node<…
-
第3篇:死磕 java集合之ConcurrentHashMap源码分析(三)
本章接着上两章,链接直达: 死磕 java集合之ConcurrentHashMap源码分析(一) 死磕 java集合之ConcurrentHashMap源码分析(二) 删除元素 删…
-
第2篇:死磕 java集合之ConcurrentSkipListMap源码分析——发现个bug
前情提要 点击链接查看“跳表”详细介绍。 拜托,面试别再问我跳表了! 简介 跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。 跳表在原有的有序链表上面增加了多级…
-
第1篇:死磕 java集合之HashSet源码分析
问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet怎么保证添加元素不重复? (3)HashSet是否允许null元素? (4)HashSet…
-
18. sharding-jdbc源码之复杂路由实现
阿飞Javaer,转载请注明原创出处,谢谢! 路由条件 ParsingSQLRouter.java中决定是简单路由还是复杂路由的条件如下; private RoutingResul…
-
17. SQL重写为limit Integer.MAX_VALUE的无奈
阿飞Javaer,转载请注明原创出处,谢谢! 这篇文章源于sharding-jdbc源码分析之重写的遗留问题,相关sharding-jdbc源码如下: private void a…
-
8. sharding-jdbc源码之结果合并总结
阿飞Javaer,转载请注明原创出处,谢谢! 分页性能分析 性能瓶颈 查询偏移量过大的分页会导致数据库获取数据性能低下,以MySQL为例: SELECT * FROM t_orde…
-
19-十九、Java 使用 Redis
引言 JAVA 可以通过 jedis 包访问 Redis 安装 jedis 包 JAVA 语言访问 Redis 需要先安装 Redis 服务和 jedis 包 如果你还未安装 JA…
-
MyBatis学习总结(六)——调用存储过程
一、提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二、准备数据库表和存储过程 create table p_user( id int primary k…
-
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
一、搭建开发环境 1.1、使用Maven创建Web项目 执行如下命令: mvn archetype:create -DgroupId=me.gacl -DartifactId=sp…
-
MyBatis学习总结(一)——MyBatis快速入门
一、Mybatis介绍 MyBatis是一个支持普通******SQL******查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设…
-
Maven学习总结(五)——聚合与继承
一、聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1、聚合配置代码 <modules> <module>模块一</module> …
-
Maven学习总结(二)——Maven项目构建过程练习
上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一、创建Maven项目 1.1、建立Hello项目 1、首先建立Hel…
-
Maven学习总结(一)——Maven入门
一、Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目…
-
7. kafka序列化&反序列化
序列化 kafka序列化消息是在生产端,序列化后,消息才能网络传输。而构造KafkaProducer代码如下: Properties props = new Properties(…