老生常谈…对于大佬们根本都不用看的博客!
对于像我这种菜鸡还是得一步一步的来!如果有错误请大佬们指点指点!
Java中的基本数据类型
Java中蕴含着8种基本类型,分别为:
- 6种数字类型(byte、short、int、long、float、double)
- 1种字符类型(char)
- 1种布尔型(boolean)
基本类型 | 位数 | 字节 | 默认值 | 取值范围 |
byte | 8 | 1 | 0 | -128 ~ 127 |
short | 16 | 2 | 0 | -32768 ~ 32767 |
int | 32 | 4 | 0 | -2147483648 ~ 2147483647 |
long | 64 | 8 | 0L | -9223372036854775808 ~ 9223372036854775807 |
char | 16 | 2 | 'u0000' | 0 ~ 65535 |
float | 32 | 4 | 0f | 1.4E-45 ~ 3.4028235E38 |
double | 64 | 8 | 0d | 4.9E-324 ~ 1.7976931348623157E308 |
boolean | 1 | false | true、false |
注意:
- Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析。
- char a = ‘h’ char是单引号,String a = “hello” String是双引号。
- Java 的基本类型所占存储空间的大小具有不变性。
Java种的基本包装类型
这八种基本类型都有对应的包装类分别为:
Byte、Short、Integer、Long、Float、Double、Character、Boolean
除了部分包装类,其他都是基本类型首字母变大写。
其中:包装类型不赋值就是 Null ,而基本类型有默认值且不是 Null。
Java 基本类型的包装类的大部分都实现了常量池技术。
Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据。
Character 创建了数值在 [0,127] 范围的缓存数据。
Boolean 直接返回 True or False。
Integer i = 1;
Integer n = Integer.valueOf(1);
System.out.println(i == n); //true
Integer i = 200;
Integer n = Integer.valueOf(200);
System.out.println(i == n); //false
因为当自动装箱的值在-128~127中是,大家拿到的是缓存中提前new好的那个对象,所以其内存地址是相同的;而大于这个范围时,内存地址则不同了,所以返回的是false。
注意: 所有整型包装类对象之间值的比较,全部使用 equals 方法比较。
装箱与拆箱
顾名思义:
使用包装类就是装箱。
使用基本类就是拆箱。
包装类和基本类的转换
使用包装类型的valueOf()方法就可以进行装箱。
使用包装类型的xxxValue()方法就可以进行拆箱。
注意: 频繁的转换会影响性能。