分析String源码所得

1.String 中没有对+进行重载,java中没有对运算符重载,String的+的操作是在编译的时候new StringBuilder,在调用append方法来进行+操作的。

2.String 源码分析

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])

                            return false;

                    i++;

                }

                return true;

            }

        }

        return false;

    }

分析:

String 的 equals 包含了 “==“ ,双等号比较的是地址,地址相同,内容肯定相同,当地址不相同的时候,比较的是两个字符串中的每一个字符,完全相同则表示相等,返回true,否则返回false。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,486评论 19 139
  • 从一段代码说起: public void stringTest(){ String a = "a"+"b"+1...
    df50382ebd44阅读 1,092评论 0 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,150评论 0 13
  • 《爱情&金钱》 给爱情以金钱,而不是给金钱以爱情。 《错》 你没错,我没错,我们的爱情为什么死了? 《怕》 最怕你...
    何鲸洛阅读 2,593评论 0 0
  • 版权归作者所有,任何形式转载请联系作者。 作者:莫诗逸(来自豆瓣) 来源:https://www.douban.c...
    莫诗逸阅读 2,490评论 0 0