- ~
類Parent和Child定義以下:java
1 .class Parent{ 2. public float aFun(float a, float b) { } 3 .} 4 .class Child extends Parent{ 5 . 6 .}
將如下哪一種方法插入行5是不合法的。( )併發
正確答案: A
A float aFun(float a, float b){ }
B public int aFun(int a, int b) { }
C public float aFun(float p, float q){ }
D private int aFun(int a, int b){ }eclipse
方法重寫應遵循「三同一小一大」原則: 「三同」:即方法名相同,形參列表相同,返回值類型相同; 「一小」:子類方法聲明拋出的異常比父類方法聲明拋出的異常更小或者相等; 「一大」:子類方法的訪問修飾符應比父類方法更大或相等。 A選項是重寫,可是默認訪問修飾符比父類小,插入第五行編輯器會報錯。 B、D不是重寫。由於形參列表和返回值類型不一樣,不知足「三同」。因此寫在第五行以普通方法對待,插入第五行沒有錯誤。 C選項知足重寫的各項條件,是正確的重寫,因此插入第五行沒有錯誤
假設 a 是一個由線程 1 和線程 2 共享的初始值爲 0 的全局變量,則線程 1 和線程 2 同時執行下面的代碼,最終 a 的結果不多是()編輯器
boolean isOdd = false; for(int i=1;i<=2;++i) { if(i%2==1)isOdd = true; else isOdd = false; a+=i*(isOdd?1:-1); }
正確答案: D
A -1
B -2
C 0
D 1spa
易知:每一個線程對a 均作了兩次讀寫操做,分別是 「 +1 」 和 「 -2 」 而題目問了是最終a 的結果,因此 a 的結果取決於各自線程對 a 的前後讀寫的順序 結論:a的可能取值爲-一、0、-2
假設兩線程爲A、B,設有3種狀況: 1.AB不併發:此時至關於兩個方法順序執行。A執行完後a=-1,B使用-1做爲a的初值,B執行完後a=-2 2.AB徹底併發:此時讀寫衝突,至關於只有一個線程對a的讀寫最終生效。相同於方法只執行了一次。此時a=-1 3.AB部分併發:假設A先進行第一次讀寫,獲得a=1;以後A的讀寫被B覆蓋了。B使用用1做爲a的初值,B執行完後a=0
若須要定義一個類,下列哪些修飾符是容許被使用的?( )
正確答案: A C D 你的答案: A D (錯誤)
A static
B package
C private
D public線程
這題只說定義一個類,可是沒有說這個類是普通外部類或者內部類。 由於普通類也就是外部類,經過 eclipse 的警告「Illegal modifier for the class Test; only public, abstract & final are permitted」 可知只能用 public, abstract 和 final 修飾。 內部類則能夠用 修飾成員變量的修飾符修飾內部類,好比 private, static, protected 修飾。