随笔分类 - 底层原理
摘要:MySQL树 一、hash和二叉树 二、磁盘IO 三、B-树 四、B+树 数据库的主要功能就是:存数据和查询数据,怎么存就不谈了,重点来看查询数据。 简单看一下数据结构的划分: 数据结构 一、hash和二叉树 使用hash查找,直接就是key-value非常快,时间复杂度O(1);使用二叉树从算法上
阅读全文
摘要:TCP三次握手四次挥手 一、TCP Header 二、三次握手 三、四次挥手 一、TCP Header TCP Header TCP通信时,发送的报文分为:消息头和消息体两部分。 消息头如上图所示,重点关注ACK、SYN和FIN这几个标志位。 字段含义 ACK 确认号 SYN 请求建立连接 FIN
阅读全文
摘要:线程池ThreadPool 线程池概念 常用线程池和方法 1.测试线程类 2.newFixedThreadPool固定线程池 3.newSingleThreadExecutor单线程池 4.newCachedThreadPool缓存线程池 5.newScheduledThreadPool定长线程池
阅读全文
摘要:hadoopMapReduce 1. MapReduce流程 2. Shuffle流程 1. MapReduce流程 MapReduce流程 切片: 对数据进行逻辑划分,默认大小是一个block块大小. 以文件为单位,所以注意小文件问题 计算规则:Math.max(minSize, Math.min
阅读全文
摘要:hadoophdfs 1. HDFS写流程 2. HDFS写流程 1. HDFS写流程 HDFS写流程 副本存放策略: 上传的数据块后,触发一个新的线程,进行存放。 第一个副本:与client最近的机器(基于性能考虑) 第二个副本:跨机器存放该副本(考虑数据安全性) 第三个副本:与第一个,第二个副本
阅读全文
摘要:equals hashcode 当新建一个java类时,需要重写equals和hashcode方法,大家都知道!但是,为什么要重写呢? 需要保证对象调用equals方法为true时,hashcode必须相同. 先看下面的例子: 没有重写equals和hashcode方法User类 public cl
阅读全文
摘要:hash hashcode java 1.hash 2.hash算法 1.hash Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于
阅读全文
摘要:HashMap 底层原理 1.HashMap底层概述 2.JDK1.7实现方式 3.JDK1.8实现方式 4.关键名词 5.相关问题 1.HashMap底层概述 在JDK1.7中HashMap采用的是 数组Array 和 链表Link 这两种数据结构,而在JDK1.8中对底层实现进行了优化,开始采用
阅读全文