• java里的基本数据类型


      java里一共有八大数据类型 boolean(未定) char(2字节) byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节),还有与之对应的包装类 Boolean Character Byte Short Integer Long Float Double, 基本数据与包装类之间的转换叫做装箱与拆箱

            Integer i = new Integer(10);//装箱这个在java1.5之前只能这样new一个出来
            Integer i1 = 10;//java1.5之后可以直接这样初始化一个integer对象出来;
            
            Integer j = new Integer(10);
            int k = j; //这叫做拆箱
        

    int i 与Integer i 到底有什么区别呢,看程序:

            Integer n1 = 127;
            Integer n2 = 127;
            Integer n3 = new Integer(10);
            Integer n4 = 10;
            System.out.println(n1.equals(n2));
            System.out.println(n1==n2);
            
            System.out.println(n3==n4);
            System.out.println(n3.equals(n4));
        

    结果是true
         true
         false
         true
    java里"=="比较的是对象的地址,而equal比较的是内容,n3与n4比较的结果不以外,那么为什么n1跟n2 "=="比较也是true呢,看数值127 是byte的最大值,java里对于byte范围的数据因为使用多,所以这个对象会放到内存中保存,n1与n2指向的是同一个内存地址,但是超过127或者小于-128结果就是

            Integer n1 = -129;
            Integer n2 = -129;
            Integer n3 = new Integer(10);
            Integer n4 = 10;
            System.out.println(n1.equals(n2));
            System.out.println(n1==n2);
            
            System.out.println(n3==n4);
            System.out.println(n3.equals(n4));
        

    true
    false
    false
    true

    包装类有一些常用的方法,主要就是数据类型转换,除了boolean char之外的构造方法除了构造方法有两种,不过Float有三种。

    数制转换方法,用Integer做例子。byteValue();doubleValue();floatValue;intValue;shorValue;这些方法都是拆箱,返回的都是基本数据类型。

    反过来 valueOf(int i)是放回包装类的。

    ps:基本数据类型转换遵循的原则:

      1 容量小的类型自动转换成容量大的数据类型,数据类型按照容量大小排序是

        byte,short,char<int<long<float<double; 注意这是是容量大小不是所占字节数

      2 容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但是可能造成精度降低,或者溢出。

      3 有多种数据类型混合运算是,系统将自动所有数据转换成最大的那个类型,然后进行运算。

      4 实数常量,系统默认为double;

      5 整数常量,系统默认为int;

    所以long lg = 10000000000l;后面要加一个l,不然系统会保存因为默认为int就超出范围了

    这个只不过是自己的流水账,偶尔有一些心得,错误的地方概不负责
  • 相关阅读:
    pl2303 驱动
    tomcat 启动脚本
    Linux下Shell命令加减乘除计算
    定时删除文件夹"$1"下最后修改时间大于当前时间"$2"天的文件
    mysql 拼接字符
    jquery iframe父子框架中的元素访问方法
    在线工具
    js对数组对象的操作以及方法的使用
    HTML 设置字体
    10月1号 备忘录
  • 原文地址:https://www.cnblogs.com/ashitaka/p/5252500.html
Copyright © 2020-2023  润新知