1、说一下java类集
2、字符串哈西相等,equals相等吗?反过来呢?
3、Spring的工作原理,控制控制反转是怎么实现的,自己写过滤器过滤编码怎么实现
4、框架的源码有没有看过
5、动态代理是怎么实现的
6、action是单实例还是多实例
1) Struts2 会对每一个请求,产生一个Action的实例来处理.
2) Spring的Ioc容器管理的bean默认是单实例的.
Struts2与Spring整合后, 由spring来管理Struts2的Action,  bean默认是单实例有情况下,会有如下问题:


1) Action是单例,其中的FieldError,actionerror中的错误信息 会累加, 即使再次输入了正确的信息,也过不了验证.


2) Struts2的Action是有状态的,他有自己的成员属性, 所以在多线程下,会有问题.
如何解决?
方案一: 就是不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.


方案二: spring中bean的作用域设为session ,每个session对应一个实例,解决了多线程问题.(如何设置作用域请看: 4 spring中bean的作用域 )


再写一个拦截器, 清空 FieldError与actionerror


7、怎么配置bean
8、修改单实例多实例
9、java的设计模式
10、事务的控制
11、赃读
脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的。
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
12、事务的传播属性
REQUIRED:业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。(默认是这种事务行为)
NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为它开启事务。如果方法在一个事务中(另一个bean)被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行。
REQUIRESNEW:属性表明不管是否存在事务,业务方法总会为自己发起一个新的事务。如果方法已经运行在一个事务中,则原有事务会被挂起,新的事务会被创建,直到方法执行结束,新事务才算结束,原先的事务才会恢复执行。
MANDATORY:该属性指定业务方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果业务方法在没有事务的环境下调用,容器就会抛出例外。


SUPPORTS:这一事务属性表明,如果业务方法在某个事务范围内被调用,则方法成为该事务的一部分。如果业务方法在事务范围外被调用,则方法在没有事务的环境下执行。
Never:指定业务方法绝对不能在事务范围内执行。如果业务方法在某个事务中执行,容器会抛出例外,只有业务方法没有关联到任何事务,才能正常执行。
NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED属性执行.它使用了一个单独的事务, 这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事务造成影响。它只对DataSourceTransactionManager事务管理器起效
 
数据库系统提供了四种事务隔离级
(两个或者多外并发事务当中)
脏读:一个事务读取到另一事务未提交的更新新据。
不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。换句话说就是,后续读取可以读到另一事务已提交的更新数据。相反,“可重复读”在同一事务中多次读取数据时,能够保证所读数据一样,也就是,后续读取不能读到另一事务已提交的更新数据。
幻读:一个事务读取到另一事务已提交的insert数据
13、购物车是怎么实现的
14、GMS
15、统计一天的订单量
16、IN HAVING  exsit
17、有没有用过定时任务
18、JVM的内存管理,
19、堆内存、栈内存溢出
20、说一下缓存
21、统计所有重名用户
select name,count(*) from tab group by name having count(*)>1;








1.如何调用别人写的接口?自己写的接口,如何让别人调用
2.中间间
3.List、set、Map的底层实现原理


京东面试题
1.简单的懒汉式在多线程环境下不是线程安全的。有人提出在getInstance()方法上同步锁,但是锁住一整个方法可能粒度过大,不利于效率。
单例模式的饿汉式,在定义自身类型的成员变量时就将其实例化,使得在Singleton单例类被系统(姑且这么说)加载时就已经被实例化出一个单例对象,从而一劳永逸地避免了线程安全的问题。