关于Java基本数据类型那些小细节(变量声明、赋值等)

关于Java基本数据类型那些小细节(变量声明、赋值等)

前提:了解基本类型 https://www.runoob.com/java/java-basic-datatypes.html

一、变量声明

  • 整数型默认int
  • 浮点型默认double

  1、声明float类型

        float f11 = 1;      //赋值整数不会报错,可加f可不加,会自动转换成带精度的数
//      float f12 = 1.0;    //赋值小数会报错,要加上f后缀
        float f13 = 1.0f

 

注意:当进行两个数(整数/浮点数)进行比较,float类型的变量值带f后缀时,有两种情况。(这个细节很容易忽视,就好比字符串比较时,经常会习惯性用==操作符)

  (一)被比较的数为带精度的整数,例:1.0等。

    此时,被比较数不需要加f后缀,也能正确得到比较结果。如下图所示:

在这里插入图片描述

  (二)被比较的数为纯小数,例:1.8等。

    此时,被比较数需要加f后缀,才能正确得到比较结果。如下图所示:

    被比较数不加f后缀时:

在这里插入图片描述

     被比较数加f后缀时:

在这里插入图片描述

  2、声明double类型

//        声明double类型时,可加d后缀可不加,会自动转换为带精度的数
        double d11 = 1;
        double d12 = 1.0;
        double d13 = 1.0d;

 

注意:当进行两个数(整数/浮点数)进行比较时,与纯小数比较时,也有两种情况。(这个情况主要还是和精度有关,一般不容易犯错,但也要注意)

  (一)被比较的数为不带后缀的纯小数,例:1.8等

 

    因为浮点数默认double,不带后缀的纯小数都默认转换为double了,所以能得到正确的比较结果。如下图所示:

在这里插入图片描述

  (二)被比较的数为带后缀f的纯小数,例:1.8f等

    因为double比float精度高,所以不能得到正确的比较结果。如下图所示:

在这里插入图片描述

   3、声明long类型

//        声明long类型
//        long l11 = 444444444444444; //报错,要加上l后缀
        long l12 = 444444444444444l;

  4、局部变量声明时没有初始化就使用,会报错(有点跳戏了,不过和变量声明还是有一丝丝关系啦~~~)

        int a;
        int b = 0;
        int c = 0, d = 0;
//        System.out.println(a);  //未初始化就使用会报错(局部变量)
        System.out.println(b);  //初始化使用不会报错(局部变量)

 

二、类型转换与赋值

  • 向上自动转换
  • 向下强制转换

  备注: byte的类型的范围是 -128 ~ 127 ( -2^(8-1)  ~  2^(8-1) -1 )

  1、赋值问题

   举例:byte赋值

        //直接赋值超出范围报错,如下
//        byte exampleB1 = 128;
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值