自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HBase写和读的机制

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

2016-09-25 11:55:17 1073

原创 编写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 435

原创 散列码中的equals问题

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

2016-09-23 21:06:31 244

原创 各种Map的特点

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

2016-09-23 20:47:19 1083

转载 Java动态代理

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

2016-09-07 10:25:20 239

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

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

2016-09-06 21:17:34 470

转载 数组是对象吗?

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

2016-09-06 10:15:57 2804

原创 Class对象

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

2016-09-05 21:23:56 324

原创 字符串

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

2016-09-01 15:59:11 202

空空如也

空空如也

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

TA关注的人

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