不管任何東西在計算機存儲都是數字,數據都是數字的形式存儲的,而數字轉成二進制由內存中和處理器交互。
而內存是有大小的,選擇合適的類型可以避免不必要的內存浪費。
整數型(規定必須轉成10進制使用)
int(32位,四個字節 )
long(64位,八個字節)
byte 萬能型數據類型 一個字節 8位 網絡傳輸的最小單位也是一個字節,計算機的所有文件都能進行存儲,是計算機中最小的單位。
short 兩個字節16位,因爲有正負級計算,在二進制的最高位,0表示正數,1表示負數
字符型:英文用的是 ASCII - 0~127 128個符號 用的是一個字節,而中文要用的是2個字節
char(16位,兩個字節) 沒有負數寄存,java中文字處理是 unicode 編碼
布爾型:boolean(8位,一個字節) 0 false,1 true,實際上存儲 只耗去了一位 存儲的是邏輯值,true false 真與假。
浮點型(小數):小數類型今後計算的時候不精確,放大成整數再計算,float(32位,4個字節) 後保留 6位小數,double(64位,8個字節) 後保留 15位小數
public class T5{
public static void main(String args[]){
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(123.3/100);
}
};
結果:
0.060000000000000005
0.5800000000000001
1.2329999999999999
解決辦法:
public class T5{
public static void main(String args[]){
System.out.println(((0.05*100)+(0.01*100))/100);
System.out.println(((1.0*100)-(0.42*100))/100);
System.out.println(((123.3*10)/(100*10))/10);
}
};
0.06
0.58
0.1233
常用的數據類型:整數 int ,小數 double ,字符 char , 字符串 String ,邏輯值( 布爾值) boolean, 文件(照片,程序,壓縮包....) byte
變量,是一個常量值
在程序運行過程中,其值可以改變的量稱之爲變量,就是聲明一個標識指向內存地址,進行操作,變? 我們可以改變內存數據,就有如改變標識中的數據。
變量賦值爲什麼數值後要加F或者L?
public class T6 {
public static void main(String[] args) {
long a=1000000L;告訴java他是long類型的 java默認是類型的
float b=15.1f;告訴系統他是float類型的 java默認是double
}
}
常量
常量值:整數 int,小數 double,字符 char,字符串 String,字符串 String,整數後加L 表示爲 long類型
聲明常量:final 最終,名稱最好是全大寫,final 數據類型 常量標識名稱=值,數據存儲在常量區域
類型轉換
小的數據類型可以直接轉換成大的,因爲就是冰箱,你小的可以,但你放個大象肯定是放不進去的啊,
強制類型轉換:儘量不要用,會有風險的,從大到小就想是截肢,直接截取一半,正數強制轉換成負數
舉例
100000000000000001這是負數因爲高位爲1(16位)
00000001(轉換成了正數高位爲0)