3G門戶Java筆試題(部分大題的大意,非順序) ( I LOVE SCAU)
1.一個長1001的數組,放1-1000這1001個數,有一個是重複的,不要用額外的存儲空間,求出這個數是多少?
將所有元素異或,再與1-1000也異或,結果就是要求的數。
2.輸入一個數,返回它的.逆置,如輸入55821000,返回12855
( 簡單,先去掉n尾部的0)
int method(int n){
if(n==0)return 0;
while(n%10==0)n/=10;
int result=0;
while(n!=0) {
result = result*10+n%10;
n=n10;
}
return result;
}
t s1 = 0; s1 = s1+1; short s1 = 0; s1 += 1; 2種哪一種編譯對,哪種錯?爲什麼?
前面錯 後面對
因爲s1+1是提升爲int運算的,故應該寫s1 = (short)(s1+1) ;而s1 +=1 相當於s1 = (short)(s1+1)
4.抽象類和接口的區別?
5.最後一題,寫程序求將一棵二叉查找樹鏡像(就是左右顛倒,有圖比較好理解)
6. 關於synchronize的,大概是一個線程訪問了同步方法,其他線程還可以訪問這個對象的其他方法嗎(題意有些模糊,我答:可以,前提是“其他方法”是非synchronize的)