java面试大总结3Word文档格式.docx

上传人:b****5 文档编号:21140791 上传时间:2023-01-27 格式:DOCX 页数:14 大小:29.33KB
下载 相关 举报
java面试大总结3Word文档格式.docx_第1页
第1页 / 共14页
java面试大总结3Word文档格式.docx_第2页
第2页 / 共14页
java面试大总结3Word文档格式.docx_第3页
第3页 / 共14页
java面试大总结3Word文档格式.docx_第4页
第4页 / 共14页
java面试大总结3Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

java面试大总结3Word文档格式.docx

《java面试大总结3Word文档格式.docx》由会员分享,可在线阅读,更多相关《java面试大总结3Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

java面试大总结3Word文档格式.docx

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。

可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:

将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:

FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

106、是否可以从一个static方法内部发出对非static方法的调用?

不可以,如果其中包含对象的method();

不能保证对象初始化.

107、写clone()方法时,通常都有一行代码,是什么?

Clone有缺省行为,super.clone();

他负责产生正确大小的空间,并逐位复制。

108、在JAVA中,如何跳出当前的多重嵌套循环?

用break;

return方法。

109、List、Map、Set三个接口,存取元素时,各有什么特点?

List以特定次序来持有元素,可有重复元素。

Set无法拥有重复元素,内部排序。

Map保存key-value值,value可多值。

110、J2EE是什么?

J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprieseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。

所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。

111、UML方面

标准建模语言UML。

用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。

112、说出一些常用的类,包,接口,请各举5个

常用的类:

BufferedReaderBufferedWriterFileReaderFileWirterStringInteger

常用的包:

java.langjava.awtjava.iojava.utiljava.sql

常用的接口:

RemoteListMapDocumentNodeList

113、开发中都用到了那些设计模式?

用在什么场合?

每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。

通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

主要用到了MVC的设计模式。

用来开发JSP/Servlet或者J2EE的相关应用。

简单工厂模式等。

114、jsp有哪些动作?

作用分别是什么?

JSP共有以下6种基本动作

jsp:

include:

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

useBean:

寻找或者实例化一个JavaBean。

setProperty:

设置JavaBean的属性。

getProperty:

输出某个JavaBean的属性。

forward:

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

plugin:

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

115、AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

可以继承其他类或完成其他接口,在swing编程中常用此方式。

116、应用服务器与WEBSERVER的区别?

1。

应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。

2。

应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。

web服务器通常比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器。

应用服务器:

Weblogic、Tomcat、Jboss;

WEBSERVER:

IIS、Apache

117、BS与CS的联系与区别。

C/S是Client/Server的缩写。

服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。

客户端需要安装专用的客户端软件。

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。

在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。

浏览器通过WebServer同数据库进行数据交互。

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系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.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-BB-CB-G等信息、流向的变化,更像交易中心。

118、LINUX下线程,GDI类的解释。

LINUX实现的就是基于核心轻量级进程的"

一对一"

线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。

GDI类为图像设备编程接口类库。

119、STRUTS的应用(如STRUTS架构)

Struts是采用JavaServlet/JavaServerPages技术,开发Web应用程序的开放源码的framework。

采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。

Struts有如下的主要功能:

一.包含一个controllerservlet,能将用户的请求发送到相应的Action对象。

二.JSP自由tag库,并且在controllerservlet中提供关联支持,帮助开发员创建交互式表单应用。

三.提供了一系列实用对象:

XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。

120、Jdo是什么?

JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。

JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。

这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。

另外,JDO很灵活,因为它可以在任何数据底层上运行。

JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强

121、内部类可以引用他包含类的成员吗?

有没有什么限制?

一个内部类对象可以访问创建它的外部类对象的内容

122、WEBSERVICE名词解释。

JSWDL开发包的介绍。

JAXP、JAXM的解释。

SOAP、UDDI,WSDL解释。

WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。

JAXP(JavaAPIforXMLParsing)定义了在Java中使用DOM,SAX,XSLT的通用的接口。

这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。

JAXM(JavaAPIforXMLMessaging)是为SOAP通信提供访问方法和传输机制的API。

WSDL是一种XML格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。

这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。

相关的具体端点即组合成为抽象端点(服务)。

SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。

UDDI的目的是为电子商务建立标准;

UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。

123、int和Integer的区别:

Java提供两种不同的类型:

引用类型和原始类型(或内置类型)。

Int是java的原始数据类型,Integer是java为int提供的封装类。

Java为每个原始类型提供了封装类。

原始类型封装类

booleanBoolean

charCharacter

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

引用类型和原始类型的行为完全不同,并且它们具有不同的语义。

引用类型和原始类型具有不同的特征和用法,它们包括:

大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。

对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。

124、String类和StringBuffer类的区别:

它们都是处理字符串的类,但是它们有一个最大的区别,那就是,String对象是存储你不能改动的文本字符串,相反,如果你希望改动,则应使用StringBuffer类作为替换

StringBuffer是可变的而String是不可变的.

而且String用得多个的话会占用不同的内存.

如:

Stringstr="

bb"

;

str="

aa"

前一个bb的内存地址不变,当又给它赋值为aa时它(str)又指向aa的地址.

而StringBuffer就不会这样.

125、"

=="

和"

equals()"

方法的区别?

"

对于基本类型的数据,比较的是内容;

而对于两个引用类型的变量则比较的是两个对象的地址;

不支持基本类型的比较,对于应用类型的变量默认情况下比较的也是地址,除非你自己手动的覆盖"

方法,在"

方法中指定自己的比较策略。

但是对于String类型变量则直接比较是两个字符串的内容,因为JDK中String类已经实现了"

方法,(在字符串中)"

比较的是两个对象的值.

 

集合:

Collection层次结构中的根接口

Collection表示一组对象,这些对象也称为collection的元素

Java集合的缺点:

类型未知

总的说来,JavaAPI中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:

Collection<

--list>

<

--vector>

--arraylist>

--linkedlist>

--set>

--hashset>

--linkedhashset>

--sortedset>

--treeset>

List是基于Array,可以有重复的值

Vector:

基于Array的List很重要的一点就是Vector是“sychronized”的,这个也是Vector和ArrayList的唯一的区别。

ArrayList:

基于Array上的链表,但是不同的是ArrayList不是同步的

LinkedList:

它不是基于Array的,所以不受Array性能的限制。

它每一个节点(Node)都包含两方面的内容:

1.节点本身的数据(data);

2.下一个节点的信息(nextNode)。

所以当对LinkedList做添加,删除动作的时候就不用像基于Array的List一样,必须进行大量的数据移动。

只要更改nextNode的相关信息就可以实现了。

这就是LinkedList的优势

HashSet:

虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。

List基本上都是以Array为基础。

但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。

HashSet的存储方式是把HashMap中的Key作为Set的对应存储

Set总结:

1.Set实现的基础是Map(HashMap);

2.Set中的元素是不能重复的,如果使用add(Objectobj)方法添加已经存在的对象,则会覆盖前面的对象;

性能时Map所要面对的一个大问题。

如果你知道get()时怎么工作的,你就会发觉(比方说)在ArrayList里面找对象会是相当慢的。

而这正是HashMap的强项。

它不是慢慢地一个个地找这个键,而是用了一种被称为hashcode的特殊值来进行查找的。

散列(hash)时一种算法,它会从目标对象当中提取一些信息,然后生成一个表示这个对象的“相对独特”的int。

hashCode()是Object根类的方法,因此所有Java对象都能生成hashcode。

HashMap则利用对象的hashCode()来进行快速的查找。

这样性能就有了急剧的提高。

设计模式方面:

1、开发中都用到了那些设计模式?

答:

通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。

2、UML方面

标准建模语言UML。

用例图,静态图(包括类图、对象图和包图),行为图,交互图

(顺序图,合作图),实现图,

******************************************************

下面两个概念描述:

1、概述struts,以及struts如何实现MVC架构的?

strutsframework是一种基于java的技术,Web应用程序开发人员通过strutsframework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点。

Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。

Struts采用jsp作为MVC的视图,由ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。

控制器的每个入口点都由名为struts-config.xml的配置文件设置。

该文件把来自视图的请求映射为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。

Struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。

Struts的处理流程:

1>

控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。

2>

控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。

3>

在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。

还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。

4>

执行具体的的Execute的方法,它负责执行相应的业务逻辑。

执行完后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。

也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过JavaBean调用EJB以完成业务处理;

如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。

2、概述MVC体系结构

MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。

在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。

控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型

在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。

线程方面:

3、多线程的优点?

可分两方面来答:

?

相对于单线程而言:

可以响应多任务的并发操作。

多线程取消了主循环和轮流检测机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。

相对于进程而言:

(可以答也可以不答)

它所要求的开销比较小,转换成本较小。

所有线程共享同一地址空间,相互协作。

彼此之间通信很容易。

4、EJB概述

EJB是企业级的JavaBean,它提供了构建企业级业务逻辑的一种组件模型。

EJB分为三种:

SessionBean 

EntityBean 

Message-DrivenBean三种,其中SessionBean分为有状态和无状态SessionBean两种,EntityBean分为容器管理的EntityBean(CMP)和Bean管理的EntityBean(BMP)。

每一个EJB由一个远程接口、一个本地接口和一个EJB容器实现组成,远程接口声明了提供给EJB客户调用的各种应用方法,本地接口声明了创建新的EJB实例的create方法、寻找EJB实例的查找(finder)方法以及刪除EJB实例的remove方法。

EJB容器提供了EJB的运行环境和生命周期的管理。

4、用java访问Oracle数据库、取得记录并输出到界面

……………………..

Class.forName(“oracle.jdbc.driver.OracleDriver”);

Connectionconn=DriverManager.getConnection(url,username,password);

Statementstmt=conn.createStatement();

Stringstr=”select*from[table]”;

ResultSetrs=stmt.executeQuery(str);

While(rs.next())

{

……………………

}

rs.close();

stmt.close();

conn.close();

5、概述java垃圾回收机制

它的工作原理如下:

当不存在对一个对象的引用时,我们就假定不再需要那个对象,那个对象所占有的存储单元可以被收回,可通过System.gc()方法回收,但一般要把不再引用的对象标志为null为佳。

6

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

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1