自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KCHEN

这是一个菜鸟的博客

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 HTTP和HTTPS协议

应用层1.1. DNS域名解析服务1.1.1. 域名服务器的类型(1) 根域名服务器:最高层次的域名服务器,管理所有的顶级域名服务器。只有13个不同的IP地址的域名。(2) 顶级域名服务器:负责管理在该服务器下注册的所有二级域名(3) 权限域名服务器:负责一个区的域名服务器(4) 本地域名服务器:当一台主机发送域名查询请求时,这个请求报文就会发送给本地域名服务器。1.1.2. 域名解析过程的两种查...

2018-04-17 16:33:15 448

转载 TCP和UDP协议

传输层传输层是为应用进程间提供逻辑通信。1.1. UDP协议1.1.1. UDP的主要特点(1) UDP是无连接的,在传输数据之前不需要建立连接。(2) UDP是尽最大努力交付的。UDP不提供可靠交付。(3) UDP是面向数据报的。(4) UDP支持一对一,一对多,多对一,多对多通信。(5) UDP不提供拥塞控制。(6) UDP首部开销小只有8个字节。 1.1.2. UDP的首部格式源端口目的端口...

2018-04-17 16:31:09 281

原创 Java自动内存管理机制

自动内存管理机制1. Java内存区域与内存溢出异常1.1. 运行时数据区域(1) 程序计数器:程序计数器用来记录当前线程执行的字节码行号。程序计数器是线程私有的,因为CPU通过时间轮转来为线程服务,为了线程切换后能够恢复的正确的位置,在每一个线程都保存一个程序计数器。如果执行的是本地方法则,程序计数器值为空。(2) Java虚拟机栈:Java虚拟机栈是Java方法的内存模型,每一个方法被执行的过...

2018-04-17 15:59:43 701

原创 高效并发

高效并发1. 概述1.1. 引入缓存由于内存和处理之间的速度差异,所以说在内存和处理之间加入一层高速缓存。将需要运算的数据复制到缓存中,使运算快速执行,处理器执行后,再将缓存中的结果同步到内存。1.2. 数据不一致性引入缓存解决了内存和处理器速度不匹配问题,但是引入了缓存不一致性问题。在多处理器系统中,每一个处理器都有自己的缓存,而它们共享主内存。当多个处理器处理主内存中同一块区域的数据时,将可能...

2018-04-17 15:55:50 150

原创 高性能MySql笔记(3)-创建高性能索引

创建高性能索引索引在MYSQl中也叫键(key),是存储引擎用于快速找到记录的一种数据结构。 例如:SELECT name FROM STUDNET WHERE ID=5;如果MYSQL在ID上建立索引,则MYSQL将使用该索引找到ID=5的行,,也就是说MYSQL先在索引上按值进行查找,然后返回所有包含该值的数据行。 索引可以包含一列也可以包含多列,如果索引包含多列,那么列的顺序十分重要,因为M...

2018-03-28 14:22:14 178

原创 算法笔记(6)-冒泡排序

冒泡排序算法描述两两比较两个元素的大小,如果两个元素的顺序相反则交换位置,每一轮扫描都会将最小元素的放到最前面(或者最大的元素放到最后面)。 算法步骤(1)比较相邻的元素,如果第一个比第二个大,则交换它们的顺序。(2)从开始第一对到结尾最后一对重复执行步骤1。会将最大的元素放到最后一个位置(3)针对所有的元素重复上述步骤,最后一个位置已定不需要操作。(4)持续每次对越来越小的序列执行上述操作。 算...

2018-03-23 16:04:41 141

原创 算法笔记(5)-快速排序

快速排序快速排序是分治算法的一种,是应用最广泛的算法。 算法描述(1)选取一个元素作为基准元素。(2)将数组分成两个部分,左边的元素都比基准元素小,右边的元素都比基准元素大。(3)在左右两部分再重复步骤1~2,直到数组有序。 算法实现javapackage algorithm.sort;/** * @author kaichen * */public class Quick { ...

2018-03-23 15:44:11 101

原创 高性能MySql笔记(2)-范式和反范式

范式和反范式设计关系型数据库时,需要遵从不同的规范,设计合理的关系型数据库,不同的规范被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余约小。在关系型数据库中有六中范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),BCNF,第四范式(4NF),第五范式(5NF)。一般数据库设计到第三范式就行了。第一范式1NF是对属性的原子性约束,要求属性具有原子性,不可分。属性不可分下面这...

2018-03-22 21:44:39 549

原创 算法笔记(4)-归并排序

归并排序将两个有序的序列,合并成一个更大的有序序列。对数组进行排序,递归的将数组分成两半,分别进行排序,再将结果合并。归并排序的优点是:对于任意长度为N的数组其时间复杂度为O(N*logN)。但是需要额外的空间,典型的空间换时间。 算法描述(1)创建一个容器数组,大小与待排序数组相同。(2)定义两个指针,分别指向两个已排序序列的起始位置。(3)两个指针位置进行比较,选择相对小的元素放入到容器数组中...

2018-03-22 19:37:34 105

原创 算法笔记(3)-希尔排序

希尔排序希尔排序是插入排序的一种变体。插入排序对于顺序随机的数组,速度回很慢,因为它只会交换相邻的元素,因此元素只能一点一点的从一端移动到另一端。如果最小的元素在最后,则需要移动N-1次才能将其移动到另一端。希尔排序使用交换不相邻的元素以对数组进行排序。 算法思想希尔排序的思想是,使得数组中任意间隔为h的元素都是有序的。希尔排序将比较元素分成几个区域来实现插入排序的性能,这样可以让元素一次性的朝最...

2018-03-22 16:38:33 127

原创 算法笔记(2)-插入排序

插入排序插入排序:对于当前索引,左边元素都是有序的,但是并不一定是元素的最终位置,为了给更小的元素腾出位置,需要移动位置。与插入排序不同的是:如果数组的元素基本有序,则插入排序要比随机顺序的快很多。算法描述:(1)从第一个位置开始,认为该元素已经被排序(2)取出下一个元素,在已经排序的元素序列中,从后向前扫描。(3)如果该元素(已排序)大于新元素,则将该元素移到下一位置(4)重复步骤3,知道找到已...

2018-03-22 13:51:44 119

原创 算法笔记(1)-选择排序

选择排序步骤:首先从数组中找到最小的元素,其次将它与数组中的第一个元素交换(如果第一个元素就是最小的则与其自身交换)。再次,在剩下的元素中找到最小的元素,将它与数组中的第一个元素交换。如此反复,直到整个数组有序。下面是选择排序的代码:package algorithm.sort;import java.util.Arrays;import java.util.Random;/** * @...

2018-03-22 13:06:44 121

原创 高性能MySql笔记(1)-数据类型优化

数据类型优化1. 选择优化的数据类型MYSQL支持的数据类型非常多,选择正确的数据类型存储对于获得高性能只管重要。下面有几个简单的原则:(1)更小的通常更好,应该尽量使用能够正确存储的最小数据类型。(2)简单就好,简单的数据类型通常需要更少的CPU周期。(3)尽量避免NULL,查询中包含NULL的列,对MYSQL来说更难优化,因为可为NULL的列,是的索引,索引统计,值的比较更加复杂。可为NULL...

2018-03-21 23:13:31 105

原创 LintCode 11. 二叉查找树中搜索区间

给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x (k1 <= x <= k2) 其中 x 是二叉查找树的中的节点值。返回所有升序的节点值。样例如果有 k1 = 10 和 k2 = 22, 你的程序应该返回 [12, 20, 22]. 20 / \ 8 22 / \4 ...

2018-03-15 19:37:14 185

原创 Hashtable和HashMap的区别

1.同步与非同步的区别Hashtable 是同步的,HashMap是非同步的。在多线程并发环境下,Hashtable可以直接使用,而HashMap需要进行同步处理。2.继承的类不同Hashtable继承的是Dictionary类,而HashMap继承的是AbstractMap类。他们都实现了Map接口。3.能否存null值不同Hashtable中的key和value都不能为空,

2018-01-08 20:30:58 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除