1.hashmap、concurrenthashmap底层实现和区别
从ConcurrentHashMap代码中可以看出,它引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。在ConcurrentHashMap中,就是把Map分成了N个段Segment,put和get的时候,都是现根据key.hashCode()算出放到哪个Segment中。
Hash表的一个很重要方面就是如何解决hash冲突,ConcurrentHashMap和HashMap使用相同的方式,都是将hash值相同的节点放在一个hash链中。与HashMap不同的是,ConcurrentHashMap使用多个子Hash表,也就是段(Segment)。
2.Java8提供的新特性(http://www.jb51.net/article/48304.htm)
一、接口的默认方法:Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法;
二、Lambda 表达式
三、函数式接口:“函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为 默认方法 不算抽象方法,所以你也可以给你的函数式接口添加默认方法。我们可以将lambda表达式当作任意只包含一个抽象方法的接口类型,确保你的接口一定达到这个要求,你只需要给你的接口添加 @FunctionalInterface 注解,编译器如果发现你标注了这个注解的接口有多于一个抽象方法的时候会报错的。
四、方法与构造函数引用:Java 8 允许你使用 :: 关键字来传递方法或者构造函数引用
五、Lambda 作用域
六、访问局部变量
七、访问对象字段与静态变量
八、访问接口的默认方法
九、Date API:Java 8 在包java.time下包含了一组全新的时间日期API。
十、Annotation 注解:Java 8中支持多重注解了,Java 8允许我们把同一个类型的注解使用多次,只需要给该注解标注一下@Repeatable即可。
2.spring框架的原理
http://blog.csdn.net/whuqin/article/details/6232722
http://cuihongxin1030.iteye.com/blog/405487
试题:http://www.cnblogs.com/sunniest/p/4646515.html
未完待续。。。