不管任何東西在計算機存儲都是數字,資料都是數字的形式存儲的,而數字轉成二進制由記憶體中和處理器互動。
而記憶體是有大小的,選擇合适的類型可以避免不必要的記憶體浪費。
整數型(規定必須轉成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)