JAVA面试题目汇总_第1页
JAVA面试题目汇总_第2页
JAVA面试题目汇总_第3页
JAVA面试题目汇总_第4页
JAVA面试题目汇总_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. Java 中多态有哪些表现形式,都有什么区别a) Overrideb) Overload区别:1) override 是父类与子类之间多态性的一种表现, overload 是一个类中多态 性的一种表现。2) 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重 写 (Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对 它而言,父类中的定义如同被 屏蔽 了。3) 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同 的参数类型或有不同的参数次序,则称为方法的重载 (Overloading) 。2. Abstract class 和 int

2、erface 有什么区别a) 抽象类中可以有实体方法,接口中的方法全部是抽象方法b) 接口中的方法全部是 public 的,属性全部是 public static final的。抽象类则和其他类类似。c) 一个类可以实现多个接口,但只能继承一个抽象类。3. List, Set, Map 几个接口有什么共同点和不同点a) 都是 java.util 包下的接口b) List 和 Set 都是 Collection 的子接口, Map没有父接口c) List 的元素是有序的,元素可以重复。 Set 的元素不能保证次序,存入的元 素不能有重复。d) Map使用 key-value 来映射和存储数据,

3、Key 必须惟一, value 可以重复。4. 请解释一下 Java 的泛型,使用泛型有什么好处a) 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型 接口、泛型方法b) 泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率5. 多线程有几种实现方法 , 都是什么 ?同步有几种实现方法 ,都是什么?a) 多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口b) 同步的实现方面有两种,分别是 synchronized,wait 与 notify6.

4、 Java 类实现 Serializable 接口有什么用处, Serializable 接口需要实现什么 方法a) 实现 Serializable 接口的类才可以被序列化,才可以在网络或者进行 I/O 读取操作。b) 实现 Serializable 接口不需要实现任何方法。7. 说出 Servlet 的生命周期Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其service 方法, service 方法自动派遣运行与请求对应的 doXXX方法( doGet,doPost )等,当服务器决定将实例销毁的时候调用其 destroy 方法8. 说出数据连接池的工作机制是

5、什么J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接 表记为空闲,其他调用就可以使用这个连接。9. 解析 XML文档有哪几种方式 ?a) DOM: DOM在解析文件之前把整个文档装入内存,如果处理大型文件时其性 能下降的非常厉害。这个问题是由 DOM的树结构所造成的,这种结构占用 的内存较多,适合对 XML的随机访问。b) SAX: SAX 是事件驱动型的 XML解析

6、方式。它顺序读取 XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理 XML文件,适合对 XML的顺序访问c) StAX: StAX 把重点放在流上。实际上, StAX 与其他方法的区别就在于应 用程序能够把 XML 作为一个事件流来处理。将 XML 作为一组事件来处理 的想法并不新颖(事实上 SAX 已经提出来了) ,但不同之处在于 StAX 允 许应用程序代码把这些事件逐个拉出来,而不用提供在解析器方便时从解 析器中接收事件的处理程序。10. EJB有几种类型,他们之间的区别有哪些?a)

7、Session Bean, Entity Bean, Message-Driven Beanb) SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻 辑。c) EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体 的对象视图,或是一个由现有企业应用程序实现的实体。11. 请说出 IOC和 AOP的概念以及在 spring 中是如何应用的a) IoC 的全称是 Inversion of Control 即控制反转。 IoC 模式中 , 创建对象实 例的任务交给 IoC 容器或框架,使得应用代码只需要直接使用实例b) AOP的全称是 Aspect-

8、Oriented Programming 即面向方面编程。 AOP的核心 思想就是“将应用程序中的商业逻辑同对其提供支持的通用服务进行分 离”。它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日 志和事务管理)进行模块化。 AOP 的核心构造是方面,它将那些影响多个 类的行为封装到可重用的模块中。c) Spring 的核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。 BeanFactory 使用控制反转 ( IOC)模式将应用程序的配置和依赖性规范 与实际的应用程序代码分开。d) 通过配置管理特性, Spring AOP 模块直接将面向方面的编程功能集成到了 Sp

9、ring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管 理服务。通过使用 Spring AOP ,不用依赖 EJB 组件,就可以将声明性事 务管理集成到应用程序中。12. 如何集成 strut2 、Spring 和 hibernate ,需要做什么样的工作?a) 在 web.xml 中 配 置 spring contextConfigLocation 和 strut2 的 FilterDispatcherb) 在 struts.xml 中配置 struts.objectFactory

10、属性为 springc) 在 spring 的 context xml 中 配 置 hibernate 的 datasource 和 sessionfactory.13. Hibernate 的延迟加载有什么意义?如果配置了延迟加载,在页面前端用到 了延迟加载的属性,会有什么问题,如何避免?a) 设置属性的延迟加载可以避免不必要的数据库读取,只有在真正调用属性 get 方法的时候才读取数据库,可以减少对数据库访问次数,提高加载速 度。b) 如果配置了延迟加载属性,在页面前端使用时会因为 sessionfactory 已经 关 闭 ,导 致 属 性 无 法获 取 。 可 以 通 过 在 web.

11、xml 中 配 置 OpenSessionInView 的 filter 来避免。14. 常见的 ajax 的框架有哪些?介绍一下你所熟悉框架的用法。dwr, jquery, json, dojo, prototype 15. String 和 Stringbuffer 间有和区别后者的长度可变16. Dependency lookup 和 Dependency Injection 是 Spring 框架的哪个特性? 两者之间有何区别?17. Dependency Injection 有几种类型Setter Injection 和 Constructor Injection18. IOC Co

12、ntainer 提供了两者类型的 Containter ,是哪两种? 它们之间有何 区别BeanFactory :4ApplicationContext: Context 预先 Loading 所有的 SingleTon Bean ,即启动时不需要等待 Bean 的生成。另外它提供了对国际化的支持。19. Bean的三中实例化方式(1)不需要特定的 Interface(2)Static Factory Method(3)Instance Factory Method20. Anotation 是什么?它有什么作用?列举几个用过的 Anotation 并说明?如 何自定义一个retention,

13、 target, resource 等21. jsp 有哪些内置对象 ?作用分别是什么 ?JSP 共有以下 9 种基本内置组件:request 用户端请求,此请求会包含来自 GET/POST请求的参数response 网页传回用户端的回应pageContext 网页的属性是在这里管理session 与请求有关的会话期application servlet 正在执行的内容out 用来传送回应的输出config servlet 的构架部件page JSP 网页本身exception 针对错误网页,未捕捉的例外22. spring 的声明式事务是如何实现的 用到了什么设计模式 通过动态代理模式实现

14、同时有 AOP的概念23. hibernate 的 cascade 和 inverse 的概念区别cascade 级联 inverse 是镜像24. 谈谈 struts1.x 中的 ActionServlet 和 Action 分别使用到了 J2EE 的哪 些设计模式FrontController, command 模式25. Socket 编程中 TCP/IP 协议 和 UDP 协议的区别 三次握手 邮件26. 如何实现无阻塞的 Socket 编程 NIO 概念利用 NIO 的通道 事件响应 selector 注册来达到无阻塞27. 数据库 脏读 不可重复读 幻影读的概念 以及如何避免以上情

15、况 读取到其他事务未提交的操作 读取到其他事务已经提交的操作先后两次读取 同样的检索 由于有其他事务的影响 结果集的数目发生变化 利用锁 , 事务隔离级别28. 如果看待选择 hibernate 的 session.delete 方法执行大批量数据删除操作 产生大量对象 建议直接用 jdbc 删除29. prototype 中闭包的概念 closure javascript中作用域的申明 和生成地点绑定30. 如何防止内存泄漏释放该释放的资源 利用 LUR FIFO 等算法替换长时间无用的对象 避免内 存不足利用 weakreference 立即释放对象资源 softreference 内存不

16、足时候回收 资源 不必等到垃圾回收点的触发养成良好的 try finally习惯 在 finally 中手动释放资源31. 数组如何声明,实例化,特别是二维数组 数组声明的方式一般有两种, 比如一个 int 数组 : int intArray;int intArray; 都可以,推荐使用第一种,数组的实例化是通过 new关键字实现的, int intArray = new int3;二维数组,比如定义一个 2 行 3 列的数组 int intArray = new int23;实际上。对于每行列数可以不同32. 关于 GC,列举常见的垃圾回收算法 引用计数法 (Reference Counti

17、ng Collector)跟踪法 (Tracing Collector)compacting 算法 (Compacting Collector)copying 算法 (Coping Collector) 等等,一般常用的引用计数法 和跟踪法33. Struts1 Struts2 Spring Mvc 的前端控制器分别是什么,讲述其中一种 MVC 的工作流程Struts1 采用 servlet 作为前端控制器,具体为 ActionServletStruts2 采用 Filter 作为前端控制器,具体为 FilterDispatcherSpring 采用 servlet 作为前端控制器,具体为 DispatcherServlet34. 如何格式化日期,比如系统时间,格式为YYYY-MM-DD 如, 何做日期的加减,比如取当前日期之前 60 天SimpleDateFormat ,比如 SimpleDateFormat format=new SimpleDateFormat(YYYY-MM-DD);利用定义好的 SimpleDateFormat 对象,完成 Date 与字符串的转 换,比如 format()- 按照指定格式,将 date 格式化为字符串, parse()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论