java试题及答案
名解:(15分)
OOP及特征(3):
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
特征:
封装 , 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变
的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并
了其它组件进行调用的方法。
继承性 , 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
多态性 , 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得根据实际调用的类型。
类和对象:
类:用来描述某种具有相同属性和行为的事物;
对象:是类的一个实例,对象是根据类来产生的.
进程与线程
进程:是程序在其自身地址空间中的一次独立的运行.
线程:是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。
C/S和B/S
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/,是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQLServer等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过,ebServer 同数据库进行数据交互。
事务:
java se(35分):
简答题:
==和equals的区别
==地址比较
equals
比较
抽象类和接口的区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽
象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
error和exception有什么区别?
error
示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
Collection 和 Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
sleep() 和 wait() 有什么区别?
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
Java EE:(50)
JSP的四种属性范围
pageContext
request
session
application
forward和redirect跳转的区别:
RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取,属于服务器端跳转;
后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接,此次请求将丢失Request的值。这样,从浏览器的地址栏中可以看到跳转后的链接地址,属于客户端跳转;。
什么是Servlet,分为几种形式:
Servlet:负责处理客户请求、把请求传送给servlet并把结果返回给客户。servlet的接口
是由servletAPI定义好的,这个接口定义了servlet容器在servlet上要调用的方法及传递给servlet的对象类。
分类:过滤器,监听器:
试述MVC设计模式:
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图
视图是模型的表示,它提供用户交互界面。使用多个包含单显示页面的用户部件,复杂的Web页面可以展示来自多个数据源的内容,并且网页人员,美工能独自参与这些Web页面的开发和维护。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
控制器
可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求,为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的方式进行管理。因此,为了达到集中管理的目的引入了控制器。应用程序的控制器集中从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的视图组件。
模型(Model):就是业务流程/状态的处理以及业务
的制定。就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。
你使用过哪些开源框架能否描述一下,struts hibernate spring(或其它你所熟悉的框架的)主要功能及作用.
struts :一个MVC设计模式
hibernate:关系对象映射(O/RMapping)技术,封装JDBC,实现类中的属性和表中的字段的一一对应,操作类中的字段就相当于操作了数据库中的表.
spring:是一个轻量级容器,主要功能解耦合作用.各框架之间耦合度尽量降低.