>[success] # 數字類型
1. 其中byte類型在內存空間中占1個字節,表示范圍是:\-2^7 ~ 2^7-1. `-128 ~ 127`
2. 其中short類型在內存空間中占2個字節,表示范圍是:\-2^15 ~ 2^15-1. `-32768 ~ 32767`
3. 其中int類型在內存空間中占4個字節,表示范圍是:\-2^31 ~ 2^31-1. ` -2147483648 ~ 2147483647`
4. 其中long類型在內存空間中占8個字節,表示范圍是:\-2^63 ~ 2^63-1. `-9223372036854775808 ~ 9223372036854775807`
5. float類型在內存空間占4個字節,叫做單精度浮點數,可以表示7位有效數字,范圍 `-3.403E38~3.403E38`
6. double類型在內存空間占8個字節,叫做雙精度浮點數,可以表示15位有效數字,范圍`-1.798E308~1.798E308`
5. 若描述比long類型還大的數據則使用`java.math.BigInteger`類型
*****
* 整數類型和小數類型的取值范圍大小關系? `double > float > long > int > short > byte`
* 在java中**整數**默認是`int`類型,**浮點數**默認是`double`類型
>[danger] ##### 符號對類型含義
`0x`:表示十六進制
`0b`:表示二進制
`L或者l`: 表示`long` 類型,推薦L
`F或者f`: 表示`float` 類型
>[info] ## 整數類型 -- `byte,short,int,long` 選用
* 如果要定義 一個整數類型的變量,不知道選擇哪種數據類型了,默認使用int。
* 如果要定義 一個小數類型的變量,不知道選擇哪種數據類型了,默認使用double。
* 如果要定義一個long類型的變量,那么在數據值的后面需要加上L后綴。(大小寫都可以,建議大寫。)
* 如果要定義一個float類型的變量,那么在數據值的后面需要加上F后綴。(大小寫都可以)
>[danger] ##### 案例
~~~java
/*
數字類型
*/
public class VarTest{
public static void main(String[] args){
byte b1 = 25; // 聲明一個byte類型
// byte b2 = 250; // 報錯因為byte 一個字節范圍在-128 ~ 127
short s1 = 250; // 聲明一個short 類型
// short s2 = 250250; // 報錯因為short 兩個字節范圍在-32768 ~ 32767
int i1 = 250250; // 聲明一個int 類型
// int i2 = 2502505006; // 報錯因為int 四個字節范圍在-2147483648 ~ 2147483647
// int i3 = 2502505006L; // 報錯不能將long 類型賦值給int 類型
long g1 = 2502505006L; // 聲明一個long 類型
int i4 = 0xff0000; // 十六進制表示的16711680
int i5 = 0b1000000000; // 二進制表示的512
System.out.println("b1:"+b1+","+"s1:"+s1+","+"i1:"+i1+","+"g1:"+g1);
}
}
~~~
>[danger] ##### 類型不同不能賦值
~~~java
/*
數字類型
*/
public class VarTest{
public static void main(String[] args){
// 請問下面的代碼是否有錯誤?若有請指出并說明原因
//int i2 = 25;
//byte b2 = i2; // 錯誤: 不兼容的類型: 從int轉換到byte可能會有損失,此時i2如果是動態賦值并不一定會兼容byte 范圍
//System.out.println("b2 = " + b2);
}
}
~~~
>[info] ## 浮點數類型 --`float,double`
* Java語言中用于描述小數數據的類型:`float` 和 `double`,推薦`double`類型
>[danger] ##### 案例
* Java程序中直接寫出的小數數據叫做直接量,默認為double類型,若希望表達float類型的直接量,則需要在直接量的后面加上f或者F
~~~ java
public class VarTest{
public static void main(String[] args){
float f1 = 0.3333f;
double d1 = 0.3333;
}
}
~~~
>[danger] ##### 不要用小數去加減
`System.out.println(0.1 + 0.2); // 0.30000000000000004` 運算時可能會有誤差,若希望實現精確運算則借助`java.math.BigDecimal`類型
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法