自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 Mysql查询优化三部曲

mysql profile explain slow_query_log分析优化查询 在做性能测试中经常会遇到一些sql的问题,其实做性能测试这几年遇到问题最多还是数据库这块,要么就是IO高要么就是cpu高,所以对数据的优化在性能测试过程中占据着很重要的地方,下面我就介绍一些msyql性能调优过程中经常用到的三件利器: 1、慢查询 (分析出现出问题的sql) 2、Explain (显示了mysql如

2017-07-23 15:08:26 513

转载 反爬虫技术方案

随之大数据的火热,网络上各种网页抓取/爬虫工具蜂拥而来,因而,网页数据成了大家竞争掠夺的资源,但网站运营者却要开始保护自己的数据资源,以避免被竞争对手获取到自己的数据,防止更大的商业损失。下面总结一下反爬虫策略及其应对方法。 一、什么是爬虫和反爬虫爬虫和反爬虫作为相生相克的死对头,无论爬虫多厉害,都是能被复杂的反爬虫机制发现,同样的,无论反爬虫机制多么缜密,都是能被高级的网络爬虫所攻破,胜负的关键

2017-07-23 10:28:38 11660 3

原创 文章标题

public class Sort { public static void swap(int[] array,int i,int j){ int temp = array[i]; array[i] = array[j]; array[j] = temp; } public static void insertSort(int[]

2017-05-18 11:06:07 301

原创 自增主键的优缺点

自增主键 这种方式是使用数据库提供的自增数值型字段作为自增主键,它的优点是: (1)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; (2)数字型,占用空间小,易排序,在程序中传递也方便; (3)如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。 其实它的缺点也就是来自其优点,缺点如下: (1)因为自动增长,在手动要插入指定ID的记录时

2017-05-16 14:54:27 19809 2

转载 AVL 红黑树 B(+)树 跳表 字典树 应用场景及分析

1 AVL树:平衡二叉树,一般是用平衡因子差值决定并通过旋转来实现,左右子树树高差不超过1,那么和红黑树比较它是严格的平衡二叉树,平衡条件非常严格(树高差只有1),只要插入或删除不满足上面的条件就要通过旋转来保持平衡。由于旋转是非常耗费时间的。我们可以推出AVL树适合用于插入删除次数比较少,但查找多的情况。 2 红黑树:平衡二叉树,通过任何一条从根到叶子的简单路径上各个节点的颜色进行约束,确保没有

2017-05-09 17:14:25 2751

转载 Reids Geo

redis3.2新功能–GEO地理位置命令介绍概述 redis3.2发布rc版本已经有一段时间了,估计RedisConf 2016左右,3.2版本就能release了。3.2版本中增加的最大功能就是对GEO(地理位置)的支持。说起redis的GEO特性,最大的贡献还是咱们中国人。redis作者在对3.2引进新特性的博客中介绍了为什么支持GEO。GEO hashing的api是在Ardb实现的,Ar

2017-05-08 20:26:55 421

原创 IO模型基础知识

I/O基础 1、java1.4之前,java对I/O支持不完善,存在以下问题: . 没有数据缓冲区,I/O性能存在问题。 . 没有c或者c++的channel概念,只有输入输出流 . 同步式阻塞I/O通信,通常会导致通信线程较长时间阻塞 . 支持的字符集有限,硬件可移植性不好 2、Linux网络I/O模型 linux内核将所有外部设备都看作一个文件来操作,对文件的操作都

2017-05-08 20:10:21 308

原创 java基础总结#多线程

1.进程:正在运行的程序,是系统进行资源分配的独立单位。 2.线程:进程的执行路径,调度和执行的单位,单个路径单线程,多个路径多线程。 本质区别:每个进程拥有自己的一套变量,而线程只是共享数据。 多进程的意义:提高CPU的使用率。 多线程的仪的意义:提高应用程序的效率 3.创建多线程的三种基本方式: ①继承Thread类,重写run方法,自定义类的实例,调用start() 方法启动

2017-05-06 21:55:37 314

原创 进程和线程的区别及联系

1、进程:正在运行的程序,是系统进行资源分配的独立单位。 2、线程:进程的执行路径,调度和执行的单位,是cpu调度的最小单位,单个路径单线程,多个路径多线程。 区别: ①调度的基本单位:在传统的OS中,进程作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。在每次被调度时,都需要进行上下文切换,开销较大。而在引入线程的os中,已把线程作为调度和分派的基本单位,因此线程是能独立运行的基

2017-05-06 12:07:57 434

转载 HTTP协议请求响应过程和HTTPS工作原理

HTTP协议 http协议主要应用在服务器与客户端之间,客户端接收超文本。 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议。 与之类似的还有文件传送协议(FTP),简单邮件协议(SMTP)等。 HTTP实在七层网络模型张的应用层的协议,由发送请求和接收响应构成,是一个标准的客户端服务器模型。与此同时,HTTP是一个无状态的协议。也就是说,不能通过一个状态判断连接的状态,因此有

2017-05-04 19:29:08 1138

原创 TCP拥塞控制

拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载,拥塞控制要做的都有个前提,就是网络能够承受现有的网络负荷。拥塞控制是个全局性的过程。 几种拥塞控制方法 慢开始 拥塞避免 快重传 快恢复 1.慢开始和拥塞避免 发送方维持一个叫做拥塞窗口的状态变量,拥塞窗口取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。慢开始的思路:当主机开始发送

2017-05-02 21:42:07 452

原创 TCP流量控制

流量控制就是让发送方发送速率不要太快,要让接收方来得及接收 1.利用滑动窗口实现流量控制 发送方的发送窗口不能超过接收方给出的接收窗口的数值,TCP的窗口单位是字节,不是报文段。建立连接时 接收方告诉发送方接收窗口的值,其次接收方在接收数据时在ACK报文中携带rwnd 的值从而做到动态调整。比如 :初始的rwnd=400 发送过程中接收方返回了一条ACK报文(ACK= 1,ack = 201,r

2017-05-02 19:00:45 577

原创 TCP保证可靠传输

① 应用数据被分割成TCP认为最合适发送的数据块。这和UDP完成不同,应用程序产生的数据报长度保持不变。 ②当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 ③当TCP接受到来自TCP连接的另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。 ④TCP将保持它首部的数据校验和,这是一个端到端的校验和,目的

2017-05-02 15:39:12 284

原创 GC算法

如何判断对象已死? 1. 引用计数算法 该算法实现简单,判定效率也挺高,在部分场景下是个不错的算法,虽然在FlashPlayer,Python和游戏脚本领域被广泛的应用的Squirrel中都用到了引用计算算法进行内存管理。但是主流的Java 虚拟机并没有采用这种方式 ,最主要的原因是它很难解决对象之间的循环引用问题。 2. 可达性分析算法 该算法的基本思路就是通过一系列被称为GC Roots

2017-05-02 15:23:14 291

原创 TCP/IP面试题(持续更新)

No.1 TCP/IP基础 (这些知识点都可以参考:http://www.cnblogs.com/newwy/p/3234536.html)No.2 常见面试题 TCP与UDP的区别: ①TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后通过四次挥手结束连接。而UDP是无连接的 ②TCP协议保证数据按序发送,按序到达,提供超

2017-02-24 19:42:13 713

空空如也

空空如也

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

TA关注的人

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