Java基本類型的長度以及和C++的對比
Java(字節數) C++(字節數)
Byte 1 C++沒有字節類型,可以用unsigned char代替
Short 2 2
Int 4 4
long 8 8
float 4 4
double 8 8
char 2 1
booenaln 1 bool1
--可以看出java和C++的基本類型的長度區別主要在char,在java中這兩個類型佔兩個字節,而在C++中這兩個類型佔一個字節,這是爲什麼呢,關於char很容易解釋,這是因爲java使用了utf-16編碼,目的是使java的char能容納更多類型的字符(比如中文),而C++使用的是ascii編碼,所以只佔用一個字節,這也是爲什麼java出現字節流和字符流的區別的原因。其實C++中也有類似的類型:wchar_t,爲的也是容納更多類型的字符。所以記住這個原因就能記住java的char和C++的char的長度而不會混淆。
Java基本類型和對應的包裝類型
基本類型 包裝類型
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
void Void
--總結 : 除了char和 int的包裝類型比較特別外,其他基本類型都只是把基本類型名的頭字母變成大寫字母而已。Int對應的包裝類型也比較容易記,因爲畢竟常用,char的包裝Character是英文中“字母”的意思。
基礎類型和包裝類型之間的轉化機制(自動裝箱、拆箱機制)
Integer i = 1;//自動裝箱 ---實質上是 Integeri = Integer .valueOf(1);
int a = i;//自動拆箱 ---實質上是 int a = i.intValue();
Character c = 'a';//自動裝箱
char b = c;//自動拆箱
--說白了這種裝箱、拆箱機制就是一種隱式的類型裝換,而這個裝換的幕後工作由編譯器完成。目的是爲了簡化了基本數據類型和相對應對象的轉化步驟。