java基础数据类型
在java语言中,根据变量的类型来为变量分配存储空间,分配的空间只能用来储存该类型数据。java提供的内置数据类型就是我们俗称的基础数据类型,分别是六种数字,一种字符,和一种布尔值。
当类的成员是基础数据类型却没有赋值时,会使用默认值
| 数据类型 | 位数(bit) | 默认值 | 范围 |
|---|---|---|---|
| byte(字节) | 8 | 0 | -128 至 127 |
| short(短整型) | 16 | 0 | -32768 至 32768 |
| int(整型) | 32 | 0 | -2,147,483,648 至 2,147,483,647 |
| long(长整型) | 64 | 0L | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 |
| float(单精度) | 32 | 0.0F | 单精度 |
| double(双精度) | 64 | 0.0D | 双精度 |
| char(字符) | 8 | 空 | \u0000 至 \uFFFF,即0-65536 |
| boolean(布尔值) | 8 | false | true,false |
数字类型
关于取值范围
在java中,一个字节(byte)有八位(bit),因为是二进制,每个bit记录0或者1。在整型存储中第一位表示正数还是负数,后面的几位就存储数据
比如byte类型,是一个字节,也就是八个bit,记录八位,第一位是表示正负数,剩下七位记录数值,即最大值为0B01111111 = 127。而0B10000000= -128,所以byte类型的范围是 -128 至 127
注意,在java中,直接使用的字面量整数数字都是int,编写如下代码就会发生编译异常,因为int+byte=int,所以提示类型错误
byte a = 2;
byte b = a + 1;
浮点数
float和double都是浮点数,在java记录浮点数中,记录的是符号+指数+尾数,即对于float类型,八位字节,也就是32位(bit),1位表示符号,8位指数,23位尾数,注意:使用浮点数的字面量时都是double
double a = 12345;
double b = 0.12346;
double c = 12.64D;
float e = 4154F;
float f = 1.531F;
float g = 156.32;//该赋值是double赋值给float,会提示编译错误
布尔值(boolean)
Java对逻辑值有一个布尔类型。这是所有关系运算符返回的类型,他只能有两个值之一,true和false,在java中,布尔值不能转换为任何数字表示,true不是1,false也不是0
在类中的成员使用布尔类型,但却没有进行赋值时,会使用默认值false
字符(char)
char在java中用单引号表示,在存储中记录的是单一的16位Unicode编码,也就说,可以直接将char类型转换成int类型,通过这种方式,我们有时可以通过Unicode编码对char类型变量进行操作和判断 char类型的初始化不能赋值空。也就是 char a ='';
char a = 'a';
char b = 'B';
System.out.println(a);//-->a
System.out.println((int)b);//-->66
System.out.println(a + 1);//-->98
System.out.println((char)(a + 1));//-->b