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;//自动拆箱
--说白了这种装箱、拆箱机制就是一种隐式的类型装换,而这个装换的幕后工作由编译器完成。目的是为了简化了基本数据类型和相对应对象的转化步骤。