JAVA中的数据类型(一)基本数据类型
java内置数据类型有八种,其中六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
Unicode编码
Unicode编码bai是用16位无du符号的二进制数来进行zhi编码的 0000 0000 0000 0001,这16位二进制就dao对应一个字版符,无符号位权就是说都是正整数,在二进制中一般以1开头的一串二进制是负数,以0开头的一串二进制数是正数,所以一般二进制的第一位就是他的符号位,无符号就是不考虑这种情况,一位二进制有两种可能不是0就是1,那两位二进制就有四种可能,00,01,10,11,即两位的二进制就能编码出4种字符,所以一次类推,16位就能编码出2^16种字符
-
布尔(boolean)
- 有两个值:true和false,默认情况下为false。如 boolean bool=true;
-
字符(char)
- char类型是一个单一的 16 位 Unicode 字符 占二字节;
- 取值范围 \u0000(即为0)~ \uffff(即为65,535);
- char 数据类型可以储存任何字符;
- 例子:char letter = ‘A’;。
-
byte
- byte 数据类型是8位、有符号的,以二进制补码表示的整数 占用一字节内存;
- 取值范围 -128(-2^7)~ 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
-
short
- short 数据类型是16位 有符号的以二进制补码表示的整数 占用两个字节
- 取值范围 -2^15 ~ 2^15-1;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000
-
int
- int 数据类型是32位、有符号的以二进制补码表示的整数 占用四字节;
- 取值范围 -2,147,483,648(-231)2,147,483,647(231 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000
-
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数 占用八字节;
- 取值范围 -9,223,372,036,854,775,808(-2^63)~9,223,372,036,854,775,807(2 ^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
- "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
-
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 取值范围 -3,4E38 ~ 3.4E38;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
-
double:
- double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- 取值范围 -1.7E308 ~ -1.7E308;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 例子:double d1 = 123.4。
当赋值超过数据的取值范围的时候比如
public class Demo{
public static void main(String args []){
int a = 2147483647;//定义一个int型变量a的值为int型能够保存的最高值
System.out.println(a + 1); //输出-2147483648
}
}
我们知道int的最大值为2147483647,那为什么加一之后得到的结果是-2147483648 这个最小值呢,再看下面的代码
public class Demo{
public static void main(String args []){
int a = 2147483647;//定义一个int型变量a的值为int型能够保存的最高值
System.out.println(a + 2); //输出-2147483647
}
}
这说明一个数据类型的最大值和最小值是一个循环,也就是说在最大值的基础上再增大数值或者在最小值的基础上再减小数值,会跳到相反的最值上面。即可理解为2147483647的下一个数为-2147483648 这样就可以对输出的数进行判断
如果我们需要对已经达到最值的数在进行操作可以进行数据转化,将数据小的转化成大的
byte n=127;
//转化成int 类型
int a=(int)n;
这样就扩大的n的储值范围