美文网首页
p4-equals系列:java中char类型是怎么判断相等的?

p4-equals系列:java中char类型是怎么判断相等的?

作者: 沉默的小象 | 来源:发表于2021-04-29 22:25 被阅读0次

    ==对比的是栈中的值。栈中保存的是基本数据类型变量,和对象的引用。所以==两边如果是基本数据类型,则比较的是变量值,==两边如果是引用类型,则比较的是堆中对象的内存地址。java有8中基本数据类型,byte,short,int,long,float,double,boolean,char。

    String.java的equals()方法中,可以推测出char类型的值,可以直接用==比较。

        public boolean equals(Object anObject) {
            if (this == anObject) {
                return true;
            }
            if (anObject instanceof String) {
                String anotherString = (String)anObject;
                int n = value.length;
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
                    while (n-- != 0) {
                        if (v1[i] != v2[i]) //从这里可以推测出char类型的值,可以直接用==比较
                            return false;
                        i++;
                    }
                    return true;
                }
            }
            return false;
        }
    

    验证一波

    public class BaseDataTest {
        public static void main(String[] args) {
            byte b1 = 127;
            byte b2 = 127;
            Byte b3 = 127;
            Byte b4 = new Byte("127");
    
            System.out.println(b1 == b2);
            System.out.println(b1 == b3);
            System.out.println(b1 == b4);
    
            char c1 = 'a';
            char c2 = 'a';
            System.out.println("\n" + (c1 == c2));
    
        }
    }
    
    image.png

    相关文章

      网友评论

          本文标题:p4-equals系列:java中char类型是怎么判断相等的?

          本文链接:https://www.haomeiwen.com/subject/rrybrltx.html