Java坑

2016-10-25  本文已影响139人  zthh

1.集合


Collection
Map

红色的表示接口,黑色的表示实现类。


|HashTable|HashMap|
| -----|:----:| ----:|
|线程安全|非线程安全|
|不允许null|允许null(key只允许一个取null)|
|效率低|效率高|
|sychronized|无sychronized|
|11,old*2+1|16,空间左移1位至不小于实际需要的长度|

HashMap:

Map hashMap = new HashMap();
hashMap = Collections.synchronizedMap(hashMap);
Collections.synchronizedXXX:
对hashMap的操作全部重新封装,帮我们在操作HashMap时自动添加了synchronized来实现线程同步
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
static int hash(int h) {
     // This function ensures that hashCodes that differ only by
     // constant multiples at each bit position have a bounded
     // number of collisions (approximately 8 at default load factor).
     h ^= (h >>> 20) ^ (h >>> 12);
     return h ^ (h >>> 7) ^ (h >>> 4);
 }

static int indexFor(int h, int length) {
     return h & (length-1);
 }

ConcurrentHashMap


jdk<= 7 : ConcurrentHashMap 的结构示意图

悲观锁

lock();
some operation;
unlock();

乐观锁

do{
expected = resource;//获取一次预期值
some operation;          
}while(resource == expected && 进行resource访问);
//while条件=如果实际值和预期值一样说明这期间没有其他人访问,则可以对资源进行修改

乐观锁与悲观锁及应用举例
乐观锁和悲观锁



Arraylist 和 HashMap 如何扩容?负载因子有什么作用?如何保证读写进程安全?


TreeMap 、 HashMap 、 LinkedHashMap 的底层实现区别。
Collection 包结构的组成, Map 、 Set 等内部接口的特点与用法。

**2 ** **并发 **( Executor 框架和多线程基础):
Thread 与 Runable 如何实现多线程
线程同步的方法有什么;锁, synchronized 块,信号量等
锁的等级:方法锁、对象锁、类锁
生产者消费者模式的几种实现,阻塞队列实现, sync 关键字实现, lock 实现等
ThreadLocal 的设计理念与作用, ThreadPool 用法与优势(这里在 Android SDK 原生的 AsyncTask 底层也有使用)
线程池的底层实现和工作原理(建议写一个雏形简版源码实现)
几个重要的线程 api , interrupt , wait , sleep , stop 等等

**3 ** ** IO **( IO,NIO ,目前 okio 已经被集成 Android 包)
IO 框架主要用到什么设计模式
NIO 包有哪些结构?分别起到的作用?
NIO 针对什么情景会比 IO 有更好的优化?
OKIO 底层实现

**4 ** **其他的 java ****语言特性 **:
反射机制
String 类内部实现,能否改变 String 对象内容,比较经典的 String 字面量笔试题
Object 有哪些公用方法?
try catch 块, try 里有 return , finally 也有 return ,如何执行这类型的笔试题
Exception 与 Error 的区别
泛型的优缺点
另外就是关注最新版本 jdk 的新特性,例如 Lambda 表达式

**5 ** JVM
自动内存管理机制, GC 算法,运行时数据区结构,可达性分析工作原理,如何分配对象内存
类加载机制,反射机制,双亲委派机制,类加载器的种类
Jvm 内存模型,先行发生原则, violate 关键字作用


上一篇 下一篇

猜你喜欢

热点阅读