石家庄java培训
石家庄中心

400-017-8985

热门课程

JAVA程序员笔试面试汇总二

  • 时间:2016-04-15 10:07
  • 发布:石家庄Java培训机构
  • 来源:企业笔试题

笔试题

一、 填空题

二、 选择题

三、 名词解释

1. 【基础题】 ODBC:Open Database Connectivity 开放数据库互连

2. 【基础题】 JDBC:Java DataBase Connectivity Java数据库连接

3. 【基础题】 DBMS:Data Base Management System数据库管理系统

4. 【基础题】 URL:Uniform Resource Locator 统一资源定位器

URL组成:协议名和资源名

protocol://resourceName

四、 问答题

1. 【中等题】Class.forName()的作用?

答:

调用该方法返回一个以字符串指定类名的类的对象。此对象用来与特定的数据库连接。

2. 【中等题】简述Statement和PreparedStatement 的区别?

答:

无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译,使用PreparedStatement对象比使用Statement对象的速度更快。

3. 【中等题】在connection类中提供了3个控制事务的方法,分别是:

答:

setAutoCommit(boolean bln)

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 的光标的移动情形。

笔试题

一、 填空题

1. 【基础题】XML 是一种 标记 语言。

2. 【基础题】XML 的设计宗旨是 传输数据 ,而非显示数据。

3. 【基础题】XML 文档必须有一个元素是所有其他元素的父元素。该元素称为 根元素 。

二、 选择题

三、 名词解释

1. 【基础题】XML:EXtensible Markup Language 可扩展标记语言

2. 【基础题】DTD:Document Type Definition 文档类型定义

3. 【基础题】W3C:World Wide Web Consortium 万维网联盟

4. 【基础题】CSS:Cascading Style Sheets 层叠样式单

5. 【基础题】XSL:EXtensible Stylesheet Language可扩展样式单语言

四、 问答题

1. 【中等题】XML文档定义有几种形式?它们之间有何本质区别?

答:

1) 两种形式 dtd schema。

2) 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。

2. 【中等题】格式良好的XML文档的标准是必须遵守XML 1.0规范中的语法规则,应满足的条件主要包括:

答:

文档应包含一个或多个元素

文档中只有一个根元素,该元素无任何部分出现在其它元素中

元素必须正确关闭

元素不得交叉

属性值必须加引号

3. 【中等题】XML 与 HTML 的主要差异(难度:中)

答:

XML 不是 HTML 的替代。XML 和 HTML 为不同的目的而设计:

XML 被设计为传输和存储数据,其焦点是数据的内容。

HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息。

Java+XML应用

笔试题

一、 填空题

二、 选择题

三、 名词解释

1. 【基础题】 DOM:Document Object Model文档对象模型

2. 【基础题】 SAX:Simple API for XML 文档边读入边解析

四、 问答题

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. 【提高题】请谈谈进程和线程有什么区别?

答:

进程一般是对操作系统而言的。例如,你打开word编辑文档,同时打开outlook收取邮件。我们可以说这时系统内有两个进程在运行。即多个程序几乎在同一时间执行多个任务。

线程一般是对某一程序而言的。如上例,你打开outlook收新邮件的同时,还可以看已下载的邮件,这两件事没有相互干扰,那么我们说此时这一程序中至少有两个线程在运行。即每一个程序在同一时间内执行多个任务。

2. 【中等题】多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

答:

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口

同步的实现方面有两种,分别是synchronized,wait与notify

3. 【中等题】sleep() 和 wait() 有什么区别?

答:

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

4. 【中等题】启动一个线程是用run()还是start()?

答:

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

5. 【中等题】请说出你所知道的线程同步的方法。

答:

wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉 InterruptedException异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

6. 【提高题】请描述出线程存在的几种状态?

答:

1) 线程可以正在运行(running)。只要获得CPU时间它就可以运行。

2) 运行的线程可以被挂起(suspend),并临时中断它的执行。

3) 一个挂起的线程可以被恢复(resume,允许它从停止的地方继续运行。

4) 一个线程可以在等待资源时被阻塞(block)。

5) 在任何时候,线程可以终止(terminate),这立即中断了它的运行。一旦终止,线程不能被恢复。

7. 【提高题】当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

答:

不能,一个对象的一个synchronized方法只能由一个线程访问。

网络编程

笔试题

一、 填空题

二、 选择题

三、 名词解释

1. 【中等题】TCP:Transmission Control Protocol传输控制协议

是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。

2. 【中等题】UDP:User Datagram Protocol用户数据报协议

UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。简单的说,如果一个主机向另外一台主机发送数据,这一数据就会立即发出,而不管另外一台主机是否已准备接收数据。如果另外一台主机收到了数据,它不会确认收到与否。

3. 【基础题】IP:Internet Protocol互联网协议

4. 【基础题】LAN:local area network局域网

5. 【基础题】WAN:wide area network广域网

四、 问答题

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. 【基础题】Java EE:Java Platform Enterprise Edition

2. 【基础题】HTTP:Hypertext Transfer Protocol

四、 问答题

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、Java IDL、Java Mail、JAF

5. 【基础题】你能说出哪些J2EE开发工具和服务器

答:

开发工具:

Borland公司的JBuilder

Sun公司的SunJavaStudio

开源的IDE Eclipse

服务器:

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. 【中等题】 JAVA SERVLET API中forward() 与redirect()的区别?(中等)

答:

前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的 地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的 链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

4. 【基础题】 写出Servlet类的基本结构?

答:

public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response) 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: Java Server Page

2. 【基础题】JS: Java Script

四、 问答题

1. 【中等题】 JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?(中等)

答:

JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet 主要用于控制逻辑。

2. 【中等题】 jsp的四种范围是什么?(中等)

答:

pageContext否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关 系)

session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整 个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

3. 【中等题】 JSP中动态INCLUDE与静态INCLUDE的区别?(中等)

答:

动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可 以带参数。静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用 于包含静态页面<%@ include file="included.htm" %>

4. 【中等题】 jsp有哪些动作?作用分别是什么?(中等)

答:

JSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

5. jsp如何使用注释?

答:

1) <%-- --%>2); //; 3)/** **/; 4);

6. 【中等题】 get和post的区别?(难)

答:

Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:

1) Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。

2) Get将表单中数据的按照variable=value的形式,添加到action所指向的URL 后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单 中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指 向URL。

3) Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。

4) Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。

5) Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。

6) Get是Form的默认方法。

第二十七章 JSP内置对象

笔试题

一、 填空题

二、 选择题

三、 名词解释

1. 【基础题】 JSP:Java Server Pages,JSP是在Servlet技术上发展起来的,已经成为J2EE技术应用中非常重要的一个组成部分。JSP是结合HTML、Java代码、JavaScript代码等内容一起处理信息的动态网页技术,在B/S开发架构中主要用于处理客户端的信息。(简单)

四、 问答题

1. 【中等题】 Request对象的主要方法有哪些? (中等)

答:

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚

举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式 getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果

是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

&&&getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

2. 【基础题】 JSP中动态INCLUDE与静态INCLUDE的区别?(简单)

答:

动态INCLUDE用jsp:include动作实现

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态 页面

3. 【基础题】 JSP有哪些内置对象?作用和分别是什么?

答:

JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的异常

EL表达式和JSTL标记库笔试题

一、 填空题

1. 【基础题】 EL 表达式的格式是:用 美元符号($) 定界,内容包括在 花括号({}) 中。

2. 【基础题】 JSTL由四个定制标记库 core 、 format 、 xml 、 sql 和一个 函数库 组成。

二、 选择题

三、 名词解释

1. 【基础题】 EL表达式:Expression Language 表达式语言,它是为了便于存取数据而定义的一种语言,JSP2.0之后才成为一种标准。

2. 【基础题】 JSTL:JSP Standard Tag Library JSP标准标签库

四、 问答题

1. 【中等题】JSTL与传统JSP开发手段的区别和优势是什么?

答:

传统的JSP开发会使用脚本元素在页面中嵌入程序源代码(通常是 Java 代码), 对于这样的 JSP 页面,其软件维护任务的复杂度大大增加了。

JSTL 使 JSP 作者可以减少对编制脚本元素的需求,甚至可以不需要它们,并避 免了相关的维护成本。

2. 【中等题】EL表达式的隐含对象及其作用(至少说出4个)?

答:

1) applicationScope   应用程序范围内的scoped变量组成的集合

2) cookie   所有cookie组成的集合

3) header  HTTP请求头部,字符串

4) headerValues  HTTP请求头部,字符串集合

5) initParam   全部应用程序参数名组成的集合

6) pageContext   当前页面的javax.servlet.jsp.PageContext对象

7) pageScope  页面范围内所有对象的集合

8) param  所有请求参数字符串组成的集合

9) paramValues   所有作为字符串集合的请求参数

10) requestScope  所有请求范围的对象的集合

11) sessionScope  所有会话范围的对象的集合

Web监听器和过滤器笔试题

一、 填空题

1. 【基础题】Web监听器的种类可以分为: Servlet上下文(ServletContext)监听 、 Http 会话(HttpSession)监听 和 请求(ServletRequest)监听 。

2. 【基础题】如果要编写一个过滤器,需要实现 javax.servlet.Filter 接口。

二、 选择题

三、 名词解释

四、 问答题

1. 【基础题】过滤器的作用是什么?

答:

截取从客户端发过来的请求,并进行处理,对数据进行重新编码,过滤掉客户的某 些不应出现的词汇,可以验证用户是否已经登陆。

会话跟踪笔试题

一、 填空题

1. 【基础题】在Servlet中,我们可以使用 HttpServletRequest 对象的 getSession() 方法获取 session对象。

2. 【基础题】使用Session进行数据传递时,调用session对象的getAttribute()方法需要传入的参数类 型是 String ,返回的数据类型是 Object 。

二、 选择题

1. 【基础题】从session中获取数据的方法是:(D)

getParameter();

getCreationTime();

getAttributeNames();

getAttribute();

三、 名词解释

四、 问答题

四种会话跟踪技术 (中等)

答:

会话作用域ServletsJSP 页面描述

page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这 既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可

能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关 系)

session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整 个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

MVC笔试题

一、 填空题

1. 【基础题】 DAO类属于MVC中的 模型 层, Servlet类属于MVC中的 控制 层, JSP属于MVC中的 视图 层

二、 选择题

三、 名词解释

1. 【基础题】 MVC:MVC是Model-View-Controller三个英文单词的所写,是一种流行的软件设计模式。即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

2. 【基础题】 DAO: Data Access Object数据访问接口.

3. 【基础题】 VO: value object值对象.

四、 问答题

1. 【中等题】 简述MVC三个层次的作用。

1) 视图(View):代表用户交互界面,一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理。

2) 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心部分。

业务模型包含一个很重要的模型——数据模型。数据模型主要指实体对象的数据保存(持久化),所有有关数据库的操作只限制在该模型中。

3) 控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。控制层并不做任何的数据处理。

2. 【中等题】 简述MVC的优缺点。

优点:

开发效率高。

松耦合,程序灵活性和扩展性好。

代码重用度更高。

易于人员分工。

缺点:

1) 代码复杂度增加。

2) 代码数量增加。

3) 不适合开发小型项目。

国际化

笔试题

一、 填空题

1. 【基础题】资源文件的后缀名是 properties 。

2. 【基础题】一个资源文件的名称是appenUS.properties, 其中app是指 基本名称 , en是指 语言编码 , US是指 国家编码 。

3. 【基础题】资源文件中可以添加不同国家的语言字符, 编写完成后需要转换称 Unicode 编码。

二、 选择题

1. 【基础题】资源文件通常放置在WEB工程的(A)中。

A. classes 目录

B. WEB根目录

C. tomcat根目录

D. WEB-INF目录

三、 名词解释

1. 【基础题】I18N:国际化(internationalization)的简称。指的是在软件设计阶段,就应该使软件具有支持多种语言和地区的功能。

四、 问答题

上传与下载笔试题

一、 填空题

1. 【中等题】如果tomcat的安装路径是c:/tomcat5, 已经将一个名称为test的WEB应用程序发布到tomcat中, 在一个servlet中使用 this.getServletContext().getRealPath(“/”)方法得到的路径是 c:/tomcat5/webapps/test/ 。

2. 【基础题】文件上传功能中, 页面表单的请求方式应设成 POST 表单类型应设成 multipart/form-data, 使用表单元素

二、 选择题

3. 【中等题】如果需要在url中传递中文参数, 需要对中文进行编码, 应该采取以下哪个方法(A)。

A. URLEncode.encode()

B. URLDecoder.decode()

C. request.setCharacterEncoding()

D. response.setCharacterEncoding()

三、 名词解释

四、 问答题

第三十四章 Struts

笔试题

一、 填空题

1. 【基础题】 Struts的核心配置文件名称是 struts-config.xml 。

2. 【基础题】 Struts的标记库有 struts-html标记库, struts-bean标记库, struts-logic 标记库, struts-nested标记库, struts-tiles标记库。

3. 【基础题】 Struts中使用 标记显示错误消息,使用 标记显示资源文件中的数据, 使用 struts-logic 标记库执行页面逻辑处理。

4. 【基础题】在ActionForm中定义 FormFile 类型的属性可以方便的处理上传。

5. 【基础题】一个Action通常可以配置一个或多个ActionForard, ActionForward必须配置 name 和 path 两个属性。

二、 选择题

三、 名词解释

1. 【基础题】 Strtus: Struts是一个非常流行的MVC框架, 是Apache软件基金会Jakarta项目中的一个子项目Struts采用JSP作为MVC的视图, 采用JavaBean充当模型部分, 由ActionServlet具体指定的Action动作类作为控制器,负责视图与模型之间的交互。

四、 问答题

1. 【中等题】简述Struts的工作流程。

1) 控制器读取配置文件进行初始化工作。

2) 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面。

3) 在控制器调用具体的Action的execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。还可以在ActionForm类中调用validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。

4) 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。

Hibernate笔试题

一、 填空题

1. 【基础题】Hibernate关注应用程序的 持久 层。

2. 【基础题】ORM指的是 对象 和 关系 的映射。

3. 【基础题】面向关系概念中的表 对应与面向对象概念中的 类 , 表中的行对应与 对象 , 表中的字段对应与 属性 。

4. 【基础题】Hibernate的核心配置文件名称通常是 hibernate.cfg.xml , 对象关系映射文件名称通常是类名加上 .hbm.xml 组成。

5. 【中等题】Hibernate 对象的三种状态 瞬时状态 , 持久状态 , 脱管状态。

6. 【中等题】Hibernate的对象检索方式有 OID检索方式,HQL检索方式, QBC检索方式, 本地SQL检索方式。

二、 选择题

三、 名词解释

1. 【基础题】名词解释—Hibernate: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。

四、 问答题

AJAX笔试题

一、 填空题

1. AJAX的核心对象是 XMLHttpRequest 。

2. AJAX中发送请求的方法是 send() , 服务器返回数据如果是文本用 responseText 属性访问,如果是xml用 responseXML 属性访问。

3. 通常要判断XMLHttpRequest对象的readyState等于 4 并且服务器的状态码 等于 200 时进行后续处理。

二、 选择题

三、 名词解释

1. AJAX: AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。

四、 问答题

1. 简述AJAX应用和传统WEB应用的区别。

传统WEB应用是页面完全刷新, 简单操作也导致重新加载页面全部数据。AJAX应用是部分刷新页面,只作必要的数据交换,并且可以异步访问服务器端。

Spring笔试题

一、 填空题

二、 选择题

三、 名词解释

1. Spring—Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。

2. 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

3. 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

4. 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

5. 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

6. 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

上一篇:JAVA程序员笔试面试题汇总
下一篇:面试经验谈:程序员面试注意事项

实用java程序员面试题及答案大全

15个顶级Java多线程面试题及回答

Java多线程面试问题

去哪儿网Java开发面试知识要点

选择城市和中心
贵州省

广西省

海南省