面试积累
1、ArrayList与HashSet,Set的底层
HashSet底层是通过HashMap实现的
【HashSet】
1. HashSet存储不能够存储相同的元素,元素是否相同的判断:重写元素的equals方法。equals方法和hashCode方法必须兼容,如:equals方法判断的是用户的名字name,那么hashCode的返回的hashcode必须是name。hashcode();
2. HashSet存储是无序的,保存的顺序与添加的顺序是不一致的,它不是线性结构,而是散列结构,(通过散列表:散列单元指向链表)。因此,HashSet的查询效率相对比较高。
3. HashSet不是线程安全的,不是线程同步的。这需要自己实现线程同步:Collections.synchronizedCollection(),方法实现。
【ArrayList】
1. 不是线程安全的,不是线程同步的。
2.ArrayList是通过可变大小的数组实现的,允许null在内的所有元素。
3.ArrayList中存放顺序和添加顺序是一致的。并且可重复元素。
4.ArrayList适合通过位子来读取元素。
TreeMap与TreeSet
http://blog.csdn.net/speedme/article/details/22661671
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 TreeMap 和 TreeSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的(如同HashSet底层是是通过HashMap来实现的一样),因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法。
2、查找某个线程的load
http://blog.csdn.net/yaowj2/article/details/11764343
http://www.iteye.com/topic/1132321
http://www.cnblogs.com/chengJAVA/p/5821218.html
jvm调优工具 http://my.oschina.net/xionghui/blog/491741
3、内存溢出
http://www.cnblogs.com/lin-xuan/p/5271354.html
http://www.360doc.com/content/15/0228/14/16070877_451488021.shtml
最佳解释 http://blog.csdn.net/shimiso/article/details/21830871
4、jvm调优
5、rpc,thrift好处,rmi
6、redis特性,redis集群 zookeeper
7、数据库查询 explain
http://blog.csdn.net/zhuxineli/article/details/14455029
8、linux sort指令
http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html
9、gc cms
spring ioc aop controller是不是线程安全
thrift 原理 优势 序列化协议
http head里面有啥 状态码 400 500区别 tcp状态 为什么是三次握手 四次挥手
mysql优化
hashmap 里面结构 怎么查找 怎么扩容 怎么均匀分布 加元素是链表头还是链表尾 hashtable的区别 concurrenthashmap 锁是怎么实现的
ArrayList与TreeSet区别 TreeSet底层实现
concurrent包 计数器 AtomicInteger 实现原理 包下的内容
redis集群 分布式加锁
事务 隔离级别 spring 事务 传播性
方法调用方法 有什么问题 栈溢出 内存溢出
jvm gc cms 还有哪些 jvm优化参数 类加载器
nio
方法模式 java类中的应用
排序
aop cglib