java基礎筆試題

1,一個.java的源文件是否可以包含多個類(不是內部類)?有什麼限制?
可以有多個類,只能有一個public類,並且public的類名必須和文件名一致

2.java有沒有goto?
java中的保留字,現在沒有使用

3,java中&和&&的區別

&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符的兩邊的表達式的
結構都爲true時,整個運算結果才爲true,否則只要有一方爲false,則表達式爲false
&&具有短路功能,如果一個表達式爲false,則不會進行第二個表達式 ,例如
if(str != null && str.equals(”))表達式,當str爲null時,後面的表達式不會執行,如果將&&改成&,則出現空指針異常
&可以作爲位運算符,當&操作符的兩邊的表達式不是boolean類型時,&表示按位與操作,例如
0x31 & 0x0f 的結果是 0x01 獲取改整數的最低4個bit位。

4, 在java中如何跳出當前的多重循環
在java中,要想跳出多重循環,可以在外面的循環語句前加一個標號,然後在裏循環的代碼體中使用帶有標號的break語句,即可跳出外層循環。

ok;
for(int i=0;i<10;i++) {
    for(int j=0;j<10 j++)
        system.out.println("i="+i+"j"+j);
        if (j==5) break ok;
}

通常不使用這種方法,讓外層的循環表達式的結果可以收到裏層循環體代碼的控制,例如在二維數組中查找出某個數

int arr[][]={{1,2,3},{4,5,6,7},{9}};
boolean found=false;
for(int i=0; i<arr.length && !found;i++){
    for (int j=0; j<arr[i].length;j++){
    System.out.println("i="+i+"j="+j);
    if (arr[i][j]==5){
            found=ture;
            break;
        }
    }
}

5,switch語句能否作用在byte上,能否作用在string,能否作用在long上?

在switch(expr1) 中,expr1只能是整數表達式或者是枚舉常量,整數表達式可以是int類型或者integer包裝類型。
由於byte,char,short類型都可以隱含轉換成int
所以byte,char,shor以及包裝類型都是可以的,所以,long,string類型的就不可以,不符合switch語法。

6,char變量中能不能存貯一箇中文漢字,爲什麼?

char型變量時用來存儲unicode編碼的字符,在unicode字符集中包含了漢字,所以char型變量中可以存儲漢字。因爲unicode編碼佔有兩個字節,所以char型變量也佔有兩個字節。

8,用最有效的方法計算出2乘以8等於幾?
2 >> 3
因爲一個數左移n位,就相當於乘以了2的幾次方,一個數乘以8只要左移三位即可,
cpu位運算直接支持,效率最高

9.請設計一個一百億的計算器

10.使用final修飾一個變量時,是引用不能變,還是引用的對象不能變?
解答:使用finnal修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內容還是可以改變的。
修改方式如下:
final StringBuffer a = new StringBuffer(“immutable”);
a=new StringBuffer(“”);
a.append(“broken”);
將final修飾的變量內容改變了。
11,==和equals方法究竟有什麼區別?
解答:==操作符用來比較兩個變量的值是否相等
equals方法:用於比較兩個獨立的對象的內容是否相等。
如下代碼:
String a = new String(“foo”);
String b = new String(“foo”);
因爲a 和b是兩個不同的對象,即a和b中存儲的數值是不相同的。所以a==b 返回false
因爲兩個對象中的內容是一樣的,所以a.equals(b) 返回true
equals方法繼承與object類,字符串的比較基本上都使用equals方法比較
12,靜態變量和實例變量的區別?
靜態變量需要加static關鍵字,而實例變量不加
靜態變量不屬於某個實例對象,而是屬於類,也稱類變量 通過類.類變量
實例變量必須創建對象後纔可以通過這個對象來使用。
13.是否可以從一個static方法內部發出對非static方法的調用
不可以,因爲非static方法要與對象關聯在一起,必須創建該對象後,纔可以在該對象上使用,
而static方法調用非static方法,可能這個非static方法的對象實例還沒有創建。
14,Integer和int的區別
解答:int是java提高的8中原始數據類型,int的默認值是0
integer是java爲int提供的封裝類,Integer默認值是null

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