变量的类型转换--Java开发入门(六)

在程序中经常会用到不同的数据类型的变量之间的计算和相互赋值,这个时候就会用到变量类型的转换

一、自动类型转换

1.整型和浮点型变量的自动转换

整型和浮点进行计算赋值时,会自动的将数据类型从低转到高。

------------------------------->byte->short->int->long->float->double
byte b = 100;
short s = 200;

s = b;//这里b会自动转成short,然后赋值给s
b = s;//这里提示错误


编辑器会提示:需要的是byte类型,但提供的是short

public static void main(String[] args) {
        byte b = 100;
        short s = 200;
        int i = 300;
        long l = 400;
        float f = 500.55f;
        double d = 600.33;

        s = b;
        i = s;
        l = i;
        f = l;
        d = f;

        System.out.println("b = " + b);
        System.out.println("s = " + s);
        System.out.println("i = " + i);
        System.out.println("l = " + l);
        System.out.println("f = " + f);
        System.out.println("d = " + f);
        
    }

运行结果:

b = 100
s = 100
i = 100
l = 100
f = 100.0
d = 100.0

2.char类型到整型的自动转换

char类型不能自动转换成byte和short类型

public class VariableTypeTransform2 {
    public static void main(String[] args) {
        char c = 'A';
        byte b;
        short s;

        b = c;
        s = c;

    }
}

运行结果:
在这里插入图片描述
提示char型到byte和short不能自动转换。

char类型可以自动转换成int,long,float和double,自动转换时将char类型变量的Unicode码的值付值给相应的变量。

public class VariableTypeTransform2 {
    public static void main(String[] args) {
        char c = 'A';
        int i;
        long l;
        float f;
        double d;
        
        i = c;
        l = c;
        f = c;
        d = c;

        System.out.println("c = " + c);
        System.out.println("i = " + i);
        System.out.println("l = " + l);
        System.out.println("f = " + f);
        System.out.println("d = " + f);
    }
}

运行结果:

c = A
i = 65
l = 65
f = 65.0
d = 65.0

二、强制转换

在前面提到的当变量类型从低到高赋值时会自动转换。而从高到低赋值时会出现错误。那么如果将变量的值从高到低赋值呢?就要用到强制转换。
转换的方式:
(type)var; type是要转换成的类型,var是待转换的变量。
如:(int)s 把变量s的类型强转换成int

public class VariableTypeTransform3 {
    public static void main(String[] args) {
        byte b;
        short s = 100;
        char c = 'a';

        b = (byte)s;
        s = (short)c;

        System.out.println("b = " + b);
        System.out.println("s = " + s);
    }
}

运行结果:

b = 100
s = 97

注1: 强制转换时两个类型要是可以兼容的。
注2: 转换过程中可能会产生溢出。

三、字符串的转换

我们在代码的例子中也多次用到字符串的转换。整型,浮点,char, 布尔型的变量都可以直接和字符串的类型相加,即可自动转为字符串类型。

int i = 100;
System.out.println("i = " + i);

"i = “,这个字符串和变量b相加后会把变量的值变成字符串"100”,然后再把两个字符串拼接起来变成:“b = 100”
所以上述代码最终会输出

b = 100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小亮点科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值