第六节 类型转换

同类型之间转行

精度小的可以往精度大的转换。
从大到小顺序
double > float > long > int > short(char) > byte

隐式转换

低精度往高精度转换

byte b = 3;
int c = b;

唯一的缺点就是浪费精度。
上述byte b=3;一个字节在农村中,转换成int,然而int是4个字节相当于3个字节浪费了。

强制转换

高精度转低精度要强制转换
alt

强转语法:

目标类型变量=(目标数据类型)源数据

 byte b = a;
 //所以要强转
 byte c = (byte) a;

这种强制转换可能会导致精度损失,比如

如下是没问题:

 public static void main(String[] args) {
        int a = 127;
        byte c = (byte) a;
        System.out.println("a = "+ a);
        System.out.println("c = "+ c);
    }

打印结果

a = 127
c = 127

如下就有问题:

 public static void main(String[] args) {
        int a = 128;
        byte c = (byte) a;
        System.out.println("a = "+ a);
        System.out.println("c = "+ c);
    }

打印结果:

a = 128
c = -128

结论或导致精度减少。因为byte范围是-128-127之间。

不同类型之间转换

java中对八种基本有对应的包装类,通过类有对应的方法,可以将String数据转换成基本数据类型。

alt

String 转基本数据

static :有static修饰的方法直接通过类名调用。
语法:类名.方法名();
比如String转:

  String a = "12";
  int b = Integer.parseInt(a);
       Integer.parseInt("");
       Byte.parseByte("");
       Short.parseShort("");
       Double.parseDouble("");
       //等等

基本数据转String

public static void main(String[] args) {
      int a = 2;
      long b = 5;
      char c = 'd';
      //可以通过连接“”转成string
      String d = a+"";
      //valueOf可以穿八种基本类型
      String e = String.valueOf(a);
    }

上述String.valueOf(a)和 Integer.parseInt("")

都是通过类名.方法名进行调用,因为这些方法都是static修饰的。
注意:static修饰的方法可以通过类名.方法名调用。

作者简介:一个有故事的程序员,我的微信号qiushuzhao222,欢迎大家找我聊天,记录你我的故事。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值