美文网首页
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类型是怎么判断相等的?

    ==对比的是栈中的值。栈中保存的是基本数据类型变量,和对象的引用。所以==两边如果是基本数据类型,则比较的是变量值...

  • equals 和 == 的区别

    值类型(int,char,long,boolean等)都是用==判断相等性。对象引用的话,==判断引用所指的对象是...

  • Java 第一节课学习

    1.java中==和equals和hashCode的区别 == 是判断相等运算符,用于比较基本数据类型的值是否相等...

  • JAVA equalse & ==

    关于java里 判断变量是否相等的问题, 基本类型判断时我们用 == 判断的是他们的值是否相等,意味着 int a...

  • Java字符串编码原理以及乱码解决方法

    1 Java字符串编码原理   在Java中,字符的数据类型是char,而char类型的编码是 Unicode 编...

  • 判断java中两个对象是否相等

    基本原理 java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。j...

  • Kotlin学习---数据类型

    1.数据类型 2.==判断值是否相等,===判断内存地址是否一样;;在Java中==用来对比内存地址 3.类型转换...

  • java面试要点

    JAVA java 中char 类型不存储UTF-8 而是存储UTF-16在java中char 占用两个字节 UT...

  • 前端面试题及答案2

    1. == 和=== 的区别? == 是判断值是否相等 === 是判断值和类型是否相等 结果: 2...

  • Java 中==与===的区别?

    =是赋值运算,而==判断值是否相等,===是判断的是值及类型是否完全相等 首先,== equality 等同,==...

网友评论

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

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