您的位置:首页 > 职场人生

java面试大总结(3)

2007-05-27 12:23 701 查看

[/b]
101[/b]、java[/b]中会存在内存泄漏吗,请简单描述。[/b]
会。如:int i,i2; return (i-i2); //when i[/b]为足够大的正数,i2[/b]为足够大的负数。结果会造成溢位,导致错误。[/b]
[/b]
102[/b]、java[/b]中实现多态的机制是什么?[/b]
方法的[/b]重写Overriding[/b]和[/b]重载Overloading[/b]是Java[/b]多态性的不同表现。重写Overriding[/b]是父类与子类之间多态性的一种表现,重载Overloading[/b]是一个类中多态性的一种表现。[/b]
[/b]
103[/b]、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?[/b]
对于GC[/b]来说,当程序员创建对象时,GC[/b]就开始监控这个对象的[/b]地址[/b]、[/b]大小[/b]以及[/b]使用[/b]情况。通常,GC[/b]采用有向图的方式[/b]记录和管理堆(heap)[/b]中的所有对象。通过这种方式确定哪些对象是"[/b]可达的"[/b],哪些对象是"[/b]不可达的"[/b]。[/b]当GC[/b]确定一些对象为"[/b]不可达"[/b]时,GC[/b]就有责任回收这些内存空间[/b]。可以。程序员可以手动执行System.gc()[/b],通知GC[/b]运行,[/b]但是Java[/b]语言规范并不保证GC[/b]一定会执行。[/b]
[/b]
104[/b]、静态变量和实例变量的区别?[/b]
static i = 10; //[/b]常量[/b]
class A a; a.i =10;//[/b]可变[/b]
[/b]
105[/b]、什么是java[/b]序列化,如何实现java[/b]序列化?[/b]
序列化就是一种用来处理对象流的机制[/b],所谓[/b]对象流也就是将对象的内容进行流化[/b]。可以对流化后的对象进行[/b]读写[/b]操作,也可将流化后的对象传输于[/b]网络[/b]之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable[/b]接口,该接口没有需要实现的方法,implements Serializable[/b]只是为了标注该对象是可被序列化的,然后使用一个输出流([/b]如:FileOutputStream)[/b]来构造一个ObjectOutputStream([/b]对象流)[/b]对象,接着,使用ObjectOutputStream[/b]对象的writeObject(Object obj)[/b]方法就可以将参数为obj[/b]的对象写出([/b]即保存其状态)[/b],要恢复的话则用输入流。[/b]
[/b]
106[/b]、是否可以从一个static[/b]方法内部发出对非static[/b]方法的调用?[/b]
不可以,[/b]如果其中包含对象的method()[/b];不能保证对象初始化.[/b]
107[/b]、写clone()[/b]方法时,通常都有一行代码,是什么?[/b]
Clone [/b]有缺省行为,super.clone();[/b]他负责产生正确大小的空间,并逐位复制。[/b]
[/b]
108[/b]、在JAVA[/b]中,如何跳出当前的多重嵌套循环?[/b]
用break; return [/b]方法。[/b]
[/b]
109[/b]、List[/b]、Map[/b]、Set[/b]三个接口,存取元素时,各有什么特点?[/b]
List [/b]以[/b]特定次序[/b]来持有元素,可有重复元素。Set [/b]无法拥有重复元素,[/b]内部排序。Map [/b]保存key-value[/b]值,value[/b]可多值[/b]。[/b]
[/b]
110[/b]、J2EE[/b]是什么?[/b]
J2EE[/b]是Sun[/b]公司提出的[/b]多层(multi-diered),[/b]分布式(distributed),[/b]基于组件(component-base)[/b]的企业级应用模型(enterpriese application model).[/b]在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)[/b]中。所属层次包括客户层(clietn tier)[/b]组件,web[/b]层和组件,Business[/b]层和组件,[/b]企业信息系统(EIS)[/b]层。[/b]
[/b]
111[/b]、UML[/b]方面 [/b]
标准建模语言UML[/b]。用例图,[/b]静态图([/b]包括类图、对象图和包图),[/b]行为图,[/b]交互图([/b]顺序图,[/b]合作图),[/b]实现图。[/b]
[/b]
112[/b]、说出一些常用的类,包,接口,请各举5[/b]个[/b]
常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer[/b]
常用的包:java.lang java.awt java.io java.util java.sql[/b]
常用的接口:Remote List Map Document NodeList[/b]
[/b]
113[/b]、开发中都用到了那些设计模式?[/b]用在什么场合? [/b]
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC[/b]的设计模式。用来开发JSP/Servlet[/b]或者J2EE[/b]的相关应用。简单工厂模式等。[/b]
[/b]
114[/b]、jsp[/b]有哪些动作?[/b]作用分别是什么? [/b]
JSP[/b]共有以下6[/b]种基本动作 [/b]
jsp:include[/b]:在页面被请求的时候引入一个文件。[/b]
jsp:useBean[/b]:寻找或者实例化一个JavaBean[/b]。 [/b]
jsp:setProperty[/b]:设置JavaBean[/b]的属性。 [/b]
jsp:getProperty[/b]:输出某个JavaBean[/b]的属性。[/b]
jsp:forward[/b]:把请求转到一个新的页面。 [/b]
jsp:plugin[/b]:根据浏览器类型为Java[/b]插件生成OBJECT[/b]或EMBED[/b]标记。[/b]
[/b]
115[/b]、Anonymous Inner Class ([/b]匿名内部类) [/b]是否可以extends([/b]继承)[/b]其它类,是否可以implements([/b]实现)interface([/b]接口)? [/b]
可以继承其他类或完成其他接口,在swing[/b]编程中常用此方式。[/b]
[/b]
116[/b]、应用服务器与WEB SERVER[/b]的区别?[/b]
1[/b]。[/b]应用服务器处理业务逻辑[/b],[/b]web[/b]服务器则主要是让客户[/b]可以通过浏览器进行访问[/b]。[/b][/b]
2[/b]。应用服务器处理业务逻辑,[/b]web[/b]服务器是[/b]用于处理[/b]HTML[/b]文件的[/b]。[/b][/b]
web[/b]服务器通常比应用服务器简单[/b],如[/b]apache[/b]就是[/b]web[/b]服务器,[/b]Jboss [/b]就是[/b]EJB[/b]应用服务器。[/b]应用服务器:Weblogic[/b]、Tomcat[/b]、Jboss[/b];WEB SERVER[/b]:IIS[/b]、 Apache[/b]
[/b]
117[/b]、BS[/b]与CS[/b]的联系与区别。[/b]
C/S[/b]是Client/Server[/b]的缩写。服务器通常采用高性能的PC[/b]、工作站或小型机,并采用大型数据库系统,如Oracle[/b]、Sybase[/b]、Informix[/b]或 SQL Server[/b]。客户端需要安装专用的客户端软件。B/[/b]S是Brower/Server[/b]的缩写,客户机上只要安装一个浏览器(Browser[/b]),如Netscape Navigator[/b]或Internet Explorer[/b],服务器安装Oracle[/b]、Sybase[/b]、Informix[/b]或 SQL Server[/b]等数据库。在这种结构下,用户界面完全通过WWW[/b]浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server [/b]同数据库进行数据交互。[/b]
C/S [/b]与 B/S [/b]区别: [/b]
1.硬件环境不同: [/b]
  C/S [/b]一般建立在专用的网络上, [/b]小范围里的网络环境, [/b]局域网之间再通过专门服务器提供连接和数据交换服务.[/b]
  B/S [/b]建立在广域网之上的, [/b]不必是专门的网络硬件环境,[/b]例与电话上网, [/b]租用设备. [/b]信息自己管理. [/b]有比C/S[/b]更强的适应范围, [/b]一般只要有[/b]
[/b]
操作系统和浏览器就行 [/b]
2.对安全要求不同 [/b]
  C/S [/b]一般面向相对固定的用户群, [/b]对信息安全的控制能力很强. [/b]一般高度机密的信息系统采用C/S [/b]结构适宜. [/b]可以通过B/S[/b]发布部分可公开[/b]
[/b]
信息.[/b]
  B/S [/b]建立在广域网之上, [/b]对安全的控制能力相对弱, [/b]可能面向不可知的用户。[/b]
3.对程序架构不同 [/b]
  C/S [/b]程序可以更加注重流程, [/b]可以对权限多层次校验, [/b]对系统运行速度可以较少考虑.[/b]
  B/S [/b]对安全以及访问速度的多重的考虑, [/b]建立在需要更加优化的基础之上. [/b]比C/S[/b]有更高的要求 B/S[/b]结构的程序架构是发展的趋势, [/b]从MS[/b]的[/b]
[/b]
.Net[/b]系列的BizTalk 2000 Exchange 2000[/b]等, [/b]全面支持网络的构件搭建的系统. SUN [/b]和IBM[/b]推的JavaBean [/b]构件技术等,[/b]使 B/S[/b]更加成熟. [/b]
4.软件重用不同 [/b]
  C/S [/b]程序可以不可避免的整体性考虑, [/b]构件的重用性不如在B/S[/b]要求下的构件的重用性好.[/b]
  B/S [/b]对的多重结构,[/b]要求构件相对独立的功能. [/b]能够相对较好的重用.[/b]就入买来的餐桌可以再利用,[/b]而不是做在墙上的石头桌子 [/b]
5.系统维护不同 [/b]
  C/S [/b]程序由于整体性, [/b]必须整体考察, [/b]处理出现的问题以及系统升级. [/b]升级难. [/b]可能是再做一个全新的系统[/b]
  B/S [/b]构件组成,[/b]方面构件个别的更换,[/b]实现系统的无缝升级. [/b]系统维护开销减到最小.[/b]用户从网上自己下载安装就可以实现升级. [/b]
6.处理问题不同 [/b]
  C/S [/b]程序可以处理用户面固定, [/b]并且在相同区域, [/b]安全要求高需求, [/b]与操作系统相关. [/b]应该都是相同的系统[/b]
  B/S [/b]建立在广域网上, [/b]面向不同的用户群, [/b]分散地域, [/b]这是C/S[/b]无法作到的. [/b]与操作系统平台关系最小. [/b]
7.用户接口不同 [/b]
  C/S [/b]多是建立的Window[/b]平台上,[/b]表现方法有限,[/b]对程序员普遍要求较高[/b]
  B/S [/b]建立在浏览器上, [/b]有更加丰富和生动的表现方式与用户交流. [/b]并且大部分难度减低,[/b]减低开发成本. [/b]
8.信息流不同 [/b]
  C/S [/b]程序一般是典型的中央集权的机械式处理, [/b]交互性相对低[/b]
  B/S [/b]信息流向可变化, B-B B-C B-G[/b]等信息、流向的变化, [/b]更像交易中心。[/b]
[/b]
118[/b]、LINUX[/b]下线程,GDI[/b]类的解释。[/b]
LINUX[/b]实现的就是基于核心轻量级进程的"[/b]一对一"[/b]线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 GDI[/b]类为图像设备编程接口类库。[/b]
[/b]
119[/b]、STRUTS[/b]的应用([/b]如STRUTS[/b]架构) [/b]
Struts[/b]是采用Java Servlet/JavaServer Pages[/b]技术,开发Web[/b]应用程序的开放源码的framework[/b]。 [/b]采用Struts[/b]能开发出基于MVC(Model-View-Controller)[/b]设计模式的应用构架。 Struts[/b]有如下的主要功能: [/b]一.[/b]包含一个controller servlet[/b],能将用户的请求发送到相应的Action[/b]对象。 [/b]二.JSP[/b]自由tag[/b]库,并且在controller servlet[/b]中提供关联支持,帮助开发员创建交互式表单应用。 [/b]三.[/b]提供了一系列实用对象:XML[/b]处理、通过Java reflection APIs[/b]自动处理JavaBeans[/b]属性、国际化的提示和消息。[/b]
[/b]
120[/b]、Jdo[/b]是什么? [/b]
JDO[/b]是Java[/b]对象持久化的新的规范,为java data object[/b]的简称,[/b]也是一个用于存取某种数据仓库中的对象的标准化API[/b]。JDO[/b]提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API[/b]的使用)。这些繁琐的例行工作已经转移到JDO[/b]产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO[/b]很灵活,因为它可以在任何数据底层上运行。JDBC[/b]只是面向关系数据库(RDBMS[/b])JDO[/b]更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML[/b]以及对象数据库(ODBMS[/b])等等,使得应用可移植性更强[/b]
[/b]
121[/b]、内部类可以引用他包含类的成员吗?有没有什么限制?[/b]
一个内部类对象可以访问创建它的外部类对象的内容[/b]
[/b]
122[/b]、WEB SERVICE[/b]名词解释。JSWDL[/b]开发包的介绍。JAXP[/b]、JAXM[/b]的解释。SOAP[/b]、UDDI,WSDL[/b]解释。 [/b]
Web Service[/b]是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service[/b]能与其他兼容的组件进行互操作。JAXP(Java API for XML Parsing) [/b]定义了在Java[/b]中使用DOM, SAX, XSLT[/b]的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。JAXM(Java API for XML Messaging) [/b]是为SOAP[/b]通信提供访问方法和传输机制的API[/b]。WSDL[/b]是一种 XML [/b]格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。SOAP[/b]即简单对象访问协议(Simple Object Access Protocol)[/b],它是用于交换XML[/b]编码信息的轻量级协议。 UDDI [/b]的目的是为电子商务建立标准;UDDI[/b]是一套基于Web[/b]的、分布式的、为Web Service[/b]提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service[/b]注册,以使别的企业能够发现的访问协议的实现标准。[/b]
[/b]
3[/b]、int Integer [/b]的区别:[/b]
Java 提供两种不同的类型:引用类型和原始类型[/b](或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

原始类型封装类

booleanBoolean

charCharacter

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为[/b] null[/b],而原始类型实例变量的缺省值与它们的类型有关。[/b][/b]

String[/b]类和StringBuffer[/b]类的区别:[/b]

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

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

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

如:String str = "bb";

str = "aa";

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

而StringBuffer就不会这样.

:"=="[/b]比较的是两个对象的地址,[/b](在字符串中)"equals()"[/b]比较的是两个对象的值.[/b]

集合

Collection 层次结构 中的根接口

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

Java集合的缺点:类型未知

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

Collection<--list><--vector>

Collection<--list><--arraylist>

Collection<--list><--linkedlist>

Collection<--set><--hashset>

Collection<--set><--hashset><--linkedhashset>

Collection<--set><--sortedset><--treeset>

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

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

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

LinkedList[/b]:它不是基于Array[/b]的,所以不受Array[/b]性能的限制。它每一个节点(Node[/b])都包含两方面的内容:1.[/b]节点本身的数据(data[/b]);2.[/b]下一个节点的信息(nextNode[/b])。所以当对LinkedList[/b]做添加,删除动作的时候就不用像基于Array[/b]的List[/b]一样,必须进行大量的数据移动。只要更改nextNode[/b]的相关信息就可以实现了。这就是LinkedList[/b]的优势[/b]

HashSet:虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储

Set总结:

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

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

性能时Map所要面对的一个大问题。如果你知道get()时怎么工作的,你就会发觉(比方说)在[/b]ArrayList[/b]里面找对象会是相当慢的[/b]。而这正是 HashMap的强项。它不是慢慢地一个个地找这个键,而是用了一种被称为hash code的特殊值来进行查找的。散列(hash)时一种算法,它会从目标对象当中提取一些信息,然后生成一个表示这个对象的“相对独特”的int。 hashCode()是Object根类的方法,因此所有Java对象都能生成hash code。HashMap则利用对象的hashCode()来进行快速的查找。这样性能就有了急剧的提高。

设计模式方面

1[/b]、开发中都用到了那些设计模式?[/b]用在什么场合? [/b]
答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。主要用到了[/b]MVC[/b]的设计模式。用来开发JSP/Servlet[/b]或者J2EE[/b]的相关应用。简单工厂模式[/b]等。
2[/b]、UML[/b]方面 [/b]
答: 标准建模语言UML。 用例图, 静态图 ( 包括 类图、对象图 和 包图 ), 行为图, 交互图
( 顺序图, 合作图 ), 实现图,
*******************************************************************************
1[/b]、 [/b]概述struts[/b],以及struts[/b]如何实现MVC[/b]架构的?[/b]
答:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点[/b]。Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。Struts[/b]采用jsp[/b]作为MVC[/b]的视图, [/b]由ActionServlet[/b]具体指定的action[/b]动作类作为控制器即MVC[/b]中的C[/b],[/b]负责视图与模型之间的交互。控制器的每个入口点都由名为[/b]struts-config.xml[/b]的配置文件设置[/b]。该文件把来自视图的请求映射为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是[/b]javabean[/b],它是模型的代表,主要封装数据和业务逻辑。[/b]
Struts的处理流程:
1 [/b]控制器进行初始化工作[/b],读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。
2 [/b]控制器接收Http[/b]请求,[/b]并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。
3 [/b]在控制器调用具体的Action[/b]的Execute[/b]方法之前,[/b]ActionForm对象将利用Http请求中的参数来填充自已。还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。
4 [/b]执行具体的的Execute[/b]的方法,[/b]它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。
*******************************************************************************
2[/b]、 [/b]概述MVC[/b]体系结构[/b]
答:MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。
在MVC体系中,模型通常被称为“业务逻辑”[/b],是真正完成任务的代码[/b],视图就是使用界面,反映数据的变化[/b]。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型
在MVC[/b]中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。[/b]

3[/b]、[/b] [/b]多线程的优点[/b][/b]
答:可分两方面来答:
? [/b]相对于单线程而言 [/b]:[/b]
可以响应多任务的并发操作[/b]。
多线程取消了主循环和轮流检测[/b]机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。
? [/b]相对于进程而言:([/b]可以答也可以不答)[/b]
它所要求的开销比较小,转换成本较小。
所有线程共享同一地址空间,相互协作。
彼此之间通信很容易。
4[/b]、[/b] EJB[/b]概述[/b]
[/b]答:[/b]EJB[/b]是企业级的[/b]JavaBean[/b],它提供了构建企业级业务逻辑的一种组件模型。[/b]
EJB[/b]分为三种:[/b]Session Bean Entity Bean Message-Driven Bean [/b]三种,其中[/b]Session Bean[/b]分为有状态和无状态[/b]Session Bean[/b]两种[/b],Entity Bean[/b]分为容器管理的[/b]Entity Bean ( CMP ) [/b]和[/b] Bean[/b]管理的[/b] Entity Bean ( BMP )[/b]。每一个[/b]EJB[/b]由一个远程接口、一个本地接口和一个[/b]EJB[/b]容器实现组成,远程接口声明了提供给[/b]EJB[/b]客户调用的各种应用方法,本地接口声明了创建新的[/b]EJB[/b]实例的[/b]create[/b]方法、寻找[/b]EJB[/b]实例的查找[/b](finder)[/b]方法以及刪除[/b]EJB[/b]实例的[/b]remove[/b]方法。[/b]EJB[/b]容器提供了[/b]EJB[/b]的运行环境和生命周期的管理。[/b]
4[/b]、 [/b]用java[/b]访问Oracle[/b]数据库、取得记录并输出到界面[/b]
答:……………………..
Class.forName(“oracle.jdbc.driver.OracleDriver”);
Connection conn=DriverManager.getConnection( url , username , password );
Statement stmt=conn.createStatement();
String str=”select * from ”;
ResultSet rs=stmt.executeQuery(str);
While(rs.next())
{
……………………
}
rs.close();
stmt.close();
conn.close();

5[/b]、 [/b]概述java[/b]垃圾回收机制[/b]
答:它的工作原理如下:
当不存在对一个对象的引用时,我们就假定不再需要那个对象,那个对象所占有的存储单元可以被收回,可通过System.gc()方法回收,但一般要把不再引用的对象标志为null为佳。

6[/b]、 java[/b]类是否可以多继承,怎么实现多继承?[/b]
答:java没有多继承,但可以通过接口的形式来达到多继承的目地。

7[/b]、 [/b]面向对象的特点[/b]
答:面向对象有三大特点:封装、继承、多态[/b]。(如果要回答四个,可加上 抽象性 这一特点)

9[/b]、接口有什么优点[/b]
答:接口有以下优点:
1 接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。
2 利用接口可达到实现多继承的目地。
3 可以在不暴露对象的类的前提下,暴露对象的编程接口。
4 不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。
5 声明想执行的一个或多个方法。

10[/b]、 ArrayList [/b]与 Vector [/b]的区别[/b]
答:主要从两个方面来说明:
? 安全、效率方面
如果要实现同步安全,则要用Vector[/b],否则则用ArrayList[/b],因为ArrayList[/b]不考虑同步安全的问题,所以效率要高些。[/b]
? 资源方面
当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。

11[/b]、MVC[/b]结构在Jtable[/b]中怎样实现的,这种结构有什么好处?[/b]
答、在Jtable中不存储它的单元数据,它的所有实例把它们的单元值交给实现了TableModel接口的对象来维护和管理,所以在MVC结构中,Jtable[/b]的表格主要体现了一个V[/b]的作用,其表格将数据变化体现出来,而数据模型则体现了M[/b]的作用,封装数据和业务逻辑。[/b]
注:详细解说见第二题
12[/b]、在控制台中输入一个字符串,然后按照逆序打印出来[/b]
答:import java.io.*;

public class test{
public static void main(String args[]){
String A=””;
String B=””;
String C=””;
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
If ((B=br.readLine())!=null){
A=A+B;
}

for(int I=A.length()-1;I>=0;I--){
C=C+A.substring(I,I+1);
}
System.out.println(C);
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}

13[/b]、java[/b]是否存在内存泄露[/b]
答:存在,当一个对象引用另一对象后,当另一对象为空时,会出现内存泄露。[/b]

14[/b]、String[/b]类的值是否可以改变[/b]
答:String类的值在初始后不能改变,如果要改变,可转换为StringBuffer类,这个类的值是可以动态改变的。(这里主要考String 和 StringBuffer 的区别)
17[/b]、java [/b]有几种修饰符?默认的是什么?[/b]
答:(注:修饰符是影响类、变量及成员方法的生存空间和可访问性的关键字[/b])
修饰符 类 成员方法 成员变量 局部变量
abstract √ √ - -
static - √ √ -
public √ √ √ -
protected - √ √ -
private - √ √ -
private protected - √ √ -
synchronized - √ - -
native - √ - -
volatile - - √ -
final √ √ √ -
transient - - √ √

以下是访问控制修饰符: [/b]默认为friendly [/b]
修饰符 同类 同包 子孙类 不同包
public √ √ √ √
protected √ √ √ -
friendly √ √ - -
private √ - - -

18[/b]、toString[/b]方法的概述 [/b]
答:因为每个类都继承了Object类,所以都实现了toString()方法。
通过toString()方法可以决定所创建对象的字符串表达形式。

19[/b]、Object[/b]类的概述[/b]
答:Object[/b]类是所有其他的类的超类,Object[/b]的一个变量可以引用任何其他类的对象[/b]。因为数组是作为类实现的,所以Object的一个变量也可以引用任何数组,它包括以下几种方法:
clone() equals() finalize() getClass() hashCode() notify() notifyAll() toString() wait()

20[/b]、java[/b]特点[/b]
答:java具有以下几个主要特点:
? [/b]简单性[/b]
? 面向对象:JAVA是完全面向对象的,它支持静态和动态风格的代码继承及重用
? [/b]分布式[/b]:包括数据分布和操作分布
? [/b]健壮性[/b]:java系统仔细检测对内存的每次访问,确认它是否合法,而且在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。
? [/b]结构中立[/b]
? [/b]安全性[/b]:java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
? 与平台无关[/b]:java写的应用程序不用修改就可在不同的软硬平台上运行。平台无关性有两种:源代码级和目标代码级。 Java主要靠JAVA虚拟机在目标代码级上实现平台无关性
? [/b]解释执性[/b]:运行JAVA程序时,它首先被编译成字节代码,字节代码非常类似机器码,执行效率非常高。
? 高性能
? 多性程[/b]
? 动态性:它允许程序动态的装入运行时需要的类。

21[/b]、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念?[/b]
答:具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。
抽象类和接口的区别如下:
① [/b]在类继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。[/b]
②在接口中无成员变量,而抽象类中可有成员变量。[/b]
在Java[/b]中引进接口主要是为了解决多继承的问题。[/b]

22[/b]、doGet[/b]与doPut[/b]的区别?[/b]
答: doPut[/b]会把地址作为一个文件写到服务器,而doGet[/b]不会,而只显示在地址栏。[/b]

23[/b]、多线程实现有那几种方法,同步有哪几种方法?[/b]
答:实现同步主要有两种方法:1.synchronized 2.wait notify
实现多线程主要继承Thread [/b]类和实现Runnable[/b]接口。[/b]

24[/b]、JSP[/b]页面的跳转?[/b]
答:jsp页面实现跳转主要有jsp:forward 和 sendRedirect 两种方法
jsp:forward[/b]:[/b]在本容器内跳转 [/b]。 [/b]跳转后,地址栏地址不变 [/b]。效率高。跳转后立即结束本页的内容。[/b]
sendRedirect[/b]:在容器之间的跳转[/b],跳转后地址栏地址为跳转后的地址,效率较低。
通常采用jsp:forward[/b]方式跳转。[/b]
25[/b]、类变量的初始化[/b]
答:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。

26[/b]、数组的定义[/b]
答:数组是作为一种对象实现的。[/b]数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致
创建数组步聚如下:[/b]
? [/b]声明[/b]
? [/b]构造[/b]
? [/b]初始化[/b]

27[/b]、Hastable [/b]与HashMap[/b]的区别?[/b]
答:Hashtable和Hashmap的主要区别如下:? Hashtable是同步的,而HashMap不是同步的。所以不要求同步的时候,用HashMap的效率较高? Hashtable版本较HashMap版本低。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: