Java数据类型拓展及==与equals差别

数据类型拓展

public class Demo1 {
   public static void main(String[] args) {
       //整数拓展:进制 二进制0b     十进制     八进制0   十六进制0x
       int i=10;
       int i2=010;     //八进制0
       int i3=0x10;    //十六进制0x
       int i4=0b10;    //二进制0b

       System.out.println(i);//10
       System.out.println(i2);//8
       System.out.println(i3);//16
       System.out.println(i4);//2
       //=========================================
       //浮点数拓展
       //float     表示数据范围有限,舍入误差,损失精度
       //double
       //银行业务:用BigDecimal 数学工具类
       //最好避免浮点数进行比较!!!
       float f=0.1f;
       double d=0.1;
       System.out.println(f==d);//false

       float f1=23333333333f;
       float f2=f1+1;
       System.out.println(f1==f2);//true
       //===============================================
       //字符拓展
       char c1='a';
       System.out.println(c1);//a
       System.out.println((int)c1);//强制转换 //97
       //字符的本质还是数字

       //编码 Unicode 2字节 0-65535
       //U0000 UFFFF
       char c2='\u0061';
       System.out.println(c2);//a
       //=============================================
       //内存 对象
       String s1=new String("Hello World!");
       String s2=new String("Hello World!");
       System.out.println(s1==s2);//false
       System.out.println(s1.equals(s2));//true

       String s3="Hello World!";
       String s4="Hello World!";
       System.out.println(s3==s4);//true
       System.out.println(s3.equals(s4));//true
  }
}

 

==与equals差别

  1. ==:比较基本数据类型的变量,则直接比较 “值”是否相等;

    比较引用类型的变量,则比较的是所指向的对象的地址。

    2. equals:不能作用于基本数据类型的变量

    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

    诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

 

posted @ 2021-05-12 15:10  哈呼呼haha  阅读(299)  评论(0)    收藏  举报