zoukankan      html  css  js  c++  java
  • java数据类型易错点简单总结,欢迎大神前辈补充!谢谢

    数据类型那这边看似简单,花了我很长时间也就是才练到几成”功力“吧。还希望路过的大神在下面补充,菜鸟的我深受感谢!

    首先看两个思考题

    思考题1:请问下面这个有没有问题

    double d = 12.345;  //有问题!!!因为double是8位,float是4位。定义一个double类型数据给float会提示损失精度!
    float f = d;

    思考题2:看看下面两个定义有没有区别呢?
    float f1 = (float)12.345;
    float f2 = 12.345f;    //f1其实是通过一个double类型转换过来的。而f2本身就是一个float类型。

    byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;
    哪句是编译失败的呢?为什么呢?
    b = b1 + b2;是有问题的。
    因为(变量相加,会首先看类型问题),最终把结果赋值的也会考虑类型问题
    ,b1+b2先转为int类型,而赋值时给的是一个byte类型,会报错显示:损失精度问题。

    然而常量相加,首先做加法,((然后看结果是否在赋值的数据类型范围内,如果不是,才报错))。.这里不超过byte(-128-127)的范围,所以没问题,不报错。

    求输出结果:byte b = (byte) 130;

    System.out.println(b);

    分析;首先130超出了byte范围。

    A:获取130这个数据的二进制。又知道计算机中数据的运算都是补码进行的。而要得到补码,首先要计算出数据的二进制。
    00000000 00000000 00000000 10000010这是130的原码,也是反码,还是补码。
    B:做截取操作,截成byte类型的了。
    10000010 这个结果是补码。
    C:已知补码求原码。(我们看到的是数据的原码形式)
    符号位 数值位
    补码: 1 0000010

    反码: 1 0000001

    原码: 1 1111110       输出结果-126

    补充:”+“字符串拼接作用和加法运算容易混淆——

    class DataTypeDemo8 {
    public static void main(String[] args) {
    //直接输出一个字符
    System.out.println('a'); //a
    //输出一个字符和一个整数做加法,先将字符型数据转换成int型数据,再做(加法运算)
    System.out.println('a'+1); //98
    }
    }


    class DataTypeDemo9 {
    public static void main(String[] args) {
    System.out.println("hello"+'a'+1); //helloa1
    System.out.println('a'+1+"hello"); //字符类型先转换成整数类型98,98hello

    System.out.println("5+5="+5+5); //5+5=55(注意这里)
    System.out.println(5+5+"=5+5"); //10=5+5//注意在一个字符串的前面还是一个字符串的后面
    System.out.println("hel"+"l"+"o");//做字符串链接作用
    }
    }应该可以这么记住:单引号引起来的是字符类型+int类型会发生转型;此时+号作用是数学运算。如果双引号引起来内容是字符串,+号作用是字符串拼接。


    今天就到这里,谢谢前辈来评价,补充。谢谢!



  • 相关阅读:
    使用Mongodb存放文件系统的离线栅格数据,供Cesium访问
    Moogose的基本连接以及增删改查操作
    MongoDB
    Linq对列表进行分组,求和,排序
    ArcEngine对属性表的操作
    ArcEngine打开GDB,SHP的方法
    javaweb之JSP+Servlet
    node.js后端之sequelize
    javascript的闭包
    LeetCode 第133场周赛总结
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299924.html
Copyright © 2011-2022 走看看