JAVA基本数据类型
基本数据类型分为四类八种
类型 | 字节 | 对应包装类 | 取值范围 | 注意事项 |
整型 | ||||
byte | 1 | Byte | -128~127 | |
short | 2 | Short | -32768 ~ 32767 | |
int | 4 | Integer | -2^31-1~2^31 | java中默认整数类型为int |
long | 8 | Long | -2^63~2^63-1 |
当声明long类型变量时后面要加L 例 : long l = 789456123L; |
浮点型 | ||||
float | 4 | Float | 3 .4e-45~1.4e38 |
定义float变量时后面要加F 例 : float f = 23.561F; |
double | 8 | Double | 4.9e-324~1.8e308 | 默认浮点类型为double |
字符型 | ||||
char | 2 | Character | 0~65535 | |
布尔型 | ||||
boolean | Boolean | true/false | java规范中,没有明确指出boolean的大小 |
基本数据类型的一些知识
- long类型
定义long类型变量的时候为什么后面要加一个大写L呢?
1.方便区分数据类型
2.因为整数默认数据类型为int,int占4个字节,double占8个字节,定义一个变量当范围超过int数据类型 的时候如果不在数据后面加一个L编译器就会报错,加L就是把int数据类型强转成long类型。
- float类型
定义float类型变量为什么要在参数后面加上F呢?
1.方便区分
2.因为浮点型默认为double,而double占8个字节,而float占4个字节,而Java中大的数据类型转小的数据类型需要强转,所以后面要加一个F强转。
- 其他知识
java中小的数据类型转大的数据类型可以直接赋值,而大的数据类型转小的数据类型需要强转,
注意:浮点类型不能直接赋值给整数类型,不管占的字节大小,浮点型转整数类型都需要强转,
注意:强转一个数据类型可能会损失这个数的精度,谨慎使用
java基本数据类型运算的一些注意事项
例1:
byte b = 1;
byte b1 = 2;
byte b2 = b+b1;//编译不通过
- 问题:
1.默认整数类型为int,int大小为4个字节,而byte类型大小为1个字节,为什么1可以直接赋值给b呢?
2.b和b1进行运算而为什么不能直接赋值给同一种类型的变量呢?
- 答:
1.因为java自动进行了底层转换,效果和byte b=(byte)1;是一样的。
2.因为b+b2的结果被Java虚拟机转成了int类型,所以不能直接赋值给b2,需要强转。
例2:
float f = 1.2F;
float f1 = 2.4F;
float f2 = f+f1; //编译成功运行不报错
- 问题:
1.默认浮动数为double,double的大小为8个字节,同样都是基本数据类型为什么整型不需要强转,而浮点型需要?而运算的时候f+f1浮点型不需要强转,而整型需要呢?
(我找了好久才找到一个觉得比较可靠的一个答案)
- 答:
虽然整型和浮点型都是基本数据类型,但是他们的处理机制不一样。
如果我的文章有什么错误,或者你有什么好的意见或者是建议,或者有什么不明白,有Java问题需要讨论都可以联系我
QQ : 1833784239
我用java书写人生。