介紹
鄙人才疏學淺,如有謬論,敬請指教,
計算機儲存容量單位講解
計算機儲存容量基本單位就是位元組(Byte),而位元組下面還有一個位元>(bit),對應關系是一個位元組 = 八個位元,位元(bit)是計算機儲存最>小單位,
總體換算關系是:
1B(位元組) = 8bit(位),
1KB(千位元組) = 1024B,
1MB(兆位元組 簡稱“兆”) = 1024KB,
1GB(吉位元組 又稱“千兆”) = 1024MB,
1TB(萬億位元組 太位元組) = 1024GB,
1PB(千萬億位元組 拍位元組) = 1024TB,
以上參考的文章
基本資料型別
1.數值型
- 整數型別:byte[1],short[2],int[4],long[8],
- 浮點型別(其實可以理解為小數):float[4],double[8],
2.字符型(char[2])
存放單個字符,
3.布爾型(boolean[1])
存放true和flase,
整數型別
- Java的整形常量默認為int型,宣告long型常量需在后面加上 ' L ' 或 ' l ',(建議使用大寫)
- Java各整數型別有固定的范圍和欄位長度,不受作業系統[OS]影響,以此保證java可移植性,(說實話不是特別累理解)
- byte,short,int 默認值是 0 ,long 默認值是 0L ,
byte a ;//byte的大小
System.out.println(Byte.SIZE);
short b ;//short的大小
System.out.println(Short.SIZE);
int c ;//int的大小
System.out.println(Integer.SIZE);
long d ;//long的大小
System.out.println(Long.SIZE);
浮點型別
- Java的浮點型常量默認為double型,宣告float型常量需在后面加上 ' f ' 或 ' F ',(建議使用大寫)
- 浮點數陷阱
- 通常情況下,使用double,因為double比float更加精確,(但我感覺比較占記憶體吧)
- float 默認值是 0.0f , double 默認值是 0.0d(我也不知道為啥后面要綴一個d),
float a;//float的大小
System.out.println( Float.SIZE);
double b;//double的大小
System.out.println(Double.SIZE);
字符型別
- 字符型別可以表示單個字符,多個字符需要用字串String
- 字符常量是用單引號''(切英文shift + “)括起來的字符,
- Java中char本質上是一個整數,在輸出時,是unicode碼對應的字符,
- 可以直接給char賦一個整數,會按照對應的Unicode字符輸出,
- char型別是可以進行運算,相當于一個整數,
char a = 97 ;//char本質是一個整數
System.out.println(a);
char b = 'b' ;//char的大小
System.out.println(Character.SIZE);
System.out.println(a + b);//兩個字串運算
布爾型別
- boolean型別資料只允許取值true和flase,沒有null,
- 布爾型別適合于邏輯運算,一般用于程式流程控制,
- 不可以0或者非0的整數替代false和true,這和C語言不相同,(目前恰好只學了C語言)
if (true){
System.out.println("基尼太美");
}
if (false){
System.out.println("滾啊!小黑子");
}
自動型別轉換
當Java程式在進行賦值或運算時,精度小(禁止開車哈)的型別自動轉換為精度大的資料型別,這就是自動型別轉換:
char --> int --> long --> float --> double
低---------------------------------------------->高
byte --> short -->int --> long --> float --> double
- 有多種型別的資料混合運算時,系統首先自動將所有資料轉換成容量最大那種的那種資料型別,然后再計算,
int a = 123;
float b = 4.6F;
double c = 1.23;
System.out.println(a + b);
System.out.println(a + c);
//感興趣的可以試下b + c 的值是否等于5.83
- (byte , short)和char 之間不會相互自動轉換,
- byte,short,char三者可以計算,但在計算時首先轉換為int型別
byte a = 12;
short b = 45;
char c = 'c';
short d = a + b + c;//錯誤
System.out.println(d);
int e = a + b + c;//正確
System.out.println(e);
- 布爾型別不參與轉換(個人感覺它也計算不了啊),
int a = 'a';//char --> int
double b = 125;//int -->double
System.out.println("a=" + a +"\t"+ "b=" + b);
強制型別轉換
自動型別轉換的逆程序,將容量大的資料型別轉換為容量小的資料型別,使用時要加上強制轉換符(),但可能造成精度降低或溢位,
- 當進行資料大小從大到小就要使用強制轉換,
- 強制符號只針對于最近的運算元有效,往往會使用小括號提升優先級,
// int a = (int)12 * 2.0 + 1.1;
// System.out.println(a);
int b = (int)(12 * 2.0 + 1.1);
System.out.println(b);
- char型別可以保存int的常量值,但不能保存int的變數值,需要強轉,
** byte和short型別在進行運算時,當做int型別處理,
萬金買高爵,來何處買青春?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/547255.html
標籤:Java