T:== 与 equals

int a = 10 ;
        int b = 10 ;
        int c = 200 ;
        int d = 200 ;

        Integer i1 = 10 ;
        Integer i2 = 10 ;
        Integer i3 = 200 ;
        Integer i4 = 200 ;

        String str1 = "abc%%%%%%";
        String str2 = "abc%%%%%%";
        String s1 = new String("abc%%%%%%");
        String s2 = new String("abc%%%%%%");

        //首先:==比较的是基本类型时,比较值;比较的是引用类型时,比较的时内存地址值;
        //第二:String new对象后,会在对内存中开辟对象空间。不new,从常量池取
        //第三:Java的8种基本类型(Byte, Short, Integer, Long, Character,
        //      Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池,
        //      但是它们只在大于等于-128并且小于等于127时才使用常量池。
        //第四:关于String:   
        //       1.单独使用""引号创建的字符串都是常量,编译期就已经确定存储到String Pool中;
        //
        //      2,使用new String("")创建的对象会存储到heap中,是运行期新创建的;
        //
        //      3,使用只包含常量的字符串连接符如"aa" + "aa"创建的也是常量,编译期就能确定,已经确定存储到String Pool中;
        //
        //      4,使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在heap中;
        System.out.println(i1 == i2);//true
        System.out.println(i1.equals(i2));//true  常量池

        System.out.println(i3 == i4);//false
        System.out.println(i3.equals(i4));//true

        System.out.println(s1 == s2);//false
        System.out.println(s1.equals(s2));//true

        System.out.println(str1 == str2);//true
        System.out.println(str1.equals(str2));//true

        System.out.println(a == b);//true
        System.out.println(c == d);//true

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值