32道常见的Java基础面试题 (3)

interface IFactory{ 
  public IProduct createProduct();
}

Class Factory implements IFactory{ 
  public IProduct createProduct()
    { 
      return new Product();
    }


Public class client{ 
  Public Static void main (String [] args){
    IFactory factory=new Factory(); 
    IProduct product=factory.createProduct(); 
    product.ProductMethod();
  }
}

 16. String和StringBuilder、StringBuffer的区别?

Java 平台提供了两种类型的字符串:String 和 StringBuffer/StringBuilder,它们可以储存和操作字符串。

其中 String 是只读字符串,也就意味着  String 引用的字符串内容是不能被改变的。

而 StringBuffer/StringBuilder 类表示的字符串对象可以直接进行修改。StringBuilder 是 Java 5 中引入的,它和 StringBuffer 的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被 synchronized 修饰,因此它的效率也比 StringBuffer 要高。

17. Java 集合框架有哪些?说出一些集合框架的优点?

每种编程语言中都有集合,最初的 Java 版本包含几种集合类:Vector、Stack、HashTable 和 Array。随着集合的广泛使用,Java1.2 提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java 已经经历了很久。它还包括在 Java 并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下: 
(1)使用核心集合类降低开发成本,而非实现我们自己的集合类。 
(2)随着使用经过严格测试的集合框架类,代码质量会得到提高。 
(3)通过使用 JDK 附带的集合类,可以降低代码维护成本。 
(4)复用性和可操作性。

18. 集合框架中的泛型有什么优点?

Java1.5 引入了泛型,所有的集合接口和实现都大量地使用它。泛型允许我们为集合提供一个可以容纳的对象类型。因此,如果你添加其它类型的任何元素,它会在编译时报错。这避免了在运行时出现 ClassCastException,因为你将会在编译时得到报错信息。泛型也使得代码整洁,我们不需要使用显式转换和 instanceOf 操作符。它也给运行时带来好处,因为不会产生类型检查的字节码指令。

19. Java 集合框架的基础接口有哪些?

Collection 为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java 平台不提供这个接口任何直接的实现。

Set 是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。 

List 是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List 更像长度动态变换的数组。 

Map 是一个将 key 映射到 value 的对象。一个 Map 不能包含重复的 key,每个 key 最多只能映射一个 value。 

一些其它的接口有 Queue、Dequeue、SortedSet、SortedMap 和 ListIterator。

20. 为何 Collection 不从 Cloneable 和 Serializable 接口继承? 

Collection 接口指定一组对象,对象即为它的元素。如何维护这些元素由 Collection 的具体实现决定。例如,一些如 List 的 Collection 实现允许重复的元素,而其它的如 Set 就不允许。很多 Collection 实现有一个公有的 clone 方法。然而,把它放到集合的所有实现中也是没有意义的。这是因为 Collection 是一个抽象表现,重要的是实现。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyjss.html