1. 程式人生 > >黑馬程式設計師——java基礎語法的常見面試題

黑馬程式設計師——java基礎語法的常見面試題

Java中針對整數常量提供了四種表現形式

A:二進位制由0,1組成。以0b開頭。
B:八進位制由0,1,...7組成。以0開頭。
C:十進位制由0,1,...9組成。整數預設是十進位制。
D:十六進位制 由0,1,...9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭。

資料型別轉換

1)預設轉換
A:從小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之間不相互轉換,直接轉成int型別參與運算。

2)強制轉換
A:從大到小
B:可能會有精度的損失,一般不建議這樣使用。
C:格式:
目標資料型別 變數名 = (目標資料型別) (被轉換的資料);

3)思考題和麵試題:
A:下面兩種方式有區別嗎?

			float f1 = 12.345f;//正常賦值
			float f2 = (float)12.345;//涉及了強制型別轉換
B:下面的程式有問題嗎,如果有,在哪裡呢?
			byte b1 = 3;//先判斷是否在byte範圍,如果在則直接賦值
			byte b2 = 4;
			byte b3 = b1 + b2;//這裡是有問題的,因為變數在運算時會先轉換為int型別參與運算,不能把int型別的值賦值給byte型別
			byte b4 = 3 + 4;
C:下面的操作結果是什麼呢?
			byte b = (byte)130;//因為byte的範圍是-128--127之間,當數值超過範圍後會進行數值迴圈,此時的值應該是-126

D:常見字元的值

'a'97
'A'65
'0'48

賦值運算子:

				short s = 1;
				s = s + 1;//變數參與運算後得到的結果是int型別,無法賦值給short型別的資料
				
				short s = 1;
				s += 1;//隱含了強制轉換
				請問上面的程式碼哪個有問題?

迴圈語句
		switch語句的表示式可以是byte嗎?可以是long嗎?可以是String嗎?
		可以,不可以,JDK7以後可以。JDK5以後可以是列舉,JDK7以後可以是字串
		A:default可以省略嗎?
			可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
			特殊情況:
				case就可以把值固定。
				A,B,C,D
		B:break可以省略嗎?
			可以省略,但是結果可能不是我們想要的。
			會出現一個現象:case穿透。
			最終我們建議不要省略
		C:default一定要在最後嗎?
			不是,可以在任意位置。但是建議在最後。
/*
	看程式寫結果——case穿透
*/
class SwitchTest {
	public static void main(String[] args) {
		int x = 2;
		int y = 3;
		switch(x){
			default:<span style="white-space:pre">		</span>//由於case語句中沒有與x的值相同的,所以走default語句,
				y++;
				break;<span style="white-space:pre">		</span>//break結束語句
			case 3:
				y++;
			case 4:
				y++;
		}
		System.out.println("y="+y);<span style="white-space:pre">	</span>//4
		System.out.println("---------------");
		
		int a = 2;
		int b = 3;
		switch(a){
			default:<span style="white-space:pre">		</span>//沒有與x值相同的case,走default語句
				b++;<span style="white-space:pre">		</span>//沒有break語句,繼續向下執行
			case 3:
				b++;
			case 4:
				b++;<span style="white-space:pre">		</span>//到末位結束
		}
		System.out.println("b="+b);<span style="white-space:pre">	</span>//6
	}
}

for(int x=1; x<=10; x++) {
				if(x%3 == 0) {
					//補齊程式碼
				}
				System.out.println("Java基礎班");
			}
			如何讓控制檯輸出2次:Java基礎班——break
			如何讓控制檯輸出7次:Java基礎班——continue
			如何讓控制檯輸出13次:Java基礎班——System.out.println("Java基礎班");