【Java基础】面试题目记录(一)

  • 容器

Java容器类包含:List、ArrayList、Vector、map、HashTable、HashMap、HashSet.

ArrayList和HashMap是异步的,所以是线程不安全的,Vector和HashTable是同步的,所以线程安全,依靠

synchronized。

List接口下有:

1、LinkedList 链表:方便插入和删除,不适合查找

2、ArrayList:方便查找,但不适合插入和删除,元素填满时候会自动扩容50%,较省空间

3、Vector:方便查找,但是自动扩容是100%,Stack栈是其子类。

Map接口下有:

1、HashMap

下面会有详解

2、Hashtable

本质和HashMap一样,也是键值对的存储方式,但是它支持同步。(很少用)

3、TreeMap

基于红黑树NavigableMap的实现,不同步,元素按自然顺序排序(从小到大或者hash值从小到大的顺序),存储是键值对的,但是key不能为null,值可以为null,用于Collections.synchronizedSortedMap(new TreeMap())在并发环境中工作.
4、LinkedHashMap

间接实现的Map接口
5、WeakHashMap

不能同步、键值对存储,但是当key不在正常使用或者被丢弃的时候,当前的条目将会被自动删除。

6、dentityHashMap

允许存入重复的key值,但是如果两个数据的

System.identityHashCode(Object)的值相等的话,还是会覆盖的。

  1. 比如对于要保存的key,k1和k2,当且仅当k1== k2的时候,IdentityHashMap才会相等,而对于HashMap来说,相等的条件则是:对比两个key的hashCode等
  2. IdentityHashMap不是Map的通用实现,它有意违反了Map的常规协定。并且IdentityHashMap允许key和value都为null。
  3. 同HashMap,IdentityHashMap也是无序的,并且该类不是线程安全的,如果要使之线程安全,可以调用Collections.synchronizedMap(new IdentityHashMap(…))方法来实现。
  • Object类中有哪些方法

protected Object clone()创建并返回此对象的一个副本。

boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。

protected void finalize()当垃bai圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

Class<?> getClass()返回此 Object 的运行时类。

int hashCode()返回该对象的哈希码值。

void notify()唤醒在此对象监视器上等待的单个线程。

void notifyAll()唤醒在此对象监视器上等待的所有线程。

String toString()返回该对象的字符串表示。

void wait()在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。

void wait(long timeout)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
        void wait(long timeout, int nanos)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值