【Java】基本数据类型与原始类型
参考博客:
https://www.jb51.net/article/123726.htm
https://blog.csdn.net/weixin_30877775/article/details/114249254
HashMap数据类型使用注意-不能使用基本数据类型
问题:
今天使用HashMap时,发现不能使用基本数据类型
HashMap<String, int> som = new HashMap<String, int>();
发现提示错误:
Syntax error on token "int", Dimensions expected after this token
后来从网上找到了答案,HashMap不能使用基本数据类型,没有理解引用类型和原始类型。故做如下总结
引用类型和原始类型
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型 | 封装类 | 所占用空间大小 | 数的范围 |
---|---|---|---|
boolean | Boolean | false/true 1字节 | |
char | Character | 2字节(C语言中是1字节) | 0—65535 |
byte | Byte | 1字节 | -128—127 |
short | Short | 2字节 | -32768—32767 |
int | Integer | 4字节 | -2147483648—2147483647 |
float | Float | 4字节 | 3.4e-038~3.4e+038 |
double | Double | 8字节 | 1.7e-308~1.7e+308 |
long | Long | 8字节 | -263~263-1 |
Java中共有8种基本数据类型
byte short int long float double char boolean
其中,byte shot int long 属于整数型, c h a r char char属于字符串类型,float double属于浮点数类型 b o o b l e a n booblean booblean 属于布尔型
- long型值可以赋给long、float、double类型的变量;
- float型值可以赋给float、double类型的变量;
- double型值只能赋给double类型变量
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法。
它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
基本数据类型注意事项:
1、未带有字符后缀标识的整数默认为int类型;
未带有字符后缀标识的浮点数默认为double类型。
2、如果一个整数的值超出了int类型能够表示的范围,则必须增加后缀“L”(不区分大小写,建议用大写,因为小写的L与阿拉伯数字1很容易混淆),表示为long型。
3、带有“F”(不区分大小写)后缀的整数和浮点数都是float类型的;带有“D”(不区分大小写)后缀的整数和浮点数都是double类型的。
4、编译器会在编译期对byte、short、int、long、float、double、char型变量的值进行检查,如果超出了它们的取值范围就会报错。
5、int型值可以赋给所有数值类型的变量;