自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 第五章 创建高性能索引

索引优化应该是对查询性能优化最有效的手段了。一.索引基础索引可以包含一个或多个列的值。如果索引包含多个列,其顺序非常重要。因为MYSQL只能高效地使用索引的最左前缀列。1.索引的类型在MYSQL中,索引是在存储引擎层而不是服务器层实现的。下面是MYSQL支持的索引类型:(1)B-Tree索引使用B-Tree数据结构来存储数据。B-Tree意味着每一个叶子页到根的距离相同。叶子节...

2019-06-30 12:20:17 146

转载 第四章 Schema与数据类型优化(重要)

一.选择优化的数据类型下面几个原则有助于作出更好选择:(1)选择更小的尽量使用可以正确存储数据的最小数据类型。但是要确保没有低估需要存储的值的范围。(2)简单数据类型就好简单数据类型的操作通常需要更少的CPU周期。这里有两个例子:应该使用MySQL内建的类型而不是字符串来存储日期和时间。应该用整型存储IP地址。(3)尽量避免NULLMySQL对包含NULL的查询更难优化,因为...

2019-06-12 16:00:15 140

转载 第三章 服务器性能剖析

一.性能优化间接我们将性能定义为完成某件任务所需要的时间度量。很多人在优化时,都将精力放在修改一些东西上,却很少进行精确的测量。一项任务的时间分为两部分:执行时间和等待时间。if you want to optimize execution time,the best way is location the time cost by sub-task, and lost some task...

2019-06-12 14:06:41 132

转载 第一章 MySQL架构与历史

注意 : the most important character that MySQL have is storage engine architecture, which seperate the Query Processing and other Server Task and Data’s storage/extract.一.Mysql逻辑架构1.并发控制1.1 读写锁共享锁(...

2019-06-11 18:04:25 114

原创 二叉树的一些总结

一.二叉树1.二叉树的第i层至多有2^(i-1)个节点 2.深度为k的二叉树至多有2^k-1个节点 3.对于任意二叉树,若终端节点数为n0,度为2的节点数为n1,n0 = n1+1二.完全二叉树只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。三.满二叉树除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树。四.二叉树的性质(1) 在二叉树中,第i

2017-05-21 15:15:42 386

原创 聚类的基本知识

聚类的基本知识聚类的两个基本问题:1.性能度量 2.距离计算1.性能度量聚类性能度量亦称“有效性指标”。 聚类性能度量大致有两类:一类称为“外部指标”,指将聚类结果与某个“参考模型”进行比较。 另一类称为“内部指标”,指直接考察聚类结果而部利用任何参考模型。2.距离计算在进行距离计算时,属性上是否定义了“序”关系是很重要的。 属性可以划分为有序属性和无序属性: (1)有序属性:可以直接在属

2017-01-02 22:08:30 391

翻译 HBase中Split的详细过程

分裂的细节并不简单。当分裂发生时,新创建的“女儿regions”不会将所有的数据立即写入到新文件中。相反,它创建一些与象征性引用文件相似的小文件,称为Reference files,这些文件根据根据切分点指向父store file的头部或者尾部。reference file用起来和普通数据文件没什么区别,但是其中只有一半的记录。region只会在没有引用指向父region不变的数据文件时才会真正的分

2016-12-06 13:03:23 1825

原创 关于MapReduce传参数

1.利用Configuration如果要传的参数为字符串,则利用conf.set(),在map或者reduce中用conf.get()即可。如果要传一个hashmap或者arraylist等集合类,可以使用toString方法,然后在取得的时候通过字符串处理将其还原出来。2.利用Stringifier如果要传的参数为一个map对象,则可以用DefaultStringifier.set()方法,取

2016-11-29 19:52:37 1076

原创 HBase写和读的机制

HBase写机制 默认情况下,执行写入时会写到两个地方:预写式日志(write-ahead log,也称HLog)和MenStore。Hbase默认方式是把写入动作记录在这两个地方,以保证数据持久化。只有当这两个地方的变化信息都写入并确认后,才认为写动作完成。 MemStore是内存里的写入缓冲区,HBase中数据在永久写入磁盘之前在这里累积。当Memstore填满后,其中的数据会刷写到硬盘,

2016-09-25 11:55:17 1026

原创 编写hashCode()的基本指导

1.给int变量赋予某个非零值常量,比如17.2.位对象内每个有意义的域f(既每个可以做equals()操作的域)计算出一个int散列码c.boolean c=(f?0:1)byte、char、short或int c=(int)flong c=(int)(f^(f>>>32))float c=Float.floatToIntBits(f)double long

2016-09-24 14:28:04 422

原创 散列码中的equals问题

在java中,所有的类都继承与Object类,而默认的Object.equals()方法只是比较对象的地址,所以一个类实例并不等于另一个类实例。 所以,如果要使用自己的类作为HashMap的键,必须同时重载hashCode()和equals()。

2016-09-23 21:06:31 230

原创 各种Map的特点

各种map实现的特点1.HashMapMap基于散列表的实现(取代了Hashtable)。插入和查询“键值对”的开销是固定的。可以通过构造器设置容量和负载因子,以调整容器性能。2.LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入顺序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点点,但是迭代访问时反而更快,因为它使用链表维护内部次序。3.T

2016-09-23 20:47:19 1053

转载 Java动态代理

1.动态代理是什么东西?动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体实现。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道他在跟代理还是实际对象打交道。2.为什么用?因为动态代理可以对请求进行任何处理3.哪些地方需要动态代理?不允许直接访问某些类;对访问要做特殊处理。Java开

2016-09-07 10:25:20 228

原创 反射:运行时的类信息

RTTI如果想要知道某个对象的类型信息,这个类型在编译时必须已知,这样才能使用RTTI识别它。假设你获取了一个指向某个并不在你的编程空间中的对象的引用,在编译时你的程序根本没法获知这个对象所属的类(假设从磁盘文件或者网络连接中获取了一串字节代表一个类)。反射提供了一种机制:用来检查可用的方法,并返回方法名。人们想要在运行时获取类的信息的另一个动机,是希望提供在跨网络的远程平台上创建和运行对象的能力,

2016-09-06 21:17:34 454

转载 数组是对象吗?

三.java中数组到底是什么?1)不管在其他语言中是什么,数组在Java中可得看作一个对象,它有一些值得探讨的特性。Java中的数组其实是一个对象,但是确实是一个特殊的对象,实在是太特殊了,以致我们都不好把它多做对象处理。java是纯面向对象的语言,数组也是一个对象。首先我们看一下表面现象,数组创建的时候采用的是如下语句:MyClass[] arr = new

2016-09-06 10:15:57 2705

原创 Class对象

要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的。这项工作是由称为Class对象的特殊对象完成的,它包含了与类有关的信息。 类是程序的一部分,每个类都有一个Class对象。每当编写并且编译了一个新类,就会产生一个Class对象。为了生成这个类的对象,运行这个程序的JVM将使用被称为“类加载器”的子系统。所有的类都是在对其第一次使用时,动态加载到JVM中的。当程序创建第

2016-09-05 21:23:56 312

原创 字符串

1.不可变stringString对象是不可变的。String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象丝毫未动。每当把String对象作为方法的参数时,实际上传递的是引用的一个拷贝。对于一个方法而言,参数是为改方法提供信息的,而不是像让该方法改变自己的。2.“+”与StringBuilder在对字

2016-09-01 15:59:11 195

原创 用LinkedList实现Stack

java原始的Stack有着一些缺点,所以可以用LinkedList自己实现一个Stack。public class Stack<T>{ private LinkedList<T> storage = new LinkedList<T>(); //入栈 public void push(T v){ storage.addFirst(v); }

2016-08-30 15:24:13 507

原创 Collection和Map

java容器类类库的用途是“保存对象”,分为两类:(1)Collection一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素。Set中不能含有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。(2)Map一组成对的“键值对”对象,允许使用键来查找值。映射表允许我们使用另一个对象来查找某个对象,它也被称为“关联数组”,因

2016-08-30 13:46:36 203

原创 构造器初始化的顺序

1.在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的零。2.调用基类构造器。3.按照声明的顺序调用成员的初始化方法。4.调用导出类的构造器主体。

2016-08-25 16:55:27 276

原创 final关键字

final关键字作用的地方数据、方法和类1.final作用于数据对于基本数据,final使数据恒定不变。对于对象引用,final使引用恒定不变,一旦一个引用被初始化指向一个对象,就无法再把其指向另一个对象。然后,对象本身是可以修改的。这一限制同样也应用于数组,它也是对象。一个即是static又是final的域只占据一块不能改变的存储空间。static final的值在装载时已经被初始化,并不是每

2016-08-24 15:47:49 212

转载 java中接口的作用

访问权限的控制通常被称为具体实现的隐藏。把数据和方法包装在类中,以及具体实现的隐藏,常共同被称为封装。出于两个原因,访问权限将边界划在了数据类型的内部。1.设定客户端程序员可以使用和不可以使用的界限。2.将接口与实现分离。客户端程序员除了可以向接口发送信息之外什么也不可以做的话,就可以随意更改所有不是public的东西,而不会破坏客户端代码。

2016-08-23 11:27:00 237

原创 static

通常来说,当创建类时,就是在描述那个类的对象的外观与行为。 执行new来创建对象时,数据存储空间才被分配。 当声明一个事物是static时,就说明这个域或方法不会与包含它的类的任何实例关联在一起。 一个static字段对每个类来说都只有一份存储空间,而非static字段对每个对象都有一份存储空间。 一个类的所有实例共享被static定义的字段。比如:class StaticTest{

2016-07-24 10:35:47 169

转载 JAVA存储数据的5个地方

1 寄存器这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。寄存器的数量及其有限,所以其会根据需求自动配置,不能直接控制。2 堆栈位于通用RAM(随机访问存储器),但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针向下移动,分配新的内存;向上移动,释放那些内存。速度仅次于寄存器。创建程序时,java系统必须知道存储在堆栈内所有的确切生命周期,以便上下移动指针。一般来说对象引

2016-07-23 18:26:33 423

原创 public private protected

public private protectedpublic:所有人都可以使用。private:除了类创建者和类的内部方法之外的任何人都不可以使用。protected:与private类似,但是继承的类可以访问protect对象。

2016-07-23 11:12:35 190

空空如也

空空如也

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

TA关注的人

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