乐趣区

关于java:JAVA基础知识点

1、 汇合:

(1)List 和汇合 


(2)Map


总结(重要的实现类):
List 的汇合存储元素的特点:
有序可反复;有序指的是存进去的程序和取出的程序雷同,每一个元素都有下标;

  • ArrayList: 底层是数组。非线程平安,遍历快检索效率高,随机增删元素效率慢,但数组开端增加元素,效率不会影响。

1、ArrayList 汇合初始化容量是 10
2、ArrayList 汇合底层是 Object 类型的数组 Object[]
3、减少容量的时候是扩充原容量的 1.5 倍
4、倡议给定一个预预计的初始化容量,缩小数组的扩容次数,这是 ArrayList 汇合比拟重要的优化策略。

  • LinkenList: 底层是双向链表,非线程平安,随机增删快,遍历慢。
  • Vector: 线程平安,底层是数组,然而效率低下

Set 汇合存储元素的特点:
无序不可反复,无序指的是存进去的程序和取出来的程序不肯定雷同,另外 Set 汇合中元素没有下标。

  • HashSet: 底层是 HashMap, 放到 HashSet 汇合中的元素等同与放到 HashMap 汇合 key 局部了。
  • TreeSet: 底层是 TreeMap, 放到 TreeSet 汇合中的元素等同与放到 TreeMap 汇合 key 局部了。

SortedSet 汇合存储元素特点:
无序不可反复,然而 SortedSet 汇合中的元素是可排序的。可排序值的是能够依照大小顺序排列
Map:

  • HashMap: 底层是 Hash 表,非线程平安,效率比 Hashtable 高,能够存储 null 的 key 和 value,但 Null 作为键只能有一个,null 作为值能够有多个。
  • TreeMap: 底层是二叉树,TreeMap 汇合的 key 能够主动依照大小程序排序。绝对于 HashMap 来说,次要多了对汇合中的元素依据 key 排序和对汇合内元素的搜寻的能力。
  • Hashtable: 底层是 Hash 表,线程平安,不容许有 null 键和 null 值。
  • Propertie:是线程平安的,并且 key 和 value 只能存储字符串 String.

2、JVM 的内存构造以及治理


3、Collection 汇合中的 contains() 办法:

 汇合中的 contains() 办法底层代码中有 equals 办法,所以比拟的是内容,不是地址。然而如果是自定义对象的话就要重写 equals 办法,不然会放回 false;

   自定义对象 User() 没有重写 equals 之前 

 重写 equals 之后 

退出移动版