1、Java 常用集合及特点? List:ArrayList、LinkedList、Vector、Stack Set:LinkedSet、HashSet、TreeSet Queue->Deque->LinkedList。 Map:HashMap、LinkedHashMap、TreeMap Dictionary->HashTable->Properties。 Vector: 底层数据结构是数组,查询快,增删慢,线程安全,效率低,默认长度为 10,超过 会 100%延长,变成 20,浪费空间。 ArrayList :基于数组,便于按 index 访问,超过数组需要扩容,扩容成本较高。 LinkedList:使用链表实现,无需扩容。 HashSet:底层数据结构是哈希表(无序,唯一),通过 hashcode()和 equals()保证元素唯 一。 LinkedHashSet: 底层数据结构是链表和哈希表(FIFO 插入有序,唯一),由链表保证元素 有序,由哈希表保证元素唯一。85 TreeSet:底层数据结构是红黑树(唯一,有序),通过自然排序和比较器排序保证元素有 序,根据比较返回值是否是 0 来保证元素唯一性。 TreeMap 是有序的。 HashMap :空间换时间,哈希冲突不大的情况下查找数据性能很高。 LinkedHashMap 基本特点:继承自 HashMap,对 Entry 集合添加了一个双向链表。 2、开启一个线程的方法? 继承 Thread 类,新建一个当前类对象,并且运行其 start()方法 实现 Runnable 接口,然后新建当前类对象,接着新建 Thread 对象时把当前类对象传进 去,最后运行 Thread 对象的 start()方法 实现 Callable 接口,新建当前类对象,在新建 FutureTask 类对象时传入当前类对象,接 着新建 Thread 类对象时传入 FutureTask 类对象,最后运行 Thread 对象的 start()方法 3、Java 如何保证线程安全? 使用同步代码块 使用同步方法 使用 Lock 锁机制, 通过创建 Lock 对象,采用 lock()加锁,unlock()解锁,来保护指定 的代码块。
标签:java,复习,Thread,对象,链表,新建,哈希,数据结构 From: https://www.cnblogs.com/1011-zslnb/p/17781124.html