1. 程式人生 > 其它 >010_JAVA基礎語法_資料型別及其擴充套件,面試題

010_JAVA基礎語法_資料型別及其擴充套件,面試題

一、JAVA的資料型別

  1. 整數型別

    • 整數型別最常使用int

    • long型,一般要在數字後加大/小寫L。建議使用L,小寫容易與數字1混淆

    • 整數型別有二進位制(0b開頭)、八進位制(0開頭,範圍0~7)、十進位制、十六進位制(0x開頭,範圍:0~9,A~F)

      0是零而非字母歐(擴充套件)

      int a1 = 0
      byte a2 = 10
      short a3 = 40
      long a4 = 100L
      int a5 = 0b0101
      int a6 = 010235;
      int a7 = 0x1cf;  
  2. 浮點型別

    • 浮點型別最常使用double型

    • float型,一般要在數字後加大/小寫F

    • 浮點數是有舍入誤差的,是接近但不等於,離散、有限的;要避免使用浮點數進行比較(擴充套件)

      float b = 2F
      double b1 = 100
  3. 字元型別char

    • 使用單引號

    • 可把字元型強制轉換為數值;原因:所有的字元本質上時數字(擴充套件)

    • 常見字元的數字:A-65,a-97

      char firstName = ‘何’;
      char sc = ‘A’;
      System.out.println((int)sc);  //65
  4. Boolean型

    1. 其值只有true和false

    2. 很多選擇結果的判斷條件結果就是布林型,如if語句(擴充套件)

      boolean flag = true;
      //常規寫法
      if(flag == true){}
      //偷懶寫法
      if(flag){}

      //Less is more!程式碼要精簡易讀,但建議初期按常規寫法寫程式碼
  5. String不是關鍵詞,是一個類,使用雙引號

二、面試題

銀行業務如何表示錢?使用float or double?

使用BigDecimal來表示,不使用浮點型別表示

float f = 0.1F            //0.1
double d = 1.0/10 //0.1
System.out.println(f==d); //false
System.out.println(f); //0.1
System.out.println(d); //0.1

三、思考

兩次結果為什麼不一樣?(記憶體分析)

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd); //true