首页 > 代码库 > java面试
java面试
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
一共有三点:
String(private final char value[];)
StringBaffer,StringBuilder(char value[];)
1.可变与不可变:
String一旦创建是不可改变的,而StringBuffer,StringBuilder是可以改变的。
2.线程安全与不安全:
String对象是不可变的,可以理解为常量,所以线程是安全的。
StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以线程是安全的。
StringBuilder没有对方法加同步锁,所以是非线程安全的。
3.如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。
二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?
LinkList类的实现方式是链表,增加和删除的操作有更好的效率。
ArrayList的实现方式是数值,所以查找的效率比较高。
但是这两者线程都是不安全的,
Vector是线程安全的,因此效率比前两者低。
三、HASHTABLE, HASGMAQ,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 最大内存设置。设置的原理。结合垃圾回收讲讲。
java面试