JAVA/JSP经典面试题汇总

2014-07-30 20:02:00|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:Java, JSP|来源:唯设编程网

131 、 j2ee 常用的设计模式?说明工厂模式。  

答: Java 中的 23 种设计模式:

Factory (工厂模式),       Builder (建造模式),        Factory Method (工厂方法模式),

Prototype (原始模型模式), Singleton (单例模式),     Facade (门面模式),

Adapter (适配器模式),     Bridge (桥梁模式),         Composite (合成模式),

Decorator (装饰模式),     Flyweight (享元模式),      Proxy (代理模式),

Command (命令模式),       Interpreter (解释器模式),  Visitor (访问者模式),

Iterator (迭代子模式),    Mediator (调停者模式),     Memento (备忘录模式),

Observer (观察者模式),    State (状态模式),          Strategy (策略模式),

Template Method (模板方法模式),  Chain Of Responsibleity (责任链模式)

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

UML方面 

132 、 UML 方面

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

135 、写一个 Singleton 出来

Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。

一般 Singleton 模式通常有几种种形式 :

第一种形式 :  定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用 , 继而调用其中的方法。

public class Singleton {

       private Singleton(){}

       // 在自己内部定义自己一个实例,是不是很奇怪?

       // 注意这是 private  只供内部调用

       private static Singleton instance = new Singleton();

       // 这里提供了一个供外部访问本 class 的静态方法,可以直接访问  

       public static Singleton getInstance() {

         return instance;    

       }

    }

     第二种形式 :

public class Singleton {

   private static Singleton instance = null;

   public static synchronized Singleton getInstance() {

   // 这个方法比上面有所改进,不用每次都进行生成对象,只是第一次       

   // 使用时生成实例,提高了效率!

   if (instance==null)

     instance = new Singleton();

return instance;     }

}

其他形式 :

定义一个类,它的构造函数为 private 的,所有方法为 static 的。

一般认为第一种形式要更加安全些 

136 、继承时候类的执行顺序问题 , 一般都是选择题 , 问你将会打印出什么 ? 答 : 父类:

package test;

public class  FatherClass

{

    public FatherClass()

{

  System.out.println("FatherClass Create");

}

}

子类 :

package test;
import test.FatherClass;
public class  ChildClass extends FatherClass
{
  public ChildClass()
  {
    System.out.println("ChildClass Create");
  }

  public static void main(String[] args)
  {
    FatherClass fc = new FatherClass();
    ChildClass cc = new ChildClass();  
  }
}

输出结果:

C:>java test.ChildClass

FatherClass Create

FatherClass Create

ChildClass Create

发表评论0条 】
网友评论(共?条评论)..
JAVA/JSP经典面试题汇总