以下のコードでデッドロックが発生しないのはなぜですか? つまり、getNumber(.) を呼び出した後、クラス Test のオブジェクトをロックする必要があるため、getNumber2(.) にアクセスできないはずです。
class Test() {
synchronized int getNumber(int i){
return getNumber2(i);
}
synchronized int getNumber2(int i) {
return i;
}
public static void main(String[] args) {
System.out.println((new Test()).getNumber(100));
}
}
出力:
100