语雀原文链接
文章目录
- 1、数据类型分类
- 2、基本数据类型
- 2-1、布尔型boolean
- 2-2、字符型char
- 2-3、整型 byte short int long
- 2-4、浮点型float double
- 3、基本类型转换
- byte特例
- char特例
1、数据类型分类
- Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型
- 数据类型分为两种:基本数据类型和引用数据类型
- 在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应
2、基本数据类型
- 字节:Byte,计算机文件大小的基本计算单位;
- 位:Bit,二进制的一位0或1
- 1KB = 1024 Byte = 1024 * 8 Bit
2-1、布尔型boolean
- boolean:布尔型,只能取 true false
- JVM规范中,boolean变量作为int处理,也就是4字节;boolean数组当做byte数组处理,占用1Byte
boolean aa = true;
boolean bb = false;
System.out.println(aa);
System.out.println(bb);
2-2、字符型char
- char:字符型
- 字节大小:2 Byte
- 2Byte:范围0~2^16-1 (65535)无负数
- ASCII:American Standard Code Information Interchange美国标准信息交换码128个
- Unicode:万国码,包含了世界上其它国家的语言字符,java采用的就是unicode码
// A
char a = 65;
// A
char b = 'A';
2-3、整型 byte short int long
- byte:字节型(1Byte),范围-128(1000 0000)~127(0111 1111)
- short:短整形(2Byte), -215~215-1
- int:整形(4Byte),-231~231-1
- long:长整形(8Byte),-263~263-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);
2-4、浮点型float double
- float:单精度小数(4Byte)
- double:双精度小数(8Byte)
float f1 = 1.0; //java: 不兼容的类型: 从double转换到float可能会有损失
float f2 = 1.0f;
float f3 = 1.0F;
double d1 = 1.0;
double d2 = 1.0d;
double d3 = 1.0D;
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;
byte特例
- byte相关强转
- 整型变量若在byte类型的保存范围内,可以直接赋给byte变量,不用强转;
- 整型变量若不在byte类型的保存范围内,必须强转;
// byte 取值范围 -128~127
// int 赋值给byte,应该强转,但是在byte范围内则不需要强转
byte a = 127;
// 不在范围内需要强转.最终的值是-128
// int 128 的二进制 00000000 00000000 00000000 10000000
// 强转byte 1000 0000,反码就是 0111 1111 原码1000 0000就是-128
byte b = (byte) 128;
System.out.println(b);
char特例
- char 类型与int类型互相转换
int aa = 65;
int bb = 'A';
char cc = 'A';
char dd = 65;