== 首先,得说明java数据类型分为基本数据类型和引用数据类型, 基本数据类型有8种: 浮点型:float(4 byte), double(8 byte) 整型:byte(1 byte), short(2 byte), int(4 byte) , long(8 byte) 字符型: char(2 ...
分类:
其他好文 时间:
2018-10-11 12:57:10
阅读次数:
138
ava的Object是所有其他类的父类,从继承的层次来看它就是最顶层根,所以它也是唯一一个没有父类的类。它包含了对象常用的一些方法,比如getClass、hashCode、equals、clone、toString、notify、wait等常用方法。所以其他类继承了Object后就可以不用重复实现这些方法。这些方法大多数是native方法,下面具体分析。主要的代码如下:publicclassObj
分类:
其他好文 时间:
2018-10-10 17:11:39
阅读次数:
161
Set中不能有重复元素,通过equals方法判断 HashSet : 为快速查找而设计的Set,存入的元素必须定义hashCode()方法,可以有一个null值 TreeSet :底层为树结构(红黑二叉树),内部有序.存入的元素必须实现comparable接口,不能有null值 LinkedHash ...
分类:
编程语言 时间:
2018-10-09 23:09:23
阅读次数:
225
checked 和 unchecked关键字用来限定检查或者不检查数学运算溢出的;如果使用了checked发生数学运算溢出时会抛出OverflowException;如果使用了unchecked则不会检查溢出,算错了也不会报错。 1. 一段编译没通过的代码 1 int a = int.MaxValu ...
下面是HashTable源码中的put方法: 注意上面注释标注的地方: HashTable对于元素在哈希表中的坐标算法是: 将对象自身的哈希值key.hashCode()变为正数:hash & 0x7FFFFFFF 将上面得到的哈希值对表长取余,映射到哈希表中去。 HashMap中哈希算法比Hash ...
分类:
编程语言 时间:
2018-10-08 12:33:07
阅读次数:
202
一 概念简介 1、打印对象和toString方法:toString方法是系统将会输出该对象的“自我描述”信息,用以告诉外界对象具有的状态信息。 2、Object 类提供的toString方法总是返回该对象实现类的类名 + @ +hashCode值。 二 打印对象实例 ...
分类:
编程语言 时间:
2018-10-07 15:40:02
阅读次数:
144
实现摘要:map+双向链表 Java中的LinkedHashMap本身自带lru属性。 java实现:v1版本 feature 实现基本的lru语义 不能扩容 evict回调 范型 ...
分类:
其他好文 时间:
2018-10-05 13:47:42
阅读次数:
166
参考: 《Java 并发实践》 李大狗大神的大作和源码非常值得分析阅读 1. 的`hashCode`:数据缓存在类变量中 字符串类维护了一个常量池—每当使用 创建对象,都会首先检查字符串是否在常量池中—有的话直接返回池中对象的实例引用,否则则创建一个对象返回 并将对象放进池中 。 没当调用 方法时, ...
分类:
其他好文 时间:
2018-10-04 15:57:30
阅读次数:
157
HashSet Set接口,元素不能重复,要确保重写hashCode()方法和equals()方法,这样才能比较对象的值是否相等HashMap Map接口,key可为null线程安全ConcurrentHashMap(Map接口)、HashTable按次序存储LinkedHashMap(HashMa ...
分类:
其他好文 时间:
2018-09-30 14:42:15
阅读次数:
141
闲来无事,就实现一个简单的map来练练手吧! HashMap的底层实现主要是基于数组和链表来实现的,HashMap中通过key的hashCode来计算hash值的,由这个hash值计算在数组中的位置,将新插入的元素放到数组的这个位置,如果新插入的元素的hash值跟这个位置上已有元素的hash值相同, ...
分类:
其他好文 时间:
2018-09-28 01:46:43
阅读次数:
139