- 博客(26)
- 收藏
- 关注

原创 Hystrix总结
Hystrix是什么? Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。Hystrix能做什么?在通过第三方客户端访问(通常是通过网络)依赖服务出现高延迟或者失败时,为系统提供保护和控制在分布式系统中防止级联失败快速失败(Fail fast)同时能快速恢复提供失
2016-12-01 22:38:34
12269
原创 如何写一棵AVL树
二叉查找树二叉查找树有一个缺陷就是查询效率跟树的高度有关。在极端情况下,查询效率为n。 如何解决二叉查找树效率低问题要增加查询效率,高效的方案是在插入的时候对树进行一下平衡操作,降低树的高度,从而减少查询次数。 如何将普通二叉树变为平衡二叉树解决方案:在插入和删除阶段进行适当的调整在平衡二叉树中有这样一个规定: 对于任意一个节点,如果其左右子树高度差小于1,那么该节点是平衡的所以对于节点X
2017-01-06 17:39:57
922
2
原创 如何写一棵简单的二叉查找树
二叉查找树二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值左、右子树也分别为二叉排序树;这样的树有一个特点:所有节点在x轴的映射是有序的。 一棵查找树的主要功能有:插入,查找,删除。 除此之外还需要一些辅助
2016-12-30 16:38:09
689
原创 Java类继承中的静态块与构造
//创建一个父类class SuperClass{ static{ System.out.println("SuperClass init"); } static int SuperValue = 5; public SuperClass(){ System.out.println("Construct Super"); }
2016-12-21 10:31:04
438
原创 TCP流量控制
TCP流量控制为什么要TCP流量控制?TCP流量控制不是为了减少网络压力,那是TCP拥塞控制的作用。下面简单介绍一下TCP流量控制的目的: 作用对象:相互连接着的两个终端(发送端与接收端)。 解决问题:解决发送端与接收方吞吐量不匹配的问题,比如当一个发送端A每秒发10个数据包,而接收端B每秒只能接受1个数据包,那么就会出现丢包的情况,所以发送端与接收端要的吞吐量要匹配。 目的:让发送端根据接收
2016-12-08 01:08:41
2771
原创 生产者消费者的实现与思考
生产者消费者的Java实现生产者:负责生产消息,在缓冲区满后休眠; 消费者:负责消费消息,在缓冲区空后休眠;两者的休眠何时唤醒?1.生产者休眠,是因为缓冲区满,所以只要消费者进行了消费,那么缓冲区就会有新的空间,生产者就可以继续生产,故每次消费者消费以后都要试图唤醒生产者,无论生产者是否休眠。2.消费者休眠,是因为缓冲区空,所以只要生产者进行了生成,那么缓冲区就会有新的消息,消费者就可以继续生产,
2016-12-04 17:01:43
5424
原创 单例的几种写法
单例模式的运用十分广泛,下面给出单例模式的几种写法1.懒汉懒汉就意味着只在需要的时候才进行初始化,但是线程不安全public class Singleton { private static Singleton instance; public static Singleton getInstance(){ if(instance == null){
2016-12-02 15:23:47
445
原创 几种常见的排序算法
选择排序选择排序:每次在未排序部分选择一个最小的放到前面,并把最小值的标记向后移动一位 特点: 1. 运行时间和输入无关(但是并没有用,因为即使输入时是有序的,仍然会进行遍历与比较,复杂度不变 2. 数据移动量是最少的,因为每次只移动一个元素,移动N次 时间复杂度:最坏n^2,最优n^2平均n^2 缺点:未排序部分若有序,仍会继续遍历 public static void
2016-12-02 13:24:32
295
原创 MySQL表锁相关
表锁LOCK TABLES:锁定表,如果表已经被其他线程锁定,则会等待,直到可以获取锁。 UNLOCK TABLES:释放线程持有的全部锁 读与读不互斥; 读与写,写与写互斥。 所以当一个线程获取读锁时,其他线程也可以获取读锁,但不能获取写锁。 当一个线程获取写锁时,其他线程不能获取读锁也不能获取写锁。表锁使用例子随便创建一张表create table stu(
2016-12-02 01:28:59
1552
原创 Mysql常用引擎
Mysql引擎简介Mysql支持多种存储引擎,下面几个操作可以直观的实践一下:1.查询数据库支持哪些引擎 SHOW ENGINES \G2.创建新表时指定引擎 CREATE TABLE test{ id NOT NULL AUTO_INCREMENT, }ENGINE=MYISAM3.修改表的引擎 ALTER TABLE test engine = innodb;各
2016-12-01 22:02:12
1615
原创 Git常用命令
git命令本地操作: 命令 作用 git init 初始化一个本地仓库 新建为 master主分支 git status 查看当前分支状态 git add <文件名> 将文件更改添加到分支状态中 相当于文件等待被提交 git commit -m <”注释”> 提交并添加描述信息 git branch 查看分支 前面带*号的为当前所在分支 gi
2016-12-01 16:11:15
1501
原创 awk练习题(一)
文件中包含名字,电话号码和过去三个月里的捐款,用:分隔具体内容如下:Mike Harrington:[510] 548-1278:250:100:175 Christian Dobbins:[408] 538-2358:155:90:201 Susan Dalsass:[206] 654-6279:250:60:50 Archie McNichol:[206] 548-1348:250:10
2016-11-15 23:28:45
2851
转载 HBase基本API(java)操作(增删改查)
转载:【HBase基本API(java)操作(增删改查)】 http://www.2cto.com/database/201503/381955.html/* * 创建一个students表,并进行相关操作 */import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.ap
2016-11-10 15:39:43
1512
转载 Hbase之遍历获取数据
转载:[Hbase之遍历获取数据] http://www.cnblogs.com/similarface/p/5799460.htmlimport org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableN
2016-11-10 13:39:48
4900
原创 MySQL优化
MySQL优化 数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争优化层次硬件层优化:主要考虑减少IO,减少CPU利用率,资源竞争。数据库层优化:表间关系,数据结构,索引,数据库状态等。SQL语句优化:SQL的代码优化。优化成本:优化SQL和索引缓存读写分离分区垂直拆分水平切分1.硬件层面的优化 《MySQL Innodb IO优化 之 配置
2016-09-19 17:23:48
1269
原创 MySQL索引
使用索引(1)对于创建的多列索引,只要查询的条件中用到了最左边的列,索引一般就会被使用。 (2)对于使用like 的查询,后面如果是常量并且只有%号不在第一个字符,索引才可能会 被使用。 注:前置位字符数量需要多余索引要求的数量如索引 create index ind on emp(ename(2)); 那么 like “xx%”;xx不小于两个字符时候才会进行索引调用(3)如果对大
2016-09-16 23:19:28
1198
原创 MySQL练习题
SQL语句层次from table 从哪张表找 where condition 找满足什么条件的 group by xxx 按照谁进行分组 having xxx 分组之后满足什么条件 order by xxx 按照谁排序(必须是输出列) select 选择要输出的列如:从cust_order表中找出2016年至今消费总
2016-09-16 23:16:21
1319
原创 MYSQL常用函数
1.字符串函数 函数 作用 CONCAT(S1,S2…Sn) 将S1,S2,Sn合并为一个字符串 INSERT(str,x,y,instr) 将字符串str从位置x开始y个字符长的子串替换为instr LOWER(str) 变小写 UPPER(str) 变大写 LEFT(str,x) 返回字符串左边的x个字符 RIGHT(str,x) 返回字符串
2016-08-27 13:57:44
1497
原创 Mysql运算符
Mysql运算符MYSQL运算符包括算数运算符、比较运算符、逻辑运算符与位运算符。1.算数运算符 运算符 作用 + 加法 - 减法 * 乘法 /,DIV 除法 %,MOD 模运算,取余 除法运算与模运算如果除数是0,返回NULL。 示例: select 1/0,100%0;结果为:NULL | NUll2.比较运算符比较结果为真,返回1;为假,返回
2016-08-27 11:53:28
1505
原创 MYSQl字符串类型
CHAR与VARCHARChar:长度固定为创建时声明的长度,长度范围为 0~255 Varchar:长度可变,长度为0~255(5.0.3以前,以后为0~65535)Char插入时会把尾部空格删除 Varchar会保留空格测试代码:Create table vc(v VARCHAR(4) c CHAR(4)); Insert into vc values('ab ','ab ');
2016-08-26 17:01:32
1584
原创 MySQL数值操作
MySQL数值操作显示宽度可以在类型名称后面的括号中指定显示宽度,显示宽度就是SELECT结果的显示宽度,与范围无关。 显示宽度只用于显示,并不能限制取值范围和占用空间。 如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是 INT整型所允许的最大值。INT(5) ZEROFILL表示数值宽度小于5位时在数字前面填满0; 默认情况是用空格填充,经过试验发现空格没
2016-08-26 14:15:16
1663
原创 数值字节与范围
字节与范围字节与范围换算:1个字节8位。如 1000 0000。 计算机中数值一律用二进制数来存储,用最高位表示符号。0为正,1为负,剩下的为数值的二进制值。存储可以加上UNSIGNED取消符号: 如 Tinyint UNSIGNED 。默认情况下都是有符号的。 所以存储范围也分为两类:无符号 1 1111111(二进制) = 255(十进制)有符号 1 1111111 (二进制) =
2016-08-26 07:34:03
2118
原创 MySQL数值类型
MySQL数值类型严格数值类型:Integer,Smallint,Decimal,Numeric; 近似值类型:Float,Real,Double,Precision字节与范围字节与范围换算:1个字节8位。如 1000 0000。 计算机中数值一律用二进制数来存储,用最高位表示符号。0为正,1为负,剩下的为数值的二进制值。存储可以加上UNSIGNED取消符号: 如 Tinyint UNSIGN
2016-08-26 00:49:32
1409
原创 MYSQL基础语句
DDL :数据定义语言,定义数据库(create,drop,alter,use,show)查看数据库show databases;创建数据库create database databaseName;进入数据库 use databaseName;创建表 create table tablename(c_name1 c_type1,c_name2 c_type2 constraints);查
2016-08-25 21:11:34
1319
原创 查找(二):有序符号表
1.2 有序符号表一个无序的符号表几乎是不可用的,因为其插入或查询的时间复杂度总是O(N)。对于大量的数据的操作性能十分低下。因此,实现一个有序的符号表十分必要。1.2.1 一个有序符号表API 方法名称 功能 void put(Key key,Value val) 将键值存入表中(若值为空则将键key从表中删除) Value get(Key key) 获取键key对于的值(若k
2016-08-09 17:51:34
2384
原创 查找(一):简单符号表
1.1 符号表符号表主要运用于键值对(key-value)的操作。用例能够将一个键值对插入符号表,并希望在以后能够从符号表中按照键(key)找到相应的值(value)。 符号表从某种意义上与数组类似,数组通过下标来寻找值,符号表通过key来寻找值。 符号表的规则也与数组类似: 1. 每个key只对应一个value; 2. 当向表中存入的key与已有的key冲突时,新的value会覆盖旧的
2016-08-09 16:37:51
2735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人