主要有四種基本數(shù)據(jù)類型:
整型:
byte? ?字節(jié)型 1字節(jié) 8個bit位? ? ?0 000 0000? ? ?用第一個bit位表示正負,0正數(shù)感凤,1負數(shù)? ,數(shù)值的范圍? ?-2^7 ~ 2^7-1? ? ? ?-128 -127? ?
short 2字節(jié) 16個bit位? ?-2^15 ~2^15-1? -32768 ~32767
int? ? 4字節(jié)? 32個bit位? ? ?- 2^31 ~ 2^31-1? ? ? -2 147 483 648? ~??2147483647?
long? 8字節(jié)? 64個bit位? 如果數(shù)值超出int的取值范圍,計算機編譯會報錯(計算機認為數(shù)字太大)必須在數(shù)值后面帶上L
浮點型:
float? ?4字節(jié)? 32個bit位? ? 3.14F后面必須帶f或者F
double 8字節(jié)? 64個bit位? ?
布爾型:
boolean? ? 1個bit位? true或者false
字符型:?
char? 英文和符號和數(shù)字是1個字節(jié)塘辅,中文是2個字節(jié) 。例如 'a','我'?
float e =3.4?
從double轉化到float會有損失
1? 3.4 常量值
存儲在常量緩沖區(qū)中皆撩,常量值的存儲形式是以二進制形式存儲扣墩。
1 ---->32bit 整數(shù)默認開辟32位的空間,相當于int類型
3.4---->64位? 小數(shù)默認開辟64位的空間扛吞,相當于double類型呻惕,所以64位的3.4無法放到float類型的空間中,放不下滥比,所以在定義float時亚脆,必須在后面加上F
那為什么byte a =1不需要在后面加標志的?
因為? 等號在賦值的時候計算機會自動轉化,把默認的32個bit位 的前面的24個bit位強制去掉盲泛。(前提是前面的24位必須都是0濒持,這時候才會轉換)
00000000? 00000000 00000000 00000000
但是double 和float的bit位含義不同 ,所以不能強制轉換
引用數(shù)據(jù)類型:
數(shù)組[] 寺滚,類class(抽象類 abstract class) 接口interface ,枚舉 enum ,注解@interface
字符串:String? " a "? ?"abc"? ?" ",? null? ?柑营。" "和null代表的含義不同?