FAQ(JAVA基础二)整理(3)

2019-05-27 18:01

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

StringBuffer是可变的而String是不可变的,而且String用得多个的话会占用不同的内存.

如:String str = \str = \

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

45.\和 \方法的区别?

答案:\:对于基本类型的数据,比较的是内容;而对于两个引用类型的变量则比较的是两个对象的地址;

\:不支持基本类型的比较,对于应用类型的变量默认情况下比较的也是地址,除非你自己手动的覆盖\方法,在\方法中指定自己的比较策略。

但是对于String类型变量则直接比较是两个字符串的内容,因为JDK中String类已经实现了\方法,(在字符串中)\比较的是两个对象的值.

46.集合

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:它不是基于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的对应存储。

47.Set总结

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

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

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

设计模式方面:

48.开发中都用到了那些设计模式?用在什么场合?

答案:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。

49.UML方面

答案:标准建模语言UML。 用例图, 静态图 ( 包括 类图、对象图 和 包图 ), 行为图, 交互图 。

50.概述struts,以及struts如何实现MVC架构的?

答案:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点。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中连接数据库,进行数据库相关的操作。

51.概述MVC体系结构

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

在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型

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

线程方面:

52.多线程的优点?

答案:可分两方面来答: 相对于单线程而言 : 可以响应多任务的并发操作。

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

相对于进程而言:(可以答也可以不答) 它所要求的开销比较小,转换成本较小。 所有线程共享同一地址空间,相互协作。 彼此之间通信很容易。

53.EJB概述

答案:EJB是企业级的JavaBean,它提供了构建企业级业务逻辑的一种组件模型。 EJB分为三种:Session Bean Entity Bean Message-Driven Bean 三种,其中Session Bean分为有状态和无状态Session Bean两种,Entity Bean分为容器管理的Entity Bean ( CMP ) 和 Bean管理的 Entity Bean ( BMP )。每一个EJB由一个远程接口、一个本地接口和一个EJB容器实现组成,远程接口声明了提供给EJB客户调用的各种应用方法,本地接口声明了创建新的EJB实例的create方法、寻找EJB实例的查找(finder)方法以及刪除EJB实例的remove方法。EJB容器提供了EJB的运行环境和生命周期的管理。

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

答案:

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

Connection conn=DriverManager.getConnection( url , username , password ); Statement stmt=conn.createStatement(); String str=”select * from [table]”; ResultSet rs=stmt.executeQuery(str); While(rs.next()) {

???????? }

rs.close(); stmt.close(); conn.close();

55.概述java垃圾回收机制

答案:它的工作原理如下:

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

56.java类是否可以多继承,怎么实现多继承?

答案:java没有多继承,但可以通过接口的形式来达到多继承的目地。

57.接口有什么优点

答案:接口有以下优点:

1 接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。

2 利用接口可达到实现多继承的目地。

3 可以在不暴露对象的类的前提下,暴露对象的编程接口。 4 不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。 5 声明想执行的一个或多个方法。

58.ArrayList 与 Vector 的区别

答案:主要从两个方面来说明: 安全、效率方面

如果要实现同步安全,则要用Vector,否则则用ArrayList,因为ArrayList不考虑同步安全的问题,所以效率要高些。

资源方面

当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。

59.MVC结构在Jtable中怎样实现的,这种结构有什么好处?

答案:在Jtable中不存储它的单元数据,它的所有实例把它们的单元值交给实现了TableModel接口的对象来维护和管理,所以在MVC结构中,Jtable的表格主要体现了一个V的作用,其表格将数据变化体现出来,而数据模型则体现了M的作用,封装数据和业务逻辑。

60.在控制台中输入一个字符串,然后按照逆序打印出来

答案:

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);


FAQ(JAVA基础二)整理(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: