1. 程式人生 > 其它 >Java面試題總結

Java面試題總結

1.基本型別之間的比較,應該會將低精度型別自動轉為高精度型別再比較。

long x=42;
float f1[]=new float[2];
f1[0]=42.0f;

x==f1[0];  //true

2.a=a+b 和a+=b之間的區別

(1)效能方面:a=a+b是加法運算 需要兩次尋找地址而a+=b是增量運算有暫存器優先時 只有一次地址查詢。效率方面後者略高於前者 基於現在計算機的發展可忽略不計。

(2)可讀性方面:前者比後者更容易理解

(3)資料型別方面:

byte a=1;

a= a+4 ; //型別不匹配:不能從int轉換為byte
//原因:a是byte型別資料,4預設是int型別,a+4後預設轉換成int型別,再賦值給a時相當於把int型別賦值給byte型別的資料,所以會報錯。
a += 4; // 不會報錯 //“+=”是java中的一個運算子,而不是兩個,所以在運算時 會進行自動型別轉換。所以在編譯時沒有報錯。 System.out.println(a);

在兩個變數的資料型別一樣時:a+=b 和a=a+b 是沒有區別的。但是當兩個變數的資料型別不同時,就需要考慮一下資料型別自動轉換的問題了。也就是涉及到精度了。