1、集合
hashmap的数据结构组成 HashMap的结构jdk1.7采用 数组+ 单链表的数据结构 jdk1.8后,HashMap的结构是数组+链表+红黑树 ConcurrentHashMap从JDK1.7版本的ReentrantLock+Segment+HashEntry,到JDK1.8版本中synchronized+CAS+HashEntry+红黑树。 红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找的最坏时间复杂度都为 O(logn)。 它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。比如在 Java 集合框架中,很多部分(HashMap, TreeMap, TreeSet 等)都有红黑树的应用,这些集合均提供了很好的性能。由于 TreeMap 就是由红黑树实现的,因此本文将使用 TreeMap 的相关操作的代码进行分析、论证。
1.1、put的过程
1.2、分段锁的原理
2、lamab表达式的特点和使用场景
3、拦截器和过滤器的区别
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
4、如何在main之前执行方法参数
由于静态块不管顺序如何,都会在main()方法执行之前执行,因此,以下代码会与上面的代码有同样的输出结果。 总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
5、事务
一个用事务的调取,一个没有事务的方法。事务会不会回滚? 事务的注解方法
XA事务
5、java注解
@autowired和@resource的区别
6、jdk8的新特性
7、java的注解
7.1、如何用注解实现游客和非游客的功能,游客有些界面不可见
8、javabean的生命周期
JavaBean的生命周期存在于4中范围之中,分别为page、request、session、application,它们通过jsp:userBean标签的sope属性进行设置,与jsp页面中的page、request、session、application范围相对应。 1、page 范围:与当前页面相对应,JavaBean的生命周期存在于一个页面之中,当页面关闭时javaBean被销毁 2、request 范围:与JSP的request生命周期相对应,JavaBean的生命周期存在于request对象之中,当request对象销毁时JavaBean也被销毁 3、session范围:与JSP的session生命周期相对应,JavaBean的生命周期存在于session回话之中,当session超时或回话结束时JavaBean被销毁 4、application范围:与JSP的application生命周期相对应,在各用户与服务器之间共享,只有当服务器关闭时JavaBean才被销毁 当JavaBean被创建后,通过jsp:setProperty标签与jsp:getProperty标签调用时,将会按照page、request、session、application的顺序来查找这个JavaBean实例,直到找到一个实例对象为止,如果都找不到,则抛出异常。