- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 GC and Tuning
GC和GC Tuning GC的基础知识 1.什么是垃圾 C语言申请内存:malloc free C++: new delete c/C++ 手动回收内存 Java: new ? 自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题: 忘记回收 多次回收 没有任何引用指向的一个对象或者多个对象(循环引用) 2.如何定位垃圾 引用计数(ReferenceCount) 根可达算法(RootSearching) 3.常见的垃圾回收算法 标记清除(mark sweep) - 位
2020-08-31 09:49:28
252
原创 concurrenthashmap
concurrenthashmap为什么是线程安全 一、HashMap和ConcurrentHashMap的对比 我们用一段代码证明下HashMap的线程不安全,以及ConcurrentHashMap的线程安全性。代码逻辑很简单,开启10000个线程,每个线程做很简单的操作,就是put一个key,然后删除一个key,理论上线程安全的情况下,最后map的size()肯定为0。 Map myMap=new HashMap<>(); // ConcurrentHashMap myMap=new Co
2020-08-31 09:47:57
133
原创 几种树形结构的比较
几种树形结构的比较 1.二叉查找树 (BST Binary Search Tree) 1.若任意结点的左子树不空,则左子树上所有结点的值均不大于它的根结点的值。 2. 若任意结点的右子树不空,则右子树上所有结点的值均不小于它的根结点的值。 3.任意结点的左、右子树也分别为二叉搜索树。 优点: 二叉搜索树是能够高效地进行如下操作的数据结构。 1.插入一个数值 2.查询是否包含某个数值 3.删除某个数值 缺点: 如果我们插入的数据刚好是有序的,这个时候 二叉树 会变成链表( “斜树”),时间复杂度会退化成
2020-08-31 09:47:19
1709
原创 数据库分库分表
数据库分库分表 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。 数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到
2020-08-31 09:44:31
234
flume文档总结
2018-01-30
zookeeper简介
2018-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人