Java基础
SenlAAA
这个作者很懒,什么都没留下…
展开
-
Java集合类----HashMap、HashSet
HashMap、HashSet的区别? HashMap:实现了Map接⼝,存储键值对,调⽤put()添加元素,使⽤Key计算Hashcode HashSet:实现Set接⼝,仅存储对象,调⽤ add()添加元素,使⽤成员对象来计算hashcode值,若hashcode相同,再用equals()⽅法判断对象是否相等 HashSet 底层是基于 HashMap 实现的。 ( 除了clone() 、writeObject() 、readObject() 等是HashSet自己实现之外,其他⽅法都是直接调⽤原创 2021-03-18 16:33:41 · 262 阅读 · 0 评论 -
Java的集合类----ConcurrentHashMap和 Hashtable
ConcurrentHashMap和 Hashtable ConcurrentHashMap: JDK1.7采⽤数组+链表实现, JDK1.8采⽤数组+链表/红⿊树。Hashtable一直采⽤数组+链表 实现线程安全的方式: ① ConcurrentHashMap: JDK1.7 使用分段锁对数组进⾏分段(Segment),每⼀把锁只锁容器中的⼀部分数据,不同数据段的数据,不存在锁竞争 JDK1.8 采用 Node 数组+链表/红⿊树实现,并发控制使⽤ synchronized 和CAS实现。 ② Ha原创 2021-01-05 22:05:29 · 187 阅读 · 0 评论 -
Java的集合类----HashMap、Hashtable 的区别
HashMap、Hashtable 的区别 HashMap:⾮线程安全,效率⾼⼀点 HashTable:线程安全,方法经过 synchronized 修饰。但已经淘汰,如果要保证线程安全⽤ ConcurrentHashMap, HashMap 允许存在一个空键,多个空值。HashTable则不允许,若有空键或空值,则报空指针异常, HashMap 默认容量为16。每次扩充为2倍。Hashtable 默认容量为11,每次扩充为2n+1, JDK1.8 以后 HashMap 的链表⻓度⼤于阈值(8)时,会将链表原创 2021-01-05 21:58:06 · 179 阅读 · 0 评论 -
Java的集合类---- Arraylist、LinkedList
Arraylist、LinkedList区别? 1. ArrayList和LinkedList 都是线程不安全; 2. Arraylist底层使⽤Object 数组; LinkedList 底层使⽤双向链表 3. ArrayList适合通过index快速随机访问,LinkedList适合频繁的插入和删除。 4. ArrayList在list列表的结尾会预留⼀定的容量空间,LinkedList还要存放前驱和后继 ArrayList的扩容? 有3个不同的构造方法。 1.无参构造方原创 2021-01-03 01:00:37 · 263 阅读 · 0 评论 -
Java的集合类----简述
Java的集合有List、Set、Map三种基本类型 List、Set、Map的区别? List:链表,有序,可出现重复元素 Set:集合,无序,不允许重复。 Map: 键值对存储。Key不能重复,但不同的Key可以指向相同的对象。 其中,每种基本类型下又衍生出多种类型。 如ArrayList、LinkedList、HashSet、HashMap等,后续再一一详细介绍。 ...原创 2021-01-03 00:43:52 · 221 阅读 · 0 评论 -
Java基础
interface和Abstract的区别? interface是接口,使用implement实现,接口是对行为的抽象。 Abstract是抽象,使用extend继承,抽象是对类的抽象。 接口方法不能有实现(Java8开始可以有默认实现) 抽象类的方法则可以有实现 一个类可以实现多个接口,但只能实现一个类。 成员变量和局部变量的区别? 成员变量是属于类的,局部变量是在⽅法中定义的, 成员变量是对象的⼀部分,随着对象的创建⽽存在,局部变量则在⽅法调⽤后会⾃动消失。 成员变量会⾃动赋默认值(被 final原创 2021-01-02 22:48:15 · 180 阅读 · 0 评论