
java
文章平均质量分 59
huangyueranbbc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka源码阅读
一、源码编译官网下载源码,17年出版的书中源码使用的版本为kafka-0.10.1。 准备JDK1.8、Idea、maven、gradle环境。注:kafka-0.10.1不支持gradle5.X,请使用gradle4.X版本 配置kafka源码中的maven地址,改为: maven { url'http://maven.aliyun.com/nexus/content/groups/public/'} maven { url'http://maven.aliyun...原创 2021-03-04 11:10:21 · 180 阅读 · 1 评论 -
Java登录Kerberos认证过期问题
问题:最近CDH集群增加了kerberos认证,发现了JavaWeb应用启动后,超过24小时后,kerberos凭证过期到时查询Hbase失败的问题。Spark程序连接CDH时,通过principal和keytab配置方式,内部会将凭证到hdfs上,供Executor和Driver使用。当凭证Ticket快要失效时,会通过Keytab重新生成凭证。spark2-submit \ --master yarn \ --deploy-mode cluster \ --num-exec.原创 2020-11-30 16:29:36 · 7643 阅读 · 7 评论 -
Java对象结构
在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构:HotSpot虚拟机的对象头包括两部分信息: markword 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程...原创 2018-11-21 17:27:22 · 190 阅读 · 0 评论 -
RedisMonitor监视器
RedisMonitor监视器 。主要用于监视redis集群环境下的命令。依赖于RedisUtils工具包。 https://blog.youkuaiyun.com/huangyueranbbc/article/details/84326844 github地址:https://github.com/huangyueranbbc/RedisMonitor The commands that ...原创 2018-11-21 17:45:56 · 475 阅读 · 0 评论 -
HashMap扩容
HashMap拉链法解决冲突。HashCode相同,使用链表进行存储。HashMap首先使用位桶进行存储,如果碰撞达到阈值会进化链表,JDK8下,如果链表长度达到阈值且map内数组容量达到64,会进化成为红黑树。扩容方法: resize()方法 put(K key, V value) --> putVal(int hash, K key, V value, boo...原创 2018-11-23 17:47:57 · 320 阅读 · 0 评论 -
缓存伪共享问题以及解决方案缓存行填充
缓存伪共享共享对象存在同一个缓存中,由于MESI协议,一个对象中一些不需要改变的属性因为其他改变的属性,导致整个对象的缓存进入到M被修改状态。MESI缓存一致性协议:https://blog.youkuaiyun.com/huangyueranbbc/article/details/84554271目前的CPU是按照64K的缓存行(Cache Line)进行读取,如果读取的数据在同一个Ca...原创 2018-11-26 18:32:22 · 448 阅读 · 0 评论 -
Java对象结构
JAVA对象结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构: HotSpot虚拟机的对象头包括两部分信息: markword 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分...翻译 2018-11-26 18:38:33 · 266 阅读 · 0 评论 -
Java实现并查集
public class 并查集 { static int pre[]; // pre[n]记录节点n的父亲,如果n的父亲是n自身,则n是Root根节点 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.ne...原创 2018-11-27 09:53:35 · 676 阅读 · 0 评论 -
Java小技巧——动态加载class类,减少项目依赖包
Java动态加载class类最常见的一种场景,某些功能服务项目里根本没有使用到,但是因为项目里引用了该依赖包的class类,所以你不得不在即使没有使用到该服务的情况下,仍让要添加依赖到项目中。但是通过动态加载class类,可以让你的项目大大减少第三方包的依赖。核心思路就是通过反射和基本的判断语句去控制对象的实例化。以Kafka源码为例:以下是kafka中的压缩模块代码...原创 2019-02-20 15:04:31 · 1167 阅读 · 1 评论