JAVA程序员笔试面试题汇总及答案.docx

上传人:b****2 文档编号:1297335 上传时间:2023-04-30 格式:DOCX 页数:31 大小:33.38KB
下载 相关 举报
JAVA程序员笔试面试题汇总及答案.docx_第1页
第1页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第2页
第2页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第3页
第3页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第4页
第4页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第5页
第5页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第6页
第6页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第7页
第7页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第8页
第8页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第9页
第9页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第10页
第10页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第11页
第11页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第12页
第12页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第13页
第13页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第14页
第14页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第15页
第15页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第16页
第16页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第17页
第17页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第18页
第18页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第19页
第19页 / 共31页
JAVA程序员笔试面试题汇总及答案.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA程序员笔试面试题汇总及答案.docx

《JAVA程序员笔试面试题汇总及答案.docx》由会员分享,可在线阅读,更多相关《JAVA程序员笔试面试题汇总及答案.docx(31页珍藏版)》请在冰点文库上搜索。

JAVA程序员笔试面试题汇总及答案.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2