public class threadtester
catch (interruptedexception e)
t2.start(); }}
class c
catch (interruptedexception e)
system.out.println("hello"); }
public synchronized void world() }
class t1 extends thread
@override
public void run() }
class t2 extends thread
@override
public void run()
}
問題:程式執行後,是先輸出world,還是hello輸出後再輸出world?
結果: hello world
關於synchronized關鍵字的作用
1 在某個物件的所有synchronized方法中,在某一時刻,只能有乙個唯一的乙個執行緒去訪問這些synchronized方法;
2 如果乙個方法是synchronized方法,那麼該synchronized關鍵字表示給當前物件上鎖(this)
3 如果乙個synchronized方法是靜態的(static的),那麼該synchronized關鍵字表示給當前物件所對應的class物件上鎖。(每個類,不管生成多少物件,其對應的class物件只有乙個)
public class threadtester
catch (interruptedexception e)
t2.start(); }}
class c
catch (interruptedexception e)
}system.out.println("hello"); }
public void world() }
}class t1 extends thread
@override
public void run() }
class t2 extends thread
@override
public void run()
}public class threadtester
catch (interruptedexception e)
t2.start(); }}
class c
catch (interruptedexception e)
system.out.println("hello"); }
public synchronized void world() }
class t1 extends thread
@override
public void run() }
class t2 extends thread
@override
public void run()
}
問題:程式執行後,是先輸出world,還是hello輸出後再輸出world?
結果 world hello
Java面試題目之備忘八
請問arraylist,linkedlist以及vector的區別?1 arraylist底層實際是採用陣列實現的 並且該陣列的型別是object型別的 2 如果是jdk6的話,採用array.of 方法來生成乙個新的陣列,如果是jdk5.0,使用的是system.arraycopy 方法 3 li...
Java面試題目之備忘十四
1 關於httpservlt中的service,doget,dopost方法的關係 首先客戶端提交乙個請求,該請求一定是首先到達了service方法,然後service方法根據請求中的引數內容是get,還是post 或者其他方式來決定到底是呼叫doget,還是dopost,還是其他的do方法。2 請...
Java面試題目之備忘十五
關於servlet 的生命週期 1 初始化階段 init方法被呼叫 客戶端第一次訪問該servlert,那麼該servlet將被例項化,緊接著,init方法被呼叫,注意 該init方法在servlet的整個生命週期中僅執行一次。2 服務階段 service方法被呼叫 客戶端每發來一次請求,該serv...