JAVA程序员笔试面试题汇总及答案.docx
- 文档编号:1297335
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:31
- 大小:33.38KB
JAVA程序员笔试面试题汇总及答案.docx
《JAVA程序员笔试面试题汇总及答案.docx》由会员分享,可在线阅读,更多相关《JAVA程序员笔试面试题汇总及答案.docx(31页珍藏版)》请在冰点文库上搜索。
JAVA程序员笔试面试题汇总及答案
1.【基础题】请描述访问控制符的各自作用域与区别
答:
访问控制
private成员
缺省的成员
protected成员
public成员
同一类中
√
√
√
√
同一包中其他类
×
√
√
√
不同包中子类
×
×
√
√
不同包中非子类
×
×
×
√
一、名词解释
二、问答题
1.【中等题】请说出ArrayList和Vector的区别
答:
主要从二方面来说.
同步性:
Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:
当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
2.【中等题】请说出HashMap和Hashtable的区别
答:
HashMap与HashTable主要从三方面来说。
一.历史原因:
Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现
二.同步性:
Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:
只有HashMap可以让你将空值作为一个表的条目的key或value
3.【基础题】Collection和Collections的区别
答:
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口
第十八章输入输出
笔试题
一、填空题
1.【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。
2.【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。
3.【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。
二、选择题
1.【基础题】下列哪个类是实体类(BC)
A.InputStream
B.PrintStream
C.Socket
D.Reader
E.DataInput
2.【提高题】请选择下列程序的运行结果(A)
publicclassTestIOapp{
publicstaticvoidmain(String[]args)throwsIOException{
StringReaderstingin=newStringReader("test");
LineNumberReaderin=newLineNumberReader(stingin);
PrintWriterout=newPrintWriter(System.out);
out.println(in.readLine());
out.flush();
}
}
A.test
B.test:
1
C.1:
test
D.1test
3.【提高题】请选择下列程序的运行结果(B)
publicclassTestIOapp{
publicstaticvoidmain(String[]args)throwsIOException{
RandomAccessFilefile=newRandomAccessFile("test.txt","rw");
file.writeBoolean(true);
file.writeInt(123456);
file.writeInt(7890);
file.writeLong(1000000);
file.writeInt(777);
file.writeFloat(.0001f);
file.seek(5);
System.out.println(file.readInt());
}
}
A.123456
B.7890
C.1000000
D.777
E.0001
三、名词解释
四、问答题
1.【中等题】请说出java.io.reader和java.io.inputstream的区别
答:
java.io.Reader和java.io.InputStream组成了Java输入类。
Reader用于读入16位字符,也就是Unicode编码的字符;而InputStream用于读入ASCII字符和二进制数据。
2.【中等题】java中有几种类型的流?
JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:
字节流,字符流。
字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。
在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
3.【中等题】请简述什么是流?
答:
流是指一连串流动的字符,是以先进先出的方式发送和接收数据的通道,流分为输入流和输出流,输入输出流是相对于计算机内存来说的,如果数据输入到内存,则称为输入流,如果从内存中流出则称为输出流
第十九章JDBC
笔试题
一、填空题
二、选择题
三、名词解释
1.【基础题】ODBC:
OpenDatabaseConnectivity开放数据库互连
2.【基础题】JDBC:
JavaDataBaseConnectivityJava数据库连接
3.【基础题】DBMS:
DataBaseManagementSystem数据库管理系统
4.【基础题】URL:
UniformResourceLocator统一资源定位器
URL组成:
协议名和资源名
protocol:
//resourceName
四、问答题
1.【中等题】Class.forName()的作用?
答:
调用该方法返回一个以字符串指定类名的类的对象。
此对象用来与特定的数据库连接。
2.【中等题】简述Statement和PreparedStatement的区别?
答:
无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。
当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译,使用PreparedStatement对象比使用Statement对象的速度更快。
3.【中等题】在connection类中提供了3个控制事务的方法,分别是:
答:
setAutoCommit(booleanbln)
commit():
提交事务
rollback():
撤销事务
4.【提高题】请简述元数据。
答:
在SQL中,描述数据库或其组成部分的数据称为元数据(区别于那些存在数据库中的实际数据)。
我们可以得到三类元数据:
关于数据库的元数据、关于结果集的元数据以及关于预备语句参数的元数据。
5.【提高题】ResultSet类中的Cursor方式主要有
ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.TYPE_SCROLL_INSENSITIVE等方式,你能详细说明吗。
答:
ResultSet.TYPE_FORWARD_ONLY(为缺省设置):
游标只能前进不能后退,也就是只能从第一个一直移动到最后一个。
ResultSet.TYPE_SCROLL_SENSITIVE:
允许游标前进或后退并感应到其它ResultSet的光标的移动情形。
ResultSet.TYPE_SCROLL_INSENSITIVE:
允许游标前进或后退并不能感应到其它ResultSet的光标的移动情形。
第二十章XML
笔试题
一、填空题
1.【基础题】XML是一种标记语言。
2.【基础题】XML的设计宗旨是传输数据,而非显示数据。
3.【基础题】XML文档必须有一个元素是所有其他元素的父元素。
该元素称为根元素。
二、选择题
三、名词解释
1.【基础题】XML:
EXtensibleMarkupLanguage可扩展标记语言
2.【基础题】DTD:
DocumentTypeDefinition文档类型定义
3.【基础题】W3C:
WorldWideWebConsortium万维网联盟
4.【基础题】CSS:
CascadingStyleSheets层叠样式单
5.【基础题】XSL:
EXtensibleStylesheetLanguage可扩展样式单语言
四、问答题
1.【中等题】XML文档定义有几种形式?
它们之间有何本质区别?
答:
1)两种形式dtdschema。
2)本质区别:
schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。
2.【中等题】格式良好的XML文档的标准是必须遵守XML1.0规范中的语法规则,应满足的条件主要包括:
答:
文档应包含一个或多个元素
文档中只有一个根元素,该元素无任何部分出现在其它元素中
元素必须正确关闭
元素不得交叉
属性值必须加引号
3.【中等题】XML与HTML的主要差异(难度:
中)
答:
XML不是HTML的替代。
XML和HTML为不同的目的而设计:
XML被设计为传输和存储数据,其焦点是数据的内容。
HTML被设计用来显示数据,其焦点是数据的外观。
HTML旨在显示信息,而XML旨在传输信息。
第二十一章Java+XML应用
笔试题
一、填空题
二、选择题
三、名词解释
1.【基础题】DOM:
DocumentObjectModel文档对象模型
2.【基础题】SAX:
SimpleAPIforXML文档边读入边解析
四、问答题
1.【提高题】请描述出DOM和SAX解析XML文档各有什么有缺点?
答:
DOM:
处理大型文件时其性能下降的非常厉害。
这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问。
SAX:
是事件驱动型的XML解析方式。
它顺序读取XML文件,不需要一次全部装载整个文件。
当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。
2.【中等题】你在项目中用到了xml技术的哪些方面?
举例说明
答:
用到了数据存储,信息配置两方面。
数据存储:
可以将数据库中的数据保存成一个xml文件以方便网络传输.
信息配置:
struts-config.xml是struts框架的核心配置文件,该文件由struts应用程序启动时自动加载,struts会从中读取ActionForm,Action等相关配置
1.【中等题】sleep()和wait()有什么区别?
答:
sleep()方法是使线程停止一段时间的方法。
在sleep时间间隔期满后,线程不一定立即恢复执行。
这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
2.【中等题】启动一个线程是用run()还是start()?
答:
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
这并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
3.【中等题】请说出你所知道的线程同步的方法。
答:
wait():
使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():
使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():
唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():
唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
4.【提高题】请描述出线程存在的几种状态?
答:
1)线程可以正在运行(running)。
只要获得CPU时间它就可以运行。
2)运行的线程可以被挂起(suspend),并临时中断它的执行。
3)一个挂起的线程可以被恢复(resume,允许它从停止的地方继续运行。
4)一个线程可以在等待资源时被阻塞(block)。
5)在任何时候,线程可以终止(terminate),这立即中断了它的运行。
一旦终止,线程不能被恢复。
5.【提高题】当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
答:
不能,一个对象的一个synchronized方法只能由一个线程访问。
第二十三章网络编程
笔试题
一、填空题
二、选择题
三、名词解释
1.【中等题】TCP:
TransmissionControlProtocol传输控制协议
是一种面向连接的保证可靠传输的协议。
通过TCP协议传输,得到的是一个顺序的无差错的数据流。
发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是serversocket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
2.【中等题】UDP:
UserDatagramProtocol用户数据报协议
UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。
简单的说,如果一个主机向另外一台主机发送数据,这一数据就会立即发出,而不管另外一台主机是否已准备接收数据。
如果另外一台主机收到了数据,它不会确认收到与否。
3.【基础题】IP:
InternetProtocol互联网协议
4.【基础题】LAN:
localareanetwork局域网
5.【基础题】WAN:
wideareanetwork广域网
四、问答题
1.【提高题】什么是网络通信协议
答:
计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
2.【提高题】网络通信接口
答:
为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换。
接口包括两部分:
硬件装置:
实现结点之间的信息传送
软件装置:
规定双方进行通信的约定协议
3.【提高题】你能说出TCP/IP的7层协议吗?
答:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
第二十四章J2EE和Servlet概述
笔试题
一、填空题
1.【基础题】我们常用的Servlet的版本是2.4。
2.【基础题】Tomcat的核心配置文件是server.xml。
3.【基础题】Tomcat中发布一个WEB应用时,通常把Web应用发布在webapps目录下。
4.【基础题】Tomcat将Jsp生成的Servlet源文件和和字节码文件放在work目录下。
5.【基础题】Tomcat的内置编码就是使用了ISO-8859-1。
二、选择题
三、名词解释
1.【基础题】JavaEE:
JavaPlatformEnterpriseEdition
2.【基础题】HTTP:
HypertextTransferProtocol
四、问答题
1.【提高题】C/S和B/S之比较
答:
C/S和B/S是当今世界开发模式技术架构的两大主流技术。
C/S是美国Borland公司最早研发,B/S是美国微软公司研发。
1)C/S架构软件的优势与劣势
a)应用服务器运行数据负荷较轻。
b)数据的储存管理功能较为透明。
c)C/S架构的劣势是高昂的维护成本且投资大。
d)传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。
2)B/S架构软件的优势与劣势
a)维护和升级方式简单。
b)成本降低,选择更多。
c)应用服务器运行数据负荷较重。
2.【提高题】J2EE规范了服务器端应用系统的开发框架,其中最核心的思想就是分层和组件的思想,那么分层是哪几层,分别有哪些组建?
答:
分层:
共分为四层,数据层,业务层,表述层,客户层。
组件:
三大类,即业务逻辑组件(EJB/JavaBean组件)、Web组件(JSP和Servlet组件)和客户端组件(应用程序客户端组件或Applet组件)。
3.【提高题】J2EE是技术还是平台还是框架?
答:
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
4.【提高题】JAVA13种核心技术,你能说出来吗?
答:
J2EE基础技术XML、RMI、JNDI、JMS
J2EE主要技术JDBC、Servlet、JSP、EJB
J2EE其它技术JTA、JTS、JavaIDL、JavaMail、JAF
5.【基础题】你能说出哪些J2EE开发工具和服务器
答:
开发工具:
Borland公司的JBuilder
Sun公司的SunJavaStudio
开源的IDEEclipse
服务器:
Apache的Tomcat
IBM的WebSphere
BEA的WebLogic
6.【中等题】说一说Servlet的生命周期?
答:
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
7.【中等题】什么是Web容器?
答:
实现J2EE规范中web协议的应用.该协议定义了web程序的运行时环境,包括:
并发性,安全性,生命周期管理等等.
第二十五章Servlet
笔试题
一、填空题
二、选择题
三、名词解释
四、问答题
1.【中等题】什么是Web容器?
答:
实现J2EE规范中web协议的应用.该协议定义了web程序的运行时环境,包括:
并发性,安全性,生命周期管理等等.
2.【中等题】说一说Servlet的生命周期?
答:
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
3.【中等题】JAVASERVLETAPI中forward()与redirect()的区别?
(中等)
答:
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
4.【基础题】写出Servlet类的基本结构?
答:
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throws
ServletException,IOException{
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throws
ServletException,IOException{
}
}
5.【基础题】什么情况下调用doGet()和doPost()?
答:
Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
第二十六章JSP
笔试题
一、填空题
二、选择题
1.【基础题】在Jsp指令中errorPage(“url”)的意思是(C)
A.将本页面设置为错误的页面
B.将本页面中所有的错误的信息保存到url变量中
C.为本页面指定一个错误页面
D.没有具体的含义
三、名词解释
1.【基础题】JSP:
JavaServerPage
2.【基础题】JS:
JavaScript
四、问答题
1.【中等题】JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
(中等)
答:
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。
JSP编译后是"类servlet"。
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。
2.【中等题】jsp的四种范围是什么?
(中等)
答:
pageContext否是代表与一个页面相关的对象和属性。
一个页面由一个编译好的Javaservlet类(可以带有任何的include指令,但是没有include动作)表示。
这既包括servlet又包括被编译成servlet的JSP页面
request是是代表与Web客户机发出的一个请求相关的对象和属性。
一个请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include动作的关系)
session是是代表与用于某个Web客户机的一个用户体验相关的对象和属性。
一个Web会话可以也经常会跨越多个客户机请求
application是是代表与整个Web应用程序相关的对象和属性。
这实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域
3.【中等题】JSP中动态INCLUDE与静态INCLUDE的区别?
(中等)
答:
动态INCLUDE用jsp:
include动作实现 includepage="included.jsp"flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@includefile="included
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序员 笔试 试题 汇总 答案