Java基础问题集(6)

来源:互联网 发布:淘宝二楼 怎么进去 编辑:程序博客网 时间:2024/06/05 21:50

======================================================
注:本文源代码点此下载
======================================================

100、java中有几种类型的流?jdk为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节流,字符流。字节流继承于inputstream \ outputstream,字符流继承于inputstreamreader \ outputstreamwriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

101、java中会存在内存泄漏吗,请简单描述

会。如:int i,i2;return (i-i2);//when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。

102、java中实现多态的机制是什么?

方法的重写overriding和重载overloading是java多态性的不同表现。重写overriding是父类与子类之间多态性的一种表现,重载overloading是一个类中多态性的一种表现。

103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

对于gc来说,当程序员创建对象时,gc就开始监控这个对象的地址、大小以及使用情况。通常,gc采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当gc确定一些对象为"不可达"时,gc就有责任回收这些内存空间。可以。程序员可以手动执行system.gc(),通知gc运行,但是java语言规范并不保证gc一定会执行。

104、静态变量和实例变量的区别?

static i = 10; //常量

class a a;a.i =10;//可变

105、什么是java序列化,如何实现java序列化?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现serializable接口,该接口没有需要实现的方法,implements serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:fileoutputstream)来构造一个objectoutputstream(对象流)对象,接着,使用objectoutputstream对象的writeobject(object obj)方法就可以将参数为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)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,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:在页面被请求的时候引入一个文件。 jsp:usebean:寻找或者实例化一个javabean。 jsp:setproperty:设置javabean的属性。 jsp:getproperty:输出某个javabean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为java插件生成object或embed标记。

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

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

116、应用服务器与web server的区别

应用服务器:weblogic、tomcat、jboss

web server:iis、apache

117、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等信息、流向的变化,更像交易中心。

118、linux下线程,gdi类的解释

linux实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。gdi类为图像设备编程接口类库。

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

struts是采用java servlet/javaserver pages技术,开发web应用程序的开放源码的framework。 采用struts能开发出基于mvc(model-view-controller)设计模式的应用构架。 struts有如下的主要功能: 一.包含一个controller servlet,能将用户的请求发送到相应的action对象。 二.jsp自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:xml处理、通过java reflection apis自动处理javabeans属性、国际化的提示和消息。

120、jdo是什么?

jdo是java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化api。jdo提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如jdbc api的使用)。这些繁琐的例行工作已经转移到jdo产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,jdo很灵活,因为它可以在任何数据底层上运行。jdbc只是面向关系数据库(rdbms)jdo更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、xml以及对象数据库(odbms)等等,使得应用可移植性更强。

121、内部类可以引用他包含类的成员吗?有没有什么限制?

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

122、web service名词解释,jswdl开发包的介绍,jaxp、jaxm的解释,soap、uddi、wsdl解释

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

jaxp(java api for xml parsing) 定义了在java中使用dom, sax, xslt的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。

jaxm(java api for xml messaging) 是为soap通信提供访问方法和传输机制的api。

wsdl是一种xml 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。

soap即简单对象访问协议(simple object access protocol),它是用于交换xml编码信息的轻量级协议。

uddi 的目的是为电子商务建立标准;uddi是一套基于web的、分布式的、为web service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的web service注册,以使别的企业能够发现的访问协议的实现标准。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击