大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面試題首頁 > Java基礎面試題

Java語法面試題

001一個“.java”源文件中是否可以包含多個類(不是內部類)有什么限制?

可以;必須只有一個類名與文件名相同。

002byte的取值范圍是多少,怎么計算出來的?

byte 的取值范圍是 -128 -> 127 之間,一共是 256 位。一個 byte 類型在計算機中占據一個字節,那么就是 8 bit,所以最大就是 2^7 = 1111 1111。
Java 中用補碼來表示二進制數,補碼的最高位是符號位,最高位用 0 表示正數,最高位 1 表示負數,正數的補碼就是其本身,由于最高位是符號位,所以正數表示的就是 0111 1111 ,也就是 127。最大負數就是 1111 1111,這其中會涉及到兩個 0 ,一個 +0 ,一個 -0 ,+0 歸為正數,也就是 0 ,-0 歸為負數,也就是 -128,所以 byte 的范圍就是 -128 – 127。

003在 Java 中,如何跳出當前的多重嵌套循環?

在最外層循環前加一個標記如outfor,然后用break outfor;可以跳出多重循環。例如以下代碼:

public class TestBreak {
????public static void main(String[] args) {
????????outfor: for (int i = 0; i < 10; i++){
????????    for (int j = 0; j < 10; j++){
????????        if (j == 5){
????????????        break outfor;
????????????    }
????????????    System.out.println("j = " + j);
????????    }
????    }
????}
}

運行結果如下所示:

j = 0
j = 1
j = 2
j = 3
j = 4

004switch 是否能作用在 byte 上,能否作用在 long 上,能否作用在 String 上?

早期的 JDK 中,switch(expr)中,expr 可以是 byte、short、char、int。從 1.5 版開始,Java 中引入了枚舉類型(enum),expr 也可以是枚舉,從 JDK 1.7 版開始,還可以是字符串(String)。長整型(long)是不可以的。

005 & 和 && 的區別?

&運算符是:邏輯與;&&運算符是:短路與。
1)&和&&在程序中最終的運算結果是完全一致的,只不過&&存在短路現象。如果是&運算符,那么不管左邊的表達式是true還是false,右邊表達式是一定會執行的。當&&運算符左邊的表達式結果為false的時候,右邊的表達式不執行,此時就發生了短路現象,也就是說&&會更加的智能。這就是他們倆的本質區別。
2)當然,&運算符還可以使用在二進制位運算上,例如按位與操作。

006char 型變量中能不能存儲一個中文漢字,為什么?

char 類型可以存儲一個中文漢字,因為Java中使用的編碼是Unicode編碼,一個char 類型占2個字節(16 比特),所以放一個中文是沒問題的。
補充:使用Unicode 意味著字符在JVM內部和外部有不同的表現形式,在JVM內部都是 Unicode,當這個字符被從JVM內部轉移到外部時(例如存入文件系統中),需要進行編碼轉換。所以 Java 中有字節流和字符流,以及在字符流和字節流之間進行轉換的轉換流,如 InputStreamReader和OutputStreamReader,這兩個類是字節流和字符流之間的適配器類,承擔了編碼轉換的任務。

007break ,continue ,return 的區別及作用

break 跳出總上一層循環,不再執行循環(結束當前的循環體) continue 跳出本次循環,繼續執行下次循環(結束正在執行的循環 進入下一個循環條件) return 程序返回,不再執行下面的代碼(結束當前的方法 直接返回) 另外在switch...case語句中,break不是必須的,但是會較大影響到運行結果。如果沒有break,后面的一旦有case匹配成功,后面的case將無條件的向下執行其它的case。

008switch 是否能作用在 byte 上,能否作用在 long 上,能否作用在 String 上?

早期的 JDK 中,switch(expr)中,expr 可以是 byte、short、char、int。從 1.5 版開始,Java 中引入了枚舉類型(enum),expr 也可以是枚舉,從 JDK 1.7 版開始,還可以是字符串(String)。長整型(long)是不可以的。

009Math.round(11.5)等于多少?Math.round(- 11.5) 又等于多少?

Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在參數上加0.5然后進行取整。

010short s1 = 1; s1 = s1 + 1; 有錯嗎?short s1 = 1; s1 += 1 有錯嗎?

前者不正確,后者正確。
對于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 類型,因此 s1+1 運算結果也是 int 型,需要強制轉換類型才能賦值給 short 型。
而 short s1 = 1; s1 += 1;可以正確編譯,因為 s1+= 1;相當于 s1 = (short)(s1 + 1);其中有隱含的強制類型轉換。

011數組有沒有length()方法?String有沒有length()方法?

Java中的數組沒有length()方法,但是有length屬性。String有length()方法。

012用最有效率的方法計算2乘以8?

2 << 3,將2左移3位

013下面 Integer 類型的數值比較輸出的結果為?

public class Test{
????public static void main(String[] args) {
???????Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150; System.out.println(f1 == f2);
???????System.out.println(f3 == f4);
????}
}

f1==f2的結果是 true,而f3==f4 的結果是false。為什么呢?先來說說裝箱的本質。當我們給一個Integer 對象賦一個 int 值的時候,會調用 Integer 類的靜態方法 valueOf,如果看看valueOf的源代碼就知道發生了什么。如果整型字面量的值在-128 到 127 之間,那么不會 new 新的 Integer 對象,而是直接引用常量池中的Integer對象,所以上面的面試題中f1==f2的結果是 true,而f3==f4 的結果是false。

014int 和 Integer 有什么區別?

Java 的JDK從 1.5 開始引入了自動裝箱/拆箱機制。它為每一個基本數據類型都引入了對應的包裝類型(wrapper class),int的包裝類就是 Integer,其它基本類型對應的包裝類如下:
原始類型: boolean,char,byte,short,int,long,float,double包裝類型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

015什么是方法的返回值?返回值的作用是什么?

方法的返回值是指我們獲取到的某個方法體中的代碼執行后產生的結果!(前提是該方法可能 產生結果)。返回值的作用:接收出結果,使得它可以用于其他的操作!

016如何將數值型字符轉換為數字?

調用數值類型相應包裝類中的方法 parse***(String)或 valueOf(String) 即可返回相應基本類型或包裝類型數值;

017如何將數字轉換為字符?

將數字與空字符串相加即可獲得其所對應的字符串;另外對于基本類型 數字還可調用 String 類中的 valueOf(…)方法返回相應字符串,而對于包裝類型數字則可調用其 toString()方法獲得相應字符串;

018如何取小數點前兩位并四舍五入?

可用該數字構造一 java.math.BigDecimal 對象,再利用其 round()方法 進行四舍五入到保留小數點后兩位,再將其轉換為字符串截取最后兩位。

0193*0.1 == 0.3 將會返回什么? true 還是 false?

false,因為有些浮點數不能完全精確的表示出來。

020Java移位運算符?

java中有三種移位運算符 
<< :左移運算符,x << 1,相當于x乘以2(不溢出的情況下),低位補0 
>> :帶符號右移,x >> 1,相當于x除以2,正數高位補0,負數高位補1 
>>> :無符號右移,忽略符號位,空位都以0補齊

021如何理解Java中的泛型是偽泛型?

泛型中類型擦除 Java泛型這個特性是從JDK 1.5才開始加入的,因此為了兼容之前的版本,Java泛型的實現采取了“偽泛型”的策略,即Java在語法上支持泛型,但是在編譯階段會進行所謂的“類型擦除”(Type Erasure),將所有的泛型表示(尖括號中的內容)都替換為具體的類型(其對應的原生態類型),就像完全沒有泛型一樣。

022注解的作用?

注解是JDK1.5版本開始引入的一個特性,用于對代碼進行說明,可以對包、類、接口、字段、方法參數、局部變量等進行注解。它主要的作用有以下四方面: 生成文檔,通過代碼里標識的元數據生成javadoc文檔。 編譯檢查,通過代碼里標識的元數據讓編譯器在編譯期間進行檢查驗證。 編譯時動態處理,編譯時通過代碼里標識的元數據動態處理,例如動態生成代碼。 運行時動態處理,運行時通過代碼里標識的元數據動態處理,例如使用反射注入實例。

023注解的常見分類?

Java自帶的標準注解,包括@Override、@Deprecated和@SuppressWarnings,分別用于標明重寫某個方法、標明某個類或方法過時、標明要忽略的警告,用這些注解標明后編譯器就會進行檢查。 
元注解:元注解是用于定義注解的注解,包括@Retention、@Target、@Inherited、@Documented @Retention用于標明注解被保留的階段 @Target用于標明注解使用的范圍 @Inherited用于標明注解可繼承 @Documented用于標明是否生成javadoc文檔 自定義注解,可以根據自己的需求定義注解,并可用元注解對自定義注解進行注解。

目錄

返回頂部
主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 国产精品久久久久久一级毛片 | 亚洲精品综合网 | 四虎免费视频 | 亚洲欧美日韩中文v在线 | 亚洲一级黄色大片 | 四虎影剧院 | 一区二区三区在线免费视频 | 国产香蕉视频在线观看 | 91亚洲欧美 | 亚洲日本一区二区三区 | 日本边添边爱边做视频 | 精品一区二区三区在线观看l | 99在线热视频只有精品免费 | 黄色的网站在线观看 | 天堂伊人网 | 日本不卡在线观看免费v | 久操免费在线 | 亚洲综合91 | 久久精品国产一区二区 | 一区二区三区免费视频观看 | 亚欧精品一区二区三区 | 日日舔 | 日韩精品免费一区二区三区 | 日本欧美另类 | 国内精品久久久久久久999下 | 亚洲综合色网 | 欧美乱理伦另类视频 | 99自拍视频在线观看 | 永久久久免费浮力影院 | 中文字幕不卡免费视频 | 特黄特级高清免费视频毛片 | 国产97色在线 | 亚洲 | 久久国产在线视频 | a级亚洲片精品久久久久久久 | 免费a级特黄国产大片 | 伊人久久精品亚洲午夜 | 成人在线精品 | 国产成人理在线观看视频 | 亚洲欧美日韩国产精品 | 四虎成年永久免费网站 |