2011-12-29
阿里面试题:
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
参考http://www.cnblogs.com/liuyhaiying/articles/945419.html
二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?
三、HASHTABLE, HASHMAQ,TreeMap区别
四、ConcurrentMap和HashMap的区别
五、Tomcat,apache,jboss的区别
六、GET POST区别
七、SESSION, COOKIE区别
八、Servlet的生命周期
九、HTTP 报文包含内容
十、Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入
十一、redirect, foward区别
十二、关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,
几个对象,几个属性,几个方法。
十三、谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的
十四、反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化
十五、谈谈Hibernate与Ibatis的区别,哪个性能会更高一些
十六、对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解及实现原理
十七、线程同步,并发操作怎么控制
十八、描述struts的工作流程。
十九、Tomcat的session处理,如果让你实现一个tomcatserver,如何实现session机制
二十、关于Cache(Ehcache,Memcached)
二一、sql的优化相关问题
二二、oracle中 rownum与rowid的理解,一千条记录我查200到300的记录怎么查?
二三、如何分析ORACLE的执行计划?
二四、 DB中索引原理,种类,使用索引的好处和问题是什么?
二五、JVM垃圾回收实现原理。垃圾回收的线程优先级。
二六、jvm 最大内存设置。设置的原理。结合垃圾回收讲讲。
1、有一堆数字,只为[0-9]这9 个数,但各个数重复的,无规则的进入一方法,输出为[0-9]进入该方法的顺序,怎么实现该方法;
2、实现Spring式的事务管理方案。3、JVM线程多,资源快消耗被完,应该怎么处理。
4、了解过分布式不,缓存实现方式。
5、重构代码:如现有一个List,里面元素为数组,但可能为int[],String[],或其它对象数组,现遍历该数组,如果元素为int[]时,输出该数组的和,如果为String,输出该数组字符窜相加,如果为其它对象,有相应的处理方式,现代码是用一个方法实现的,应该怎么重构。
6、用过哪几种设计模式,了解过哪些
7、现系统有主数据库一个,支持保存修改查询,四个从数据库只查询。主从数据库无须考虑数据同步,当成数据一致;现在实现让service方法中根据方法名(说明数据库操作类型),分配数据主从数据库连接。让调用者(开发人员)不关心具体使用的哪个数据库!
8、在最前面问了Map、List、Set的用法,再问了hash算法实现。看我说不出来,就提示性的问了当重写equals及hashCode时,应该注意什么。看我还没反应过来,就直接问了两者有什么关系统
关于equals和hashcode相关可参考
http://blog.csdn.net/winer2008/article/details/4059789