Android面試總結2

1、單例模式是什麼?使用java語言實現:

(1)、單例模式使得每一個類有且只有一個實例對象,而且該實例對象對外界而言易於使用;當系統只允許類有一個實例時,使用單例模式;

(2)、java實現:

a、懶漢模式:

public class Singleton1 {
    private Singleton1 mSingleton;
    private Singleton1(){}
    
    public static Singleton1 getInstance(Singleton1 mSingleton){
        if(mSingleton==null){
            mSingleton=new Singleton1();
        }
        return mSingleton;
    }
}
b、餓漢模式:

public class Singleton1 {
  private Singleton1 mSingleton=new Singleton1();
  private Singleton1(){}
  
  public static Singleton1 getInstance(Singleton1 mSingleton){
      return mSingleton;
  }
}

2、Integer和int的區別:

(1)、int是在棧中創建基本類型變量;

(2)、Integer是int類型的封裝類,在堆中創建一個對象,可以直接保存在Arraylist等集合中,並且該類中有很多靜態方法;

(3)、int類型的變量不能直接保存在集合中,只能採用裝箱機制,包裝成Integer對象才能,保存在集合中;


3、java中,Thread的run和start方法的區別,並寫出能終止一個運行中的線程的有效方法:

(1)、run()方法只是Thread類中的一個普通方法,一個對象的run()方法可以多次被調用;

(2)、start()方法用於啓動線程,調用對象的run()方法,但是不能多次啓動一個線程;

(3)、start()方法不需要等到run()方法執行完以後纔去執行其後的方法,調用start方法時,線程會和main搶佔資源;

class myThread extends Thread {

    public void run(){
        
        for(int i=0;i<8;i++){
            
            System.out.println(Thread.currentThread().getName() 
                    + "運行,i = " + i) ;
        }
    }
}


public class TestThread {
    public static void main(String[] args) {
        myThread m=new myThread();
        //m.start();
        new Thread(m,"線程2").start() ; 
        m.run();
     m.interrupt();//終止方法
    }

}

運行結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章