自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见面试题型

Java中的常见关键字:abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,final,finally,float,for,goto,if,implements,import,instanceof,int,interface,long...

2020-04-21 11:02:35 118

原创 TCP和UDP的比较

TCP的优点:可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。TCP的缺点:慢,效率低,占用系统资源高,易被攻击。TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接...

2020-04-16 18:40:39 232

原创 数组与List之间的转化

//将数组转化为list String str[] = new String[5]; str[0] = "a"; str[1] = "b"; str[2] = "c"; str[3] = "d"; str[4] = "e"; List<String> list = Arrays.asList(str); //调用asList()方法 list.str...

2019-07-17 20:27:53 161

原创 如何决定使用HashMap还是TreeMap

TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排列的;TreeMap的实现也是基于红黑树结构。而HashMap<K,V>的Key值实现散列hashCode(),分布是散列的均匀的,不支持排序,数据结构主要是桶(数组),链表或红黑树。所以,查询的时候使用HashMap,增加、快速创建...

2019-07-17 20:11:51 6358 2

原创 为什么重写了equals()必须重写hashCode()

当向HashSet中添加元素时,首先调用此元素所在类的hashCode()方法,计算此元素的哈希值,此哈希值决定了此元素在HashSet中存放的位置;若此位置没有被存储元素则直接存储,若已有元素则通过元素所在类的equals()方法比较两个元素是否相同,相同则不能被添加。...

2019-07-17 20:02:12 83

原创 HashSet的实现原理

HashSet是基于HashMap实现的,是一个存放链表的数组。它不保证存储元素的迭代顺序;此类允许使用努力了元素(但最多只能有一个值为null)。HashSet中不允许由重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值都是统一的一个固定对象private static final PRESENT = n...

2019-07-17 19:57:48 2817

原创 HashMap的实现原理

jdk1.7:数组 + 链表jdk1.8:数组 + 链表 + 红黑树

2019-07-17 19:40:45 81

原创 ConcurrentHashMap数据存储结构以及高效率原因分析

ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment是一种可重入锁ReentrantLock,在ConcurrentHashMap中扮演的角色,HashEntry则用于存储键值对数据。一个ConcurrentHashMap中包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表。一个Segment里面包含一个H...

2019-07-17 19:37:32 1055

原创 ComparaCble和Comparator的不同之处

ComparablCe和ComparatorC都死用于比较数据大小的C,实现Comparable接口需要重写compareTo()方法,实现Comparator接口需要重写compare()方法,这两个方法的返回值都是int,用int类型的值来确定比较结果。...

2019-07-17 19:24:06 133

原创 fail-fast与fail-safe之间的区别

快速失败(fail-fast):在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个modCount变量。集合在被遍历期间如果内容发生变化,就会改变modCount的值。每当迭代器使用hashNext()/ne...

2019-07-17 18:13:20 285

原创 HashMap中为什么Hash的长度为2的幂而&位必须为奇数

从Key映射到HashMap数组的对应位置,会用到一个Hash()函数:index = Hash(“apple”)为了实现一个尽量分布均匀的Hash()函数,我们通过利用Key的HashCode值来做某种运算。index = HashCode(Key) & (Length -1) //Length是HashMap的长度Hash算法最终得到的index结果,完全取决于Ke...

2019-07-16 00:01:52 328

原创 TreeMap和TreeSet在排序时如何比较元素以及Collections工具类中的sort()方法如何比较元素

TreeMap要求存放的键值对映射的键必须实现Comparable接口,从而根据键对元素进行排序。TreeSet要求存放的对象所属的类必须实现Comparable接口,该接口提供了比较元素的compareTO()方法,当插入元素时会回调该方法比较元素的大小。Collections工具类的sort()方法有两种重载的形式,第一种要求传入的待排序容器中存放的对象必须实现Comparable接口以实...

2019-07-15 23:44:43 229

原创 HashSet和HashMap的区别

HashSet:实现了Set接口,它不允许集合中出现重复的元素。在将对象存储在HashSet之前,要确保重写了hashCode()和eauqls()方法,这样做的目的是比较对象的值是否相等,从而确保集合中没有存储相同的对象。如果不重写上述两个方法,那么将使用public boolean add(Object obj)方法默认实现,在Set中添加元素时,如果元素重复时返回"false",如果添加成功...

2019-07-15 23:33:12 135

原创 HashMap和HashTable的区别和联系

一、区别继承的父类不用HashMap继承自AbstractMap类,而Hashtable继承自Dictionary类。线程安全不同HashMap是线程不安全的,HashTable是线程安全的。是否有同步方法HashMap不是同步的,HashTable是同步的。是否提供contains方法HashMap把HashTable的contains方法去掉了,改成contai...

2019-07-14 00:53:05 84

原创 ArrayList和LinkedList的区别和联系

一、区别ArrayList是实现了基于动态数据的数据结构,LinkedList是基于链表结构实现。对于随机访问的get()和set()方法,ArrayList的效率要高于LinkedList,因为LinkedList要移动指针。对于增加和删除操作的add()和remove()方法,LinkedList效率要高于ArrayList,因为ArrayList要移动数据。二、联系ArrayL...

2019-07-14 00:06:30 1328

原创 List、Set、Collection、Map的区别和联系

Collection:Java.util下的一个接口,是各种集合结构的父接口,List和Set是继承自它的子接口,Collecting是最基本的集合接口,Java SDK中不提供直接继承自Collection的类,而是提供继承自它子接口的类,如List和Set。所用的Collection类都支持一个Iterator()方法来遍历。List:List接口是有序的,会精确的将元素插入到指定的位置(允...

2019-07-13 23:45:41 2712 1

空空如也

空空如也

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

TA关注的人

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