2022年Java面试题及答案 .pdf
《2022年Java面试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年Java面试题及答案 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1.J2EE是什么?(Java 2 Enterprise Edition,中文为 Java 2企业版本,由多种技术组成,主要的两大技术为Servlet技术和 EJB 技术,J2EE 程序需要在J2EE 容器内运行)2.介绍 JAVA 中的 Collection FrameWork(Java的 Collection FrameWork包括两大接口,为Collection和 Map。5.0 版本增加了一个新的接口Queue。其中 Collection又包括 List和 Set接口。其所有的标准实现类均在java.util包中定义。总体上来说,Map定义了键和值的对应关系,List定义了列表,Se
2、t 定义了堆式。所以一般来说Map 和 Set 为无序而List有序,但也有例外。)?如 COLLECTION 中遗留类(HASHTABLE、VECTOR)和现有类的区别?(同步)3.Java中异常处理机制,事件机制?所有继承自Trowable 的类的对象都可被抛出和捕获,继承它的 Error接口表示错误,而 Exception表示异常,继承自Exception下 RuntimeException接口的类表示运行时异常,可以不被捕获。事件则一般采用接口来实现,接口内定义回调方法而实现该接口的类定义具体流程。4.EJB与 JAVA BEAN的区别?EJB与 JAVA BEAN 是 SUN的不同组
3、件规范,EJB是在容器中运行的,分步式的,而JAVA BEAN主要是一种可利用的组件,主要在客户端UI 表现上。5.JAVA中的多形与继承?可出编程,选择题。6.抽象类与接口?接口的好处是将实现与表现分离。抽象类与接口都用于抽象,但是抽象类(JAVA 中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。7.Java 的通信编程,编程题(或问答),用 JAVA SOCKET编程,读服务器几个字符,再写入本地显示?8.JAVA SERVLET API中 forward()与 redirect()的区别?forward()是在容器内部对请求的转发,而redirect()使用的是
4、 HTTP协议在应答中将客户端重新定向至所指定的URL。使用forward()时客户端不产生新的请求,而使用redirect()时客户端会产生一个新的请求。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -9.JAVA解析 XML的方式?SAX、DOM 10.用 JAVA实现数据库查询,这是一道编程题。11.用 JAVA实现一种排序,比较,JAVA类实现序列化的方法(二种)?如在 COLLECTION 框架中,实现比较要实现什么样的接口。12.JSP中动态 INCLUDE与静态 INCLUDE的区别?动态可以带参数,静态相当于一段静态HTML文件。13.应用服务器与WE
5、B SERVER 的区别?应用服务器侧重于对应用流程的实现,WEB SERVER 侧重于对网络协议的实现。14.设计模式与UML方面。如工厂模式,解决多数据库支持问题。15。编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉 DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。16。在 ORACLE 大数据量下的分页解决方法。一般用截取ID 方法,还有是三层嵌套方法。17。WEB SERVICE 名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、U
6、DDI解释。18。BS与 CS的联系与区别。19。LINUX 下线程,GDI 类的解释。20。JAVA多线程编程。用 JAVA 写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。21。JAVA的基本功:STRING 与 STRINGBUFFER 的区别。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -22。STRUTS的应用(如 STRUTS 架构JAVA 方面1 面向对象的特征有哪些方面继承,多态,抽象,重载,封装2 String是最基本的数据类型吗?不是3 int 和 Integer 有什么区别一个是基本类型,另一个是对象4 String 和 S
7、tringBuffer 的区别一个是非可变类,另一个是可变类5运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。6 说出一些常用的类,包,接口,请各举 5 个7 说出 ArrayList,Vector,LinkedList 的存储性能和特性ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数
8、组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。8 设计 4 个线程,其中两个线程每次对j 增加 1,另外两个线程对j 每次减少 1。写出程序。以下程序使用内部类实现线程,对j 增减的时候没有考虑顺序问题。public class ThreadTest1 private int j;public static void main(String arg
9、s)ThreadTest1 tt=new ThreadTest1();Inc inc=tt.new Inc();Dec dec=tt.new Dec();for(int i=0;i2;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -Thread t=new Thread(inc);t.start();t=new Thread(dec);t.start();private synchronized void inc()j+;System.out.println(Thread.currentThread().getName()+-inc:+j);private sy
10、nchronized void dec()j-;System.out.println(Thread.currentThread().getName()+-dec:+j);class Inc implements Runnable public void run()for(int i=0;i100;i+)inc();class Dec implements Runnable public void run()for(int i=0;i100;i+)dec();9JSP的内置对象及方法。request request 表示 HttpServletRequest对象。它包含了有关浏览器请求的信息,并
11、且提供了几个用于获取cookie,header,和 session 数据的有用的方法。response response表示 HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)out out 对象是 javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet 相关的对象的API,并且包装了通用的servlet 相关功能的方法
12、。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -session session 表示一个请求的javax.servlet.http.HttpSession对象。Session 可以存贮用户的状态信息application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet 引擎和 servlet 环境的信息config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet 实例的初始化参数。page page 表示从该页面产生的一个servl
13、et 实例10.用 socket 通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。参见课程中 socket通讯例子。11说出 Servlet的生命周期,并说出Servlet和 CGI 的区别。Servlet 被服务器实例化后,容器运行其init 方法,请求到达时运行其service 方法,service方法自动派遣运行与请求对应的doXXX 方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不
14、会销毁,而CGI 对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。12.EJB 是基于哪些技术实现的?并说出SessionBean和 EntityBean 的区别,StatefulBean和 StatelessBean的区别。SessionBean用于提供对流程的处理,EntityBean 提供对数据持久化的管理。StatefulBean有状态,StatelessBean无状态,一般来说StatelessBean速度较快但无法保持客户信息,StatefulBean速度较慢但可以保持客户状态。13EJB包括(SessionBean,EntityBean)说出他们的生命周
15、期,及如何管理事务的?无状态 SessionBean的生命周期由容器自由决定。有状态SessionBean在客户需要时被创建,用完后销毁。EntityBean 的生命周期也由容器决定,但是在它的不同阶段会根据需要来表示不同的数据内容。14说出数据连接池的工作机制是什么?对表示数据库连接的对象进行包装并预先生成一定数量的连接,当用户请求数据库连接时,从池中选取一个当前不在使用的连接提交给用户。用户使用完成后关闭改连接,此时连接并不真正的被关闭,只是对事物进行提交或回滚等相应的操作,然后回到池中等待被下一次调用。17 你所知道的集合类都有哪些?主要方法?查 API 18 给你一个:驱动程序 A,数
16、据源名称为 B,用户名称为 C,密码为 D,数据库表为 T,请用 JDBC 检索出表 T 的所有数据。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -19说出在 JSP页面里是怎么分页的?页面需要保存以下参数:总行数:根据 sql 语句得到总行数每页显示行数:设定值当前页数:请求参数页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。数据库方面:1.存储过程和函数的区别存储过程是用户定义的一系列sql 语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型
17、的值并且不涉及特定用户表。2.事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。隔离性由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要
18、么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -3.游标的作用?如何知道游标已经到了最后?游标用于定位结果集的行,通过判断全局变量FETCH_STA TUS 可以判断是否到了最后,通常此变量不等于0 表示出错或到了最后。4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。事前触发器运行于触
19、发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。大公司的Java面试题集找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM,E*Trade,Siebel,Motorola,SUN,以及其它大小公司。面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写的,有当面考你的,也有在电话里问的,给你 IDE 的估计很少(否则你赶快去买彩票,说不定中)。所以如果你看完此文后,请不要抱怨说这些问题都能用IDE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Java面试题及答案 2022 Java 试题 答案
限制150内