1、数据类型分类
- Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型
- 在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应
2、基本数据类型
- 字节:Byte,计算机文件大小的基本计算单位;
- 位:Bit,二进制的一位0或1
1KB = 1024 Byte = 1024 * 8 Bit
布尔型
boolean:布尔型,只能取 true false
JVM规范中,boolean变量作为int处理,也就是4字节;boolean数组当做byte数组处理,占用1Byte
boolean aa = true;boolean bb = false;System.out.println(aa);System.out.println(bb);
char
char:字符型
- 2Byte:范围0~2^16-1 (65535)无负数
- ASCII:American Standard Code Information Interchange美国标准信息交换码128个
- Unicode:万国码,包含了世界上其它国家的语言字符,java采用的就是unicode码
```
// Achar a = 65;// Achar b = 'A';
<a name="su6Ts"></a>#### byte short int long- 整型默认为int- byte:字节型(1Byte),范围-128(1000 0000)~127(0111 1111)- short:短整形(2Byte), -2^15~2^15-1- int:整形(4Byte),-2^31~2^31-1- long:长整形(8Byte),-2^63~2^63-1
byte dd = 125;System.out.println(dd);short ee = 178;System.out.println(ee);int ff = 1122;System.out.println(ff);long gg = 11L;System.out.println(gg);
<a name="fUgnW"></a>#### float double- 小数的默认类型为double- float:单精度小数(4Byte)- double:双精度小数(8Byte)
float hh = 1.2F;System.out.println(hh);double jj = 1.34D;System.out.println(jj);
<a name="vrs8r"></a>### 3、基本类型转换- 整数默认int,小数默认double- 容量排序byte > short > int > float > long > double;boolean不能转换- 自动类型转换:容量小的类型自动转换成容量大的类型- 强制类型转换:容量大的类型转换成容量小的类型,需加强制转换符,会造成精度降低或数据溢出
/*** 自动类型转换:容量小的类型自动转换成容量大的类型*/long ff = 100;/*** 强制类型转换:容量大的类型转换成容量小的类型*/float aa = 1.2;//报错float bb = 1.2f;float cc = (float) 1.2;
<a name="gU1hD"></a>#### byte特例- byte相关强转- 整型变量若在byte类型的保存范围内,可以直接赋给byte变量,不用强转;- 整型变量若不在byte类型的保存范围内,必须强转;
// byte 取值范围 -128~127// int 赋值给byte,应该强转,但是在byte范围内则不需要强转byte a = 127;// 不在范围内需要强转.最终的值是-128// int 128 的二进制 00000000 00000000 00000000 10000000// 强转byte 1000 000,反码就是 1111 1111 原码1000 000就是-128byte b = (byte) 128;System.out.println(b);
<a name="tndLB"></a>#### char特例- char 类型与int类型互相转换
int aa = 65;int bb = 'A';char cc = 'A';char dd = 65;
```
