首页 > 代码库 > 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面试