栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java1:数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java1:数据类型

一、数据类型

数据类型简单来说就是一个放东西的箱子。数据类型分为基本数据类型与引用数据类型。

1.基本数据类型

基本数据类型有8个:byte, short, int, long, float, double, char, boolean。

整数型:byte, short, int, long

这些都是存整数的。

数据类型范围大小包装类默认值
byte[-128,127]1字节Byte0
short[-32768,32767]2字节Short0
int[-2147483648,2147483647]4字节Integer0
long

[-9223372036854775888,

9223372036854775887]

8字节Long0L

示例1:

byte b = 88;
long l = 9999999999999L;
long l2 = 9999999999999;

请注意,示例1第3行是错误的!

因为你写下一个常数,编译器会默认是int类型。可是第3行的数值已经超出int类型的最大值,所以是无法编译通过的。正确的写法是第2行那样,再数值末尾添上L(或l,但是这样容易与数字1混淆)。

上面这段代码看起来很正常,但是10行却出现了问题。

因为l2的类型比i2更“大”,有可能发生数值的溢出,比如:

l3的值明显大于int类型的最大值,这样一定会发生数值溢出。 

但是如果想让一个long值强行转为int,怎么办?我们可以这么做:

在类型较“大”的值前面加一个小括号,括号里写上你想转换成的类型。这种方式我们称为“强制转型”。

强制转型也有风险。

 上图,我们发现i3的值是负数!因为int类型无法存储比最大值还要大的值,就溢出了。

可是为什么long类型的l3值也是负数呢?因为13行等号右边进行运算的时候已经溢出了,解决方式是:

现在就正常了。

总结一下,进行强制转型时一定要注意数值的溢出。

整型数字进行除法运算时会自动将结果向下取整。如果除数是0,就会出现异常(不是编译出错)。

浮点数型:float, double
数据类型范围大小包装类默认值
float

[1.4E-45,

3.4028235E38]

4字节Float0.0F
double

[4.9E-324,

1.7976931348623157E308]

8字节Double0.0

浮点数就是小数。

一个浮点数默认是当作double类型来处理的。如果想要使用float的浮点数,需要在数后面添上F(或f)。

一个正浮点数除以0的结果是正无穷,一个负浮点数除以0得到的结果是负无穷,0.0除以0的结果是NaN(Not a number,不是一个数字)。NaN不等于它本身。

前文提到,整型除法结果自动向下取整。那如果不想向下取整呢?

将其中一个数转成浮点数就行了。

上面的图片也可以看出,浮点数也存在强制转型。

另外,浮点数有很大的问题,一些数据最好不要使用浮点数进行存储。

字符型:char 

每个字符都只包含一个“字”。

 布尔型:boolean

boolean占1字节,只支持true或false值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号