1. 程式人生 > >00JAVA語法基礎_動手動腦

00JAVA語法基礎_動手動腦

int java 輸出結果 基本類 輸出 精度 strong 方法 都是

1、仔細閱讀示例: EnumTest.java,運行它,分析運行結果?

技術分享圖片

技術分享圖片

技術分享圖片

枚舉類型的使用是借助ENUM這樣一個類,這個類是JAVA枚舉類型的公共基本類。枚舉目的就是要讓某個變量的取值只能為若幹固定值中的一個。

2、Java變量遵循“同名變量的屏蔽原則”,請課後閱讀相關資料弄清楚相關知識,然後自己編寫一些測試代碼,就象本示例一樣,有意識地在不同地方定義一些同名變量,看看輸出的到底是哪個值。

技術分享圖片

分析:每個變量都會有自己的域,超出了便被覆蓋,函數體內的局部變量可以覆蓋全局變量,如例程序。

3、查看Java中每個數據類型所占位數,和表示數值的範圍,你能得到什麽結論?

char 8位二進制數範圍是-2的7次方到2的7次方-1,byte 8位帶符號整數-128到127之間的任意整數,short 16位無符號整數-32768到32767之間的任意整數,int 32位帶符號整數-2的31次方到2的31次方-1之間的任意整數,long 64位帶符號整數-2的63次方到2的63次方-1之間的任意整數,float 32位單精度浮點數,double 64位雙精度浮點數。

結論是Java會自動完成從低級類型向高級類型轉換,即取值範圍相對較小的數據類型轉換成取值範圍相對較大的數據類型。

4、為什麽double類型的數值進行運算得不到“數學上精確”的結果?

該結果與浮點數在計算機內部的表示方法有關系,這種方法問題在於如何在二進制中保存小數點的問題,即利用科學計數法,這樣小數點的位置則位於第一個數字之後。由於計算機只能處理0和1,所以在計算機裏面表示浮點數的時候,科學計數法中的基數是2,而不是10。在計算機內存當中,保存的實際是浮點數的計算公式,而不是確切的值,所以說計算機裏面浮點數都是近似值,而不是確切的值。計算機得出的的數值,在大多數情況下需要比64bit更多的位數才能準確表示出來(甚至是需要無窮多位),而double類型的數值只有64bit,後面舍去的位數一定會帶來誤差,無法得到“數學上精確”的結果。

5、以下代碼的輸出結果是什麽?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

為什麽會有這樣的輸出結果?

技術分享圖片

System.out.println(str)其本身輸出的就是字符串,而根據運算符的優先級規則,System.out.println("X+Y="+X+Y);語句則是輸出字符串X(100)之後再次輸出字符串Y(200),故該語句的輸出結果為X+Y=100200;而System.out.println(X+Y+"=X+Y");語句則是先將字符串X和Y轉化為ASCALL碼,然後相加輸出相加之後的結果300,故輸出結果為300=X+Y。

00JAVA語法基礎_動手動腦