2020年10月14日

java的标记算法

摘要:1、三色标记法 (1)基本算法:要找出存活对象,根据可达性分析,从GC Roots开始进行遍历访问,可达的则为存活对象。 (2)三色:我们把遍历对象图过程中遇到的对象,按“是否访问过”这个条件标记成以下三种颜色 1)白色:尚未访问过。 2)黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部 阅读全文

posted @ 2020-10-14 18:21 hdc520 阅读(14) 评论(0) 推荐(0) 编辑

2020年9月23日

数据的列式与行式存储以及大数据的存储格式

摘要:一、数据的列式与行式存储 1、列式存储是相对于传统关系型数据库的行式存储来说的。两者的区别就是如何组织表;从下图可知,行式存储是将数据的一条记录(多列组成)存储起来的,但是列式存储是将数据的一条记录的各列分开进行存储。 2、区别 (1)数据写入区别 1)行存储的写入是一次完成。可以保证写入过程的成功 阅读全文

posted @ 2020-09-23 15:04 hdc520 阅读(38) 评论(0) 推荐(0) 编辑

2020年9月19日

spark处理数据倾斜随机值的代码

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2020-09-19 15:34 hdc520 阅读(0) 评论(0) 推荐(0) 编辑

2020年9月16日

Spark的BlockManager数据存储与管理机制

摘要:一、概述 BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由相应节点上的BlockManager进行管理。 (1)driver端上的存储与管理 Driver上有BlockManagerMaster,负责对各个节点上的BlockMan 阅读全文

posted @ 2020-09-16 10:46 hdc520 阅读(31) 评论(0) 推荐(0) 编辑

2020年9月11日

java1.8的新特性

摘要:一、lambda表达式与函数式接口 (1)lambda表达式:lambda表达式本质上是一段匿名内部类即接口使用匿名方式创建对象,也可以是一段可以传递的代码 //匿名内部类 Comparator<Integer> cpt = new Comparator<Integer>() { @Override 阅读全文

posted @ 2020-09-11 10:37 hdc520 阅读(23) 评论(0) 推荐(0) 编辑

2020年9月8日

树和图详解

摘要:(1)二叉树的性质 1、在二叉树的第 i 层上至多有2^(i-1)个节点 2、深度为 k 的二叉树至多有2^(k)-1个节点 3、对于任何一个二叉树,若其叶子节点数为n1,度为2的节点数为n2,则n1=n2+1 树的节点树=所有节点度之和+1 4、具有n个节点的完全二叉树的深度为floor(log( 阅读全文

posted @ 2020-09-08 09:49 hdc520 阅读(43) 评论(0) 推荐(0) 编辑

2020年9月4日

类加载器与双亲委派模型

摘要:1、类加载过程 Class 文件需要加载到虚拟机中之后才能运行和使用,系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 2、类加载器 1、BootstrapClassLoader(启动类加载器) :负责加载 %JAVA_HOME%/lib 阅读全文

posted @ 2020-09-04 21:11 hdc520 阅读(21) 评论(0) 推荐(0) 编辑

java定位常见性能

摘要:(1)CPU占满 1、使用top查看CPU占满的进程 2、通过执行top -Hp 32805 查看Java线程情况 3、执行 printf '%x' 32826 获取16进制的线程id,用于dump信息查询,结果为 803a。最后我们执行jstack 32805 |grep -A 20 803a 来 阅读全文

posted @ 2020-09-04 20:54 hdc520 阅读(25) 评论(0) 推荐(0) 编辑

Java反射

摘要:(1)反射机制:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。 反射就是把java类中的各种成分映射成一个个的Java对象,例如:一个类有:成员变量、方 阅读全文

posted @ 2020-09-04 20:37 hdc520 阅读(33) 评论(0) 推荐(0) 编辑

2020年9月3日

kafka与rabbitmq的区别

摘要:(1)开发语言不同 1、RabbitMQ是高并发的erlanng语言开发。 2、kafka是基于Scala和Java语言开发,主要用于处理活跃的流式数据,大数据量的数据处理上。 (2)结构不同 1、RabbitMQ采用AMQP(Advanced Message Queuing Protocol,高级 阅读全文

posted @ 2020-09-03 17:03 hdc520 阅读(60) 评论(0) 推荐(0) 编辑

导航