。面试主要是Java集合类和并发编程Java集合类ArrayList初始化时数组的默认长度是多少?ArrayList扩容时扩容多少倍?扩容后是用原来的数组还是新的数组?ArrayList是一个线程安全的集合类吗?判断一个集合类是否为线程安全的机制是什么?说一下Fail-Fast机制,结合源码说一下(如果可以的话)。ArrayList和LinkedList的使用场景。说一下HashMap的底层数据结构。说一下HashMap的存储逻辑(put()函数)。HashMap存储元素时key完全一样该怎么处理?HashMap的默认长度是多少?扩容是扩成几倍?若两个key的hashcode值相同但equal...