面试积累

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

posted on 2016-08-04 18:13  GOvoid  阅读(153)  评论(0编辑  收藏  举报