1. String、StringBuffer、StringBuilder的区别

String不变对象,StringBuffer可变字符串,方法为synchronized,StringBuilder可变字符串,方法非synchronized

2. finally、final、finalize的区别

finally在try-cache-finally中使用;final可从类、方法、属性三个方面解释;finalize为Object类的方法,其调用是不可预测的。

3. Java中synchronized的作用

同步,相当于对象锁

4. 简要描述一下java.io包中关于流的类的结构,其中用到了什么模式

Wrapper或Decorator模式

5. HashMap和Hashtable的异同

都实现了Map接口;HashMap允许null键和null值,方法非同步;Hashtable不允许null键和null键,方法同步

6. 简要介绍一下Comparable接口和Comparator比较器

实现Comparable的类的对象可以比较,必须实现compareTo方法;实现Comparator的类为比较器,必须实现compare方法,可以用在Collectoins.sort方法的参数中,用来比较两个对象的大小关系

7. ArrayList、LinkedList、Vector的异同

ArrayList、Vector为List基于数组的实现;LinkedList为基于链表的实现;如果随机查找一个值,则基于数组的实现较快,但在某一位置删除和添加一元素需要移动一些元素;但基于链表的实现利于添加和删除,不利于查询;Vector的方法为同步的,ArrayList和LinkedList的方法非同步

8. 关于运算符的短路问题,如:&&、||等

9. 在什么时候使用assert语句

可以在预计正常情况下不会到达的任何位置上放置断言;断言可以用于验证传递给私有方法的参数

10. 为什么要有GC?

Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理

11. Java中异常分为几种?有什么区别?

受检查异常、非检查异常;继承自Exception、继承自RuntimeException;代码是否明确捕获异常

12. 说明List、Set、Map的区别

List只是一个元素列表;Set是一个集合,无重复元素;Map是键值对

13. 抽象类和接口的区别

14. 简要说明实现equals和hashCode方法的必要性

equals用于判断两个对象是否相等,hashCode是对象的hash值;假设用在Map、List、Set这样的集合中,如果不适当的实现这两个方法,可能造成元素在某些集合对象中使用错误、或影响使用的效率

15. 要使一个对象可以在网络中传输需要实现什么接口?

Java.io.Serializable

16. 下面几句话哪句正确?

(1)a.equals(b)==true,但a.hashCode() !=b.hashCode()

(2)a.hashCode()==b.hashCode(),但a.equals(b)==false 对

(3) a.hashCode()==b.hashCode(),但a.equals(b)==true 对

17. Override和Overload的区别

18. 使用annotation有什么好处?

以前关于类的相关配置一般都写在xml文件中,从而对于某一个类的信息需要在两处维护;annotation使得某一类的信息可以写在一处,利于维护

19. 复制对象需要实现什么接口?什么是浅复制和深复制?

java.lang.Cloneable;浅复制只是引用复制,深复制对象复制,结合例子回答

20. 面向接口编程的好处?试举例说明

可以举关于List接口的例子

21. 什么是自动装箱、拆箱?

22. transiant关键字的作用?怎样实现对象的序列化和反序列化?

某些值不参与序列化;ObjectInputStream、ObjectOutputStream

23. Java怎样实现多线程?

继承Thread或实现Runnable接口

24. 利用wait和notify实现读者—写者问题

注意:wait和notify的代码必须在synchronized块之中

25. notify和notifyAll的区别

notify只唤醒一个线程,notifyAll唤醒所有等待的线程

26. char型变量中能不能存贮一个中文汉字?为什么?

是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的

27. 简述一下模板类的好处

分几个方面说明:1) extends

Number>可以指定参数类的范围;2)java.lang.Comparable,可以指定比较类型为某一类型

28. 什么是正则表达式?在Java中怎样使用?

Pattern,、Matcher

29. 在Java中单例怎么实现?

有两种方式1)延迟初始化方式;2)立即初始化方式,比较两种单例实现的优缺点

30. 在Java中工厂模式怎么实现?

写代码说明

31.

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

值传递

32. 列出某文件夹下的所有文件

递归

33. 在java中怎样调用系统命令?

System.getRuntime().exec

34. 什么是AOP?它提供了什么功能?

35. Java国际化相关

Locale、ResourceBundle

36.

将当前日期按“yyyy-MM-dd”的形式打印出来

SimpleDateFormat、Date

===================================

1. JSP和Servlet的关系

Jsp会被编译为servlet

2.

page=”file.jsp”>和

include=”file.jsp”

%>区别?

1) 前者在运行时发生,后者在编译时发生

2) 前者反映包含文件的变化,后者不会,除非重启服务器

3)可从jsp编译成的servlet文件看出区别

3. forward和redirect的区别

1) forward对于客户端并不知情,是服务端的动作,url链接不变化

2) redirect服务器先向客户端发送302重定向,客户端再向服务器请求页面,多出一次往返,url发生变化

4. url重写是什么?怎么实现?

为了支持会话,在url链接中写入jsessionid;response.encodeUrl和jstl标签

5. 什么是session?session通过什么传递?

默认为通过cookie传递;如果cookie被禁用,则通过url重写来维护会话

6. Get和Post的区别?

7. 请简述一下MVC模式,如果用Java实现MVC请简述怎样实现?

参照Structs和Spring都行

前端控制器—将请求映射到具体控制器的类—具体控制器—得到模型数据—生成视图

8. 在Java Servlet开发中,Listener、Filter、Servlet作用是什么?

Listener在web程序启动时顺序执行,用于初始化一些全局资源

Filter用于过滤请求,可以用作权限控制、统计、日志记录等

Servlet具体用于用户请求的处理

9. 在Java Web应用程序中,有几种作用域?

四种;Application、Session、Request、Page

10. 请简要介绍一种你熟悉的MVC框架,如:Struts、Spring等

11. HTTP200、302、404、500各代表什么含义?怎样在程序中处理这些错误?

在web.xml中声明统一的错误页面