1. 程式人生 > 實用技巧 >Java day 2-常量、資料型別和運算子

Java day 2-常量、資料型別和運算子

目錄

常量的概述和使用

資料型別

資料型別轉換

char資料型別計算

運算子

練習題


常量的概述和使用

  • 顯示

  • System.out.println("string"); //字串常量
  • System.out.println(123); //整數常量
  • System.out.println(12.3); //小數常量
  • System.out.println('a'); //字元常量 ,‘’內僅有單個字元
  • System.out.println(true); //布林常量:true和flase
  • 空常量 (陣列中演示)

資料型別

  • 基本資料型別
    • 整數型
      • byte ——1個位元組-128~127
      • short——2位元組
      • int ——4位元組
      • long——8位元組
        • 數字輸入時,預設為int型別,賦值過程包含數值轉換的過程。將數字賦值給long,需要在數字末尾加上L

  • 浮點型
    • float——4位元組
      • 小數預設資料型別是double
      • double精度更高,轉化為float會有精度損失。直接賦值會報錯,無法從double轉為float。
    • double——8位元組

long賦值給double,顯示為科學計數法的形式

  • 布林型
    • Boolean——1bit。
  • 字元型
    • char——2位元組
  • 引用資料型別

資料型別轉換

  • 隱式轉換
    • 實際賦值的過程就有隱式轉換(整數預設int,浮點數預設double)
    • 低精度轉高精度

  • 高精度不能直接轉為低精度

  • 強制轉換
    • 高精度轉低精度不能隱式轉換,需要強制轉換

  • 強制轉換時需要注意範圍,可能產生範圍溢位(正數符號位為0,進位後,符號位變為1,此時以補碼的形式讀入)

​​​​​​​

  • long和float相比,float精度更大,long可以轉float,float不能轉long。
    • long再大,也不能描述小數點後面的數字,float轉long必然會有精度損失。更何況,float還能寫成科學計數法的形式
  • 題目
    • 面試題:看下面的程式是否有問題,如果有問題,請找出來並說明理由

​​​​​​​

  • byte 相加,預設轉為int型別;不能直接定義為byte型別
  • 兩個變數相加,可能會有結果溢位

char資料型別計算

  • char型別參與+
    • ‘a’+1——結果為數字
    • “string”+‘a’+1——結果為字串
    • “string”+5+5——結果為字串
    • “String”+(5+5)——結果為數字

​​​​​​​

  • char可以儲存中文字元(java是Unicode編碼的)

運算子

  • 算數運算子
    • +:加法、正號、連線
    • /:整數相除結果是整數。小數參與運算,結果會是小數
    • %:取餘
    • ++a,--a:先加減,再讀取a的值,儲存
    • a++,a--:讀取a的值儲存後,再加減
      • b先讀取了a的值,再加減
        • ​​​​​​​
      • 練習
        • 第一題
          • ​​​​​​​
        • 第二題(x++先讀取操作,再加減。
          • ​​​​​​​
            • 有++和--,可能不符合加法交換律
              • ​​​​​​​
        • 第三題
          • ​​​​​​​
            • 此處 b++相當於 b=(byte)b+1;
            • byte參與+運算,且與int計算,預設轉為int,不能賦值給byte格式
    • =,+=
      • /*No.1 程式是否有問題,有問題,說明理由
        • * short s=1;s=s+1;
          • short和int相加,short預設轉為int型別,不能賦值給short型別。
        • * s=1;s+=1;
          • s+=1相當於s=(short)s+1;
  • 關係運算符
    • ==,!=
    • >=,>,<,<=

練習題

  • 1、計算出十進位制46對應的二進位制,八進位制,十六進位制的值。
    • 二進位制:101110

​​​​​​​​​​​​​​​​​​​​​

  • 八進位制:56

​​​​​​​​​​​​​​​​​​​​​

  • 十六進位制:2E

​​​​​​​

  • 2、Java中的資料型別分幾類?基本資料型別有哪些?
    • 基本資料型別
      • 整數型:byte、short、int、long
      • 浮點型:float、double
      • 布林型:boolean
      • 字元型:char
    • 引用資料型別
  • 3、面試題
    • 第一題:哪句是編譯失敗的呢?為什麼呢?
      • byte b1=3,b2=4,b;
      • b=b1+b2;
      • b=3+4;
    • 第二題:有沒有問題?有問題如何解決?結果是多少呢?
      • byte by = 130;
        • byte 的數值範圍是 -128~127
        • 結果會變成-126
    • 第三題:哪句是編譯失敗的呢?為什麼呢?
      • byte b = 10;
      • b++;
      • b = b + 1;
  • 4、運算子
    • 常見的算術運算子有哪些?
      • +,-,*,/,%,++,+=,=,-=,/=
    • +運算子的作用有哪些?
      • 加法、正號、字串連線
    • 除法和取餘的區別?
      • 除法 / ;取餘 %
    • ++和--的使用規則?
      • a++ 先讀取a值,再運算
      • ++a 先運算,再讀取a值
  • 5、賦值運算
    • 常見的賦值運算子有哪些?
      • =,+=,-=,/=,*=
    • +=運算的作用是什麼?
      • a+=1:a=(type a)a+1