JAVA程序员面试题收集(2000字)

发表于:2021.1.11来自:www.fanwen118.com字数:2000 手机看范文

JAVA程序员面试题收集

想必大家都有参加过面试的或多或少的经历吧,不知道考官都会问啥米刁钻古怪的问题呢?下面的考题是我搜集的一些针对java的面试题目,还不少,大概分为[基础类][应用类][其他类],仅供参考,大家还可以说说自己的面试经历。

一、Java基础知识

1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。

2.字符串的操作:

写一个方法,实现字符串的反转,如:输入abc,输出cba

写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。

3.数据类型之间的转换

如何将数值型字符转换为数字(Integer,Double)

如何将数字转换为字符

如何取小数点前两位,并四舍五入。

4.日期和时间

如何取得年月日,小时分秒

如何取得从19xx年到现在的毫秒数

如何获取某个日期是当月的最后一天

如何格式化日期

5.数组和集合

6.文件和目录(I/O)操作

如何列出某个目录下的所有文件

如何列出某个目录下的所有子目录

判断一个文件或目录是否存在

如何读写文件

7.Java多态的实现(继承、重载、覆盖)

8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。

10.找出下列代码可能存在的错误,并说明原因:

二、JSP&Servlet技术

1.描述JSP和Servlet的区别、共同点、各自应用的范围

2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(< > & “”)

3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。

4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。

5.列出Jsp中包含外部文件的方式,两者有何区别。

6.说明Jsp中errorPage的作用,应用范围。

7.介绍在Jsp中如何使用JavaBeans。

8.简单介绍JSP的标记库

9.Jsp和Servlet中的请求转发分别如何实现。

三、J2EE相关知识

1.介绍J2EE、J2SE、J2SE的区别。

2.J2EE是一种技术还是一种平台,他提供了那些技术。

3.什么是Application Server,它有什么功能和优点。

4.简单介绍连接池的优点和原理。

5.Web.xml的作用

四、其他

1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑)

2.简单介绍您所了解的MVC。

3.简单介绍所了解的XML。

4.文档和编码规范

5.Java中的分页、效率考虑。

6.简单介绍您所了解的structs。

收藏:

1.xml在项目中的作用

2.s-EJB 与 e-EJB的区别

3.会话面的作用

4.cmp与bmp的优缺点

5.j2me程序的必需的几个部分

6.c/s与b/s的区别

7.构建一个connect pool,然后再调用它,

8.j2ee平台与dotnet平台的区别

9.ejb的life cycle

10.session bean 和 entity bean的区别

11.ejb中的transaction机制

12.synchronized (生产者和消费)

13.String 和 StringBuffer

14.Serializable

15.MVC (Struts的工作流程)

16.什么是MDA

17.tcp与udp的区别

18.链表与散列表和数组的区别

19.堆和栈的区别

20.ejb的分类及区别

21.你对现在软件业以及国内软件业的看法

22.谈谈java多线程

23.谈谈文件加密技术

24.软件开发生命周期

25.路由协议种类及特点

26.java的awt和swing组件的GUI设计的关键

27.对于java流的认识

28.简单描述一下awt与swing区别。

29.简述java编程中事件处理模式。

30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。

31.简述逻辑操作(如&,|)与条件操作(如&&,||)的区别。

32.简述 Java Server Page 和 Servlet 的联系和区别。

33.简述synchronized和java.util.concurrent.locks.Lock的异同 ?

34.EJB规范规定EJB中禁止的操作有哪些?




第二篇:JAVA程序员笔试面试题汇总及答案 18300字

1. 【基础题】请描述访问控制符的各自作用域与区别 答:

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

一、 二、

名词解释 问答题

1. 【中等题】请说出 ArrayList和Vector的区别

答:

主要从二方面来说.

同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半

2. 【中等题】请说出HashMap和Hashtable的区别 答:HashMap与HashTable主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value 3. 【基础题】Collection 和 Collections的区别 答:

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 Collection是个java.util下的接口,它是各种集合结构的父接口

第十八章 输入输出

笔试题

一、 填空题

1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。

2. 和以字符流的方式读写文本文件,且效率更高。

3. 【基础题】和

二、 选择题

1. 【基础题】下列哪个类是实体类(BC )

A.

B.

C.

D.

E. InputStream PrintStream Socket Reader DataInput

2. 【提高题】请选择下列程序的运行结果(A)

public class TestIOapp{

} public static void main(String [] args) throws IOException{ } StringReader stingin = new StringReader("test"); LineNumberReader in = new LineNumberReader(stingin); PrintWriter out = new PrintWriter(System.out); out.println(in.readLine()); out.flush();

A.

B.

C.

D. test test:1 1:test 1 test

3. 【提高题】请选择下列程序的运行结果 ( B )

public class TestIOapp{

} public static void main(String [] args) throws IOException{ } RandomAccessFile file = new RandomAccessFile("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.

B.

C.

D.

E.

三、

四、 123456 7890 1000000 777 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: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 的光标的移动情形。

第二十章 XML

笔试题

一、 填空题

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. 【中等题】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)

2)

3)

4) 线程可以正在运行(running)。只要获得CPU时间它就可以运行。 运行的线程可以被挂起(suspend),并临时中断它的执行。 一个挂起的线程可以被恢复(resume,允许它从停止的地方继续运行。 一个线程可以在等待资源时被阻塞(block)。

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

5. 【提高题】当一个线程进入一个对象的一个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. 【基础题】Tomcat的核心配置文件是 。

3. 【基础题】Tomcat中发布一个WEB应用时,通常把Web应用发布在 目录下。

4. 【基础题】Tomcat将Jsp生成的Servlet下。

5. 【基础题】Tomcat的内置编码就是使用了。

二、

三、 选择题 名词解释

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是美国微软公司研发。

a)

b)

c) 1) C/S架构软件的优势与劣势 应用服务器运行数据负荷较轻。 数据的储存管理功能较为透明。 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.

C.

D.

三、 名词解释 将本页面设置为错误的页面 将本页面中所有的错误的信息保存到url变量中 为本页面指定一个错误页面 没有具体的含义

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动作实现 <jsp:include page="included.jsp"

flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可 以带参数。静态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)

2)

所指 Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 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由四个定制标记库和一个 函数库 组成。

二、

三、 选择题 名词解释

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)

2)

3)

4)

5)

6)

7)

8)

9)

10)

11) applicationScope 应用程序范围内的scoped变量组成的集合 cookie 所有cookie组成的集合 header HTTP请求头部,字符串 headerValues HTTP请求头部,字符串集合 initParam 全部应用程序参数名组成的集合 pageContext 当前页面的javax.servlet.jsp.PageContext对象 pageScope 页面范围内所有对象的集合 param 所有请求参数字符串组成的集合 paramValues 所有作为字符串集合的请求参数 requestScope 所有请求范围的对象的集合 sessionScope 所有会话范围的对象的集合

第二十九章 Web监听器和过滤器

笔试题

一、 填空题

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

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

三、

四、 选择题 名词解释 问答题

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

答:

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

第三十章 会话跟踪

笔试题

一、 填空题

1. 【基础题】在Servlet中,我们可以使用对象的 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. 【基础题】资源文件的后缀名是。

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

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

二、 选择题

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

A.

B.

C.

D.

三、 classes 目录 WEB根目录 tomcat根目录 WEB-INF目录 名词解释

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

四、 问答题

第三十三章 上传与下载

笔试题

一、 填空题

1. 【中等题】如果tomcat的安装路径是c:/tomcat5, 已经将一个名称为test的WEB应用程序发布到tomcat中, 在一个servlet中使用

this.getServletContext().getRealPath("/")方法得到的路径是

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

二、 选择题

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

A.

B.

C.

D.

三、

四、 URLEncode.encode() URLDecoder.decode() request.setCharacterEncoding() response.setCharacterEncoding() 名词解释 问答题

第三十四章 Struts

笔试题

一、 填空题

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

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

3. 【基础题】 Struts中使用 标记显示资源文件中的数据, 使用面逻辑处理。

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

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的核心配置文件名称通常是对象关系映射文件名称通常是类名加上 .hbm.xml 组成。

5. 【中等题】Hibernate 对象的三种状态态。

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

二、

三、 选择题 名词解释

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

四、

问答题

第三十六章 AJAX

笔试题

一、 填空题

1. AJAX的核心对象是。

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

3. 通常要判断XMLHttpRequest对象的readyState等于 态码 等于 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程序员面试必读 5300字
┣ 程序员面试什么最重要? 6600字
┣ 35岁程序员的独家面试经历 6000字
┣ 程序员面试技巧 3200字
┣ 更多程序员面试自我介绍
┗ 搜索类似范文

更多相关推荐:
程序员经典面试回答(非技术)21800字

张国良编辑程序员经典面试回答目录错误未定义书签1请你自我介绍一下你自己22你觉得你个性上最大的优点是什么33说说你最大的缺点34你对加班的看法35你对薪资的要求36在五年的时间内你的职业规划37你朋友对你的评价...

浅谈关于java程序员面试的一些事项1300字

浅谈关于java程序员面试的一些事项简单的说一下笔试笔试这个环节是很容易通过的无非就是几张试卷一共也就十几道题一般由5至10个选择题2至5个论述题1至2个编程题组成接过笔试题之后第一步要平静心态第二步要浏览所有...

程序员面试不完全指南1100字

程序员找工作难想要被成功聘用更难最常见的办法是经历一次又一次的面试失败后自己琢磨出面试技巧当然也可以花钱到一些培训机构去接受专业的书面简历和模拟面试的指导这些方法可能都会奏效但是却并不是时间和金钱利用率最高的软...

专栏推荐
大家在关注

地图地图CC