Java day 2-常量、資料型別和運算子
阿新 • • 發佈:2020-10-13
目錄
常量的概述和使用
- 顯示
- 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位元組
- float——4位元組
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格式
-
- 第一題
- b先讀取了a的值,再加減
- =,+=
- /*No.1 程式是否有問題,有問題,說明理由
- * short s=1;s=s+1;
- short和int相加,short預設轉為int型別,不能賦值給short型別。
- * s=1;s+=1;
- s+=1相當於s=(short)s+1;
- * short s=1;s=s+1;
- /*No.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 by = 130;
- 第三題:哪句是編譯失敗的呢?為什麼呢?
- byte b = 10;
- b++;
- b = b + 1;
- 第一題:哪句是編譯失敗的呢?為什麼呢?
- 4、運算子
- 常見的算術運算子有哪些?
- +,-,*,/,%,++,+=,=,-=,/=
- +運算子的作用有哪些?
- 加法、正號、字串連線
- 除法和取餘的區別?
- 除法 / ;取餘 %
- ++和--的使用規則?
- a++ 先讀取a值,再運算
- ++a 先運算,再讀取a值
- 常見的算術運算子有哪些?
- 5、賦值運算
- 常見的賦值運算子有哪些?
- =,+=,-=,/=,*=
- +=運算的作用是什麼?
- a+=1:a=(type a)a+1
- 常見的賦值運算子有哪些?