京东Java面试题(一)

一、说一下java类集
二、字符串哈西相等,equals相等吗?反过来呢?
三、Spring的工做原理,控制控制反转是怎么实现的,本身写过滤器过滤编码怎么实现
四、框架的源码有没有看过
五、动态代理是怎么实现的
六、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


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


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








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


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

java

相关文章
相关标签/搜索