1.请写一个Singleton的例子,有效代码不得超出10行.
2.以代码方式列出你所知道的连接字符串的各种方法.

解决方案 »

  1.   

    学过几天Java的都知道
    这水平就能拿高薪了?
      

  2.   

    1.
    class Singleton {
     final static boolean created = true; public Singleton() {
        created = false;
     }
     
     public static Singleton create() {
           if (created) {
                 return new Singleton();             
           }
           return null;
      }
    }
    2. String a, b;
    a += b;
    a =  a + b;
    a = new String(a + b);
    a = new StringBuffer(a).append(b);
    ...
      

  3.   

    楼上的是singleton吗?
    的确是singleton,只不过这个singleton是指只能第一个人获得,其他人都只能获得null
    class Singleton{
       private Singleton  s = new Singleton();
       private Singleton(){}
       public Singleton getInstance(){return s;}
    }
      

  4.   

    final static boolean created = true; //final?
    public Singleton() {
    created = false;                     //final?
    }
      

  5.   

    是啊。。都已经final了还能在改么?还有只能返回一个。。所以楼上的说的对啊。
      

  6.   

    class Singleton{
      private static s;
      private Singleton(){}
      public static Singleton getInstance(){
        if(s == null){
          s = new Sigleton();
        }
        return s;
      }  public final static void main(String[] args){
        Sigleton st = Sigleton.getInstance();
        //todo use the st
      }
    }
      

  7.   

    >>2.以代码方式列出你所知道的连接字符串的各种方法.
    “知道”一词太过无理。
      

  8.   

    class Singleton{
       private static final private Singleton  s = new Singleton();
       private Singleton(){}
       public Singleton getInstance(){return s;}
    }
    我觉得这才是单态;
    private static final private Singleton  s = new Singleton();
    这行必须加上static final ,不然如果一个对象继承了Singleton类,对s变量做了修改,再把s上溯为Singleton类的话,就会产生两个Singleton类的实例
       
      

  9.   

    class Singleton{
       private Singleton  s = new Singleton();
       private Singleton(){}
       public Singleton getInstance(){return s;}
    }
    也不对,private Singleton(){}都私有了,如何调用getInstance(),你都不能创建对象了.正确的应该都加上statice.
    private static final Singleton  s = new Singleton();
    public static Singleton getInstance(){return s;}
      

  10.   

    class Singleton{
       private Singleton  s = new Singleton();
       private Singleton(){}
       public static Singleton getInstance(){return s;}
    }
    对不起,这样才对
    构造方法必须私有
      

  11.   


    第一种形式:
    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;   } }  我是新人
     
      

  12.   

    M1:
    Singleton class {
        private static Singleton instance = new Singleton();
        public static Singleton getInstance() {
            return instance;
        }
    }
    M2:
    Singleton class {
        private static Singleton instance;
        public static Singleton getInstance() {
            return (instance == null) ? instance = new Singleton() : instance;
        }
    }a += b
    a = a.concat(b);
      

  13.   

    第一种形式:
    public class Singleton {
      private Singleton(){}
      private static Singleton instance = new Singleton(); 
      public static Singleton getInstance() {
        return instance;   
       } 

    其中:
    private static Singleton instance = new Singleton();
    每个对像都有个对像监视器,而静态成员变量之所以能达到同步,是因为它的监视器是它本身的class类所提供的.
    public class Singleton {
      private Singleton(){}
    私有构造函数是必要的,这是为了不能在单件模式中设计构造方法构造singleton第二种形式:public class Singleton { 
      private static Singleton instance = null;
      public static synchronized Singleton getInstance() {  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 ?
    这句话是错误的,因为这方法比上面没任何改进,而且还有所降低,虽然上面的是懒汉型的,但是它的对像监视器是class,而不是this对像,所以要比这个用  synchronized 达到同步的要好,而我们为什么要采用synchronized ,或是lock(this),lock(obj)是因为我们还要在if()语句块中写其它代码,比如multiton,比如初始化点东西等等.  
      //使用时生成实例,提高了效率!
      if (instance==null)
        instance=new Singleton();
      return instance;   } } 
    第三种形式:
    class Singleton{
      private static Singleton s;
      private Singleton(){}
      public static Singleton getInstance(){
     lock(this){//这里可以lock(obj),lock(this)采用this对像的监视器,跟synchronized所用的是同一个监视器this,所以他们都可以构建临界区.
        if(s == null){
          s = new Sigleton();
        }
    }
        return s;
      }如果大家对23 种基本模式及23以外的比如模式扩展等有问题或想交流的,可以加我QQ:85177960
      

  14.   

    连接字符串,可以通过多种方法,java只对String类对"+"进行了重载,而且java不比c++,java不支持运算符重载.
    我们可以采用+号对连接字符串,可以通过stringbuffer速度比stringbuilder稍慢,但它支持多线程;stringbuilder速度快,但不支持多线程.
      

  15.   

    glacierking(一城) ( ) 
    厉害
      

  16.   

    glacierking(一城) 说的很对。连方法的性能都说的很好。肯定是老技术员了