数据类型和分类
-
java数据类型图:
-
-
数据类型占用字节表
-
整数类型的应用:
- 代码
- ```java
package com.cen.code;
public class PlasticType {
/*
*虽然byte、short、int、long 数据类型都是表示整数的,但是它们的取值范围可不一样。
byte 的取值范围:-128~127(-2的7次方到2的7次方-1)
short 的取值范围:-32768~32767(-2的15次方到2的15次方-1)
int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)
long 的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)
由上可以看出 byte、short 的取值范围比较小,而long的取值范围时最大的,所以占用的空间也是最多的。
* int 取值范围基本上可以满足我们的日常计算需求了,所以 int 也是我们使用的最多的一个整型类型。
*/
public static void main(String[] args){
int a = 1;
// int a1 = 2147483648;
long b = 1;
// long b1 = 9223372036854774807;
short c = 32767;
// short c1 = 32768;
byte d = 127;
// byte d1 = 128;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
// System.out.println(a1);
// System.out.println(b1);
// System.out.println(c1);
// System.out.println(d1);
}
}
```
- ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200728215336189.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQzNDIwNQ==,size_16,color_FFFFFF,t_70)
- 代码的运行结果
- ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200728215356971.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQzNDIwNQ==,size_16,color_FFFFFF,t_70)
- #### 字符类型:(char)
- 字符类型的代码应用
- 代码
- #### 布尔型(boolean)
-
boolean 没有什么好说的,它的取值就两个:true 、false 。
-
//boolean 没有什么好说的,它的取值就两个:true 、false 。 boolean bue = false; boolean bue1 = true; System.out.println(bue+" "+bue1);
-
输出结果为:
- #### 各个类型之间存在自动转换
》int--> float
》long--> float
》long--> double
》float -->double without strictfp
- 强制转换
-
如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。强制转换采用转换操作符()。严格地说,将byte转为char不属于narrowing conversion),因为从byte到char的过程其实是byte–>int–>char,所以widening和narrowing都有。强制转换除了可能的精度损失外,还可能使模(overall magnitude)发生变化。强制转换格式如下:
(target-type) value;
如果整数的值超出了byte所能表示的范围,结果将对byte类型的范围取余数。例如a=256超出了byte的[-128,127]的范围,所以将257除以byte的范围(256)取余数得到b=1;需要注意的是,当a=200时,此时除了256取余数应该为-56,而不是200。
将浮点类型赋给整数类型的时候,会发生截尾(truncation)。也就是把小数的部分去掉,只留下整数部分。此时如果整数超出目标类型范围,一样将对目标类型的范围取余数。