JAVA 面试题集(高级篇) 整理 by rensn 2006-6-3
1
1、BS 与 CS 的联系与区别。
回答:C/S 是 Client/Server 的缩写。服务器通常采用高性能的 PC、工作站或小型机,并采用大型数据库系统,如 Oracle、
Sybase、Informix 或 SQL Server。客户端需要安装专用的客户端软件。B/S 是 Brower/Server 的缩写,客户机上只要安装
一个浏览器(Browser),如 Netscape Navigator 或 Internet Explorer,服务器安装 Oracle、Sybase、Informix 或 SQL Server
等数据库。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端
实现。浏览器通过 web Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1.硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比 C/S 更强的适
应范围, 一般只要有****作系统和浏览器就行
2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用 C/S 结构适宜. 可以通
过 B/S 发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比 C/S 有更高的要求 B/S 结构的程序架构
是发展的趋势, 从 MS 的.Net 系列的 BizTalk 2000 Exchange 2000 等, 全面支持网络的构件搭建的系统. SUN 和 IBM 推的
JavaBean 构件技术等,使 B/S 更加成熟.
4.软件重用不同
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在 B/S 要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石
头桌子
5.系统维护不同
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实
现升级.
6.处理问题不同
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与****作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是 C/S 无法作到的. 与****作系统平台关系最小.
7.用户接口不同
C/S 多是建立的 Window 平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
B/S 信息流向可变化, B-B B-C B-G 等信息、流向的变化, 更像交易中心。
2、说出 Servlet 的生命周期,并说出 Servlet 和 CGI 的区别。
回答:Servlet被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service 方法,service 方法自动派遣运行与
请求对应的 doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其 destroy 方法。
与 CGI 的区别在于 Servlet 处于服务器进程中,它通过多线程方式运行其 service 方法,一个实例可以服务于多个请求,并
且其实例一般不会销毁,而 CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于 Servlet。
3、Servlet 的生命周期
回答:web 容器加载 Servlet,生命周期开始。通过调用 Servlet 的 init()方法进行 Servlet 的初始化。通过调用 service()
方法实现,根据请求的不同调用不同的 do***()方法。结束服务,web 容器调用 Servlet 的 destroy()方法。