Java基础之类型转换

类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

------------------------------------------byte ->short -> char ->int ->long->float->double

运算中,不同类型的数据先转换为同一类型,然后进行运算。

为什么 float 的四个字节比 long 类型的8个字节大,因为小数的优先级一定大于整数。

强制类型转换

从蓝色方框中可以看到,int 类型转换到了 byte 类型,int 的输入是 128 ,输出是128。而 int转换为 byte 类型之后,输出竟然为 -128。这是因为,内存溢出,为什么会内存溢出,是因为 高到低,这个高低是指它的容量。就像大瓶子水倒入小瓶子中会存在溢水现象。

这种情况就是叫做 强制类型转换。那么强制类型转换是如何进行的呢?

int i = 128   // 首先定义 int 中 i 的值为 128
    byte b = (byte) i ; // 通过把想要转换的类型 ( byte )然后后面加一个 变量名 i

在这里插入图片描述

再如下图,首先可以知道,23.7是 float 类型,-48.59f 是 double 类型。那么从图中可知,两个都是浮点数类型都被强转为 整数 int 类型,属于 高到低。两个浮点数在被强转为 int 类型之后。数值都发生了改变。输入分别为 23.7 和 -48.59f ,被转输出后,为 23 和 -48 . 由此可知,数据的精度受到了影响。

在这里插入图片描述

/*
从上面两个图可知的几个注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.把高容量转换为低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
*/

再此再举一个例子,如下图,让 字符类型 char 加 int 整数类型。char 转成 int 。由于 a=97 , 将 int 强转为 char 之后 ,输出得到 b. 因为 a + 1 = 98,b =98。

在这里插入图片描述

再如图,就是说,当操作数比较大的时候,要注意溢出问题,如下图 :1000000000。那么又为好区分。那么可以用 下划线 _ 来解决。并且下划线不会被输出。
在这里插入图片描述

自动类型转换

低容量类型转高容量类型,就是自动类型转换。

从下面这一张图,可以发现,money 乘以 years 输出的值 溢出,int 的容量不够。后来用 long 来解决,可是发现还是不能正常输出 2000000000 的值,是因为默认已经是 int,即便是转换后也是一样存在问题。那么我们就把years 这个变量值转换为 long 。就可以解决这个问题了。

在这里插入图片描述

注意点拓展总结

我们在,运行项目,会出现下面这种情况。

1|Error:java:无效的源发行码

这是因为 jdk 的版本需要修改过来。

如何修改: file–>setting–>Build,Execution,Deployment–>compiler–>Java compiler

在这里插入图片描述

这样修改之后,就正常了。

compiler

[外链图片转存中…(img-Nhm5cDHD-1632541890121)]

这样修改之后,就正常了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值