首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

String的==和equals()

System.out.println((b+c)==MESSAGE); } } 输出: true false 原因: 1,字符串在java中存储在字符串常量区中 2,==判断的是对象引用是否是同一个引用,判断字符串相等要用equals...栈内存的一个特点是数据共享,这样设计是为了减小内存消耗,前面定义了i=1,i和1都在栈内存内,如果再定义一个j=1,此时将j放入栈内存,然后查找栈内存中是否有1,如果有则j指向1。...当然不等,s和w指向堆内存中不同的String对象。如果判断两个String对象相等呢?用equals方法。 说了这么多只是说了这道题的铺垫知识,还没进入主题,下面分析这道题。...也就是说 String a = “tao” + “bao” ;和String a = “taobao” ;编译出的字节码是一样的。...它会根据堆内存中对象的值,去查找String池中是否有相同的字符串,如果有就将变量指向这个string池中的变量。

31340
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    String、StringBuffer、StringBuilder有什么区别?

    String:字符串常量String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。...可见,String 直接实现了 CharSequence 接口,StringBuilder 和 StringBuffer 都是可变的字符序列,它们都继承于 AbstractStringBuilder,实现了...因此,String、StringBuffer 和 StringBuilder 它们的主要区别有以下四点:不可变性:String 对象是不可变的,一旦创建就不能被修改。...任何对 String 对象的操作都会返回一个新的字符串对象。StringBuffer 和 StringBuilder 是可变的,可以在其上执行添加、插入、修改和删除等操作,而不会创建新的对象。...线程安全性:String 是线程安全的,因为它的不可变性,多个线程可以同时访问一个 String 对象而不会出现问题。

    56021

    String、StringBuffer、StringBuilder 有什么区别?

    String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。...StringBuilder 是 Java 1.5 中新增的,在能力上和 StringBuffer 没有本质区别,但是它去掉了线程安全的部分,有效减小了开销,是绝大部分情况下进行字符串拼接的首选。...String类为什么是immutable(不可变的) 不可变类指的是对象一旦创建成功,就无法改变对象的值。JDK中很多类设计为不可变的Integer,Long和String等。...* * @param original * A {@code String} */ public String(String original...string类为不可变对象的好处 字符串常量池的需要 String aaa= “someString”; String bbb = “someString”; 这两个对象指向同一个内存,字符串常量池的好处是

    35120

    C#基础知识系列三(类和结构体、String和StringBuilder、equals和==)

    前言    这一节主要来了解一下类和结构体之间的异同点、以及针对String和StringBuilder的用法、equals和==,其实可以看出很多地方都用到了上一节的值类型和引用类型、堆栈和装箱拆箱操作吧...abstract,protected,sealed修饰   4.Struct变量使用完之后就自动解除内存分配,Class实例有垃圾回收机制来保证内存的回收处理   5.继承性。...  2.和类一样可以继承自接口 String和StringBuilder   String 对象是不可改变的。...而字符串是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。...因此在上面的例子中,字符串a和字符串b的两个比较是相等的。 而g.equals(h)用的是sting的equals()方法故相等(多态)。

    52140

    终结篇:==和equals有什么区别?

    == 和 equals 有什么区别?这个问题本身不难,但是被问到的频率很高,且大部分人的回答都不够全面,让人听了有种“恨铁不成钢”的感觉,所以今天咱们就来好好聊聊这个问题。...但是,在 JDK 中的其他类中通常会重写 equals 以实现具体的值比较,例如 Integer 中的 equals 和 String 中的 equals 等,如下源码所示。...2.考点分析 所以,对于 Object 来说,== 和 equals 都是一样的,都是用来对比两个对象的引用是否相同的,而其他 Java 中的类中,如 String 或 Integer 等,通常都会重写...3.知识扩展 如果我们自定义一个类,并且想和 Integer 或 String 中的 equals 一样,用其对比值而非引用是否相同的实现代码如下: public class Person {...equals 让其变为值比较,而非引用比较,如 Integer 和 String 都是这样。

    13710

    equals 和 == 到底有什么区别?

    Java 中的 equals 和 == 对于不同的数据类型有不同的表现,话不多少,看演示。...因为在 Java 5 中,为 Integer 的操作引入了一个新的特性,用来节省内存和提高性能。整型对象在内部实现中通过使用相同的对象引用实现了缓存和重用。...其中 Byte,Short,Long 有固定范围: -128 到 127。对于 Character, 范围是 0 到 127。除了 Integer 可以通过参数改变范围外,其它的都不行。...(p2)); } } 这里使用 == 的结果为 true 很容易理解,毕竟两个对象的引用不同,但是 equals 不是判断值是否相同么,我的两个id 和 name 都是一样的,为什么这里还会返回...既然如此,对于 String 的 equals 和 == 你也自然应该明白是什么结果了。 一般情况下,建议使用 String s = "abc" 方式,因为该方式采用的是字符串缓冲池机制,效率更高。

    68930

    在VB.net中,List(of string())与List(of List(of string))有什么区别

    在VB.net中,List(of string())与List(of List(of string))有什么区别 (1)List(of string())与List(of List(of string)...)区别 在VB.NET中,List(Of String()) 和 List(Of List(Of String))  是两种不同的数据结构,它们分别表示: 1. ...))`数据结构,并希望将它输出到Excel工作表中,您可以按照以下步骤操作: Imports Microsoft.Office.Interop.Excel ' 假设您已经有了一个 Liststring...= 2 For i As Integer = 0 To rowCount - 1 For j As Integer = 0 To colCount - 1 ' 检查当前行是否有对应列的数据...此外,实际应用中还需要处理可能的错误和异常,确保数据适当地格式化并适应Excel的工作表。如果列表中的列数不一致,可能需要添加额外的逻辑来处理这种情况。

    44510

    String 对象创建方式有哪几种?有什么区别?

    String 对象创建方式有哪几种?有什么区别? 173 total views, 3 views today Java 中创建字符串对象有两种方式。...String s1 = "abc"; String s2 = new String("abc"); 两种方法有些区别。...把 new String(“abc”) 这句话拆成两个部分来看,一个是”abc”, 另一个是 new String()。...如果 abc 字符串已经在字符串池中存在了,那么就不需要在创建 abc 字符串的对象了,但是 new String 这行代码会再构造出一个和 abc 一样的字符串,并且是放在堆上。...使用的时候尽量不要使用 new String 这种方式。 原创文章,转载请注明出处!http://www.javathings.top/string对象创建方式有哪几种?有什么区别?/

    3.2K30

    C#系列之String和StringBuilder

    前言       首先和博园的各位打声招呼,小弟在博园呆了也有一年多了。...字符串 System.String类 System.Text.StringBuilder类 String string是各位用的最多的类型之一,是一个特殊的引用类型,直接派生于Object...什么是字符串留用,CLR初始化的时候会创建哈希表,每构建一个新字符串都会与哈希表匹配,查找是否有相同的字符串,如果匹配,就会返回这个已存在的旧对象,由新变量进行引用。...否则,就会创建一个字符串副本添加到哈希表里,Key就是字符串,Value就是string对象在堆上的地址。 ? ?   由上面可见a和b的托管堆上地址是一样的。假如用new呢?...StringBuilder和String比起来,功能较少,只有基本的属性和增删改的方法。   其实,StringBuilder是由Char数组构成的。

    48440

    C#中String和StringBuilder的区别

    String和StringBuilder的区别 String类型对象的特点: 1.它是引用类型,在堆上分配内存 2.运算时会产生一个新的实例 3.String 对象一旦生成不可改变(Immutable)...4.定义相等运算符(== 和 !...由此可以看出: StringBuilder继承自AbstractStringBuilder这个类,而AbstractStringBuilder和String都继承自Object这个类(Object是所有...二者的执行效率: 首先创建一个String对象str,并把“abc”赋值给str,然后在第三行中,其实JVM又创建了一个新的对象也名为str,然后再把原来的str的值和“de”加起来再赋值给新的str,...有和差异,但是如果对大量字符串进行添加操作,stringbuilder耗费的时间比string少的多。

    1.9K30

    大数据技术之_31_Java 面试题_02_== 和 equals 有什么区别 + String 相关 + 多态 + 传值 + static 加载机制 + 线程

    1、== 和 equals 有什么区别? == 既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址(值)(本质上来说也是值)。...,而且 String 类在日常开发中用的比较多,久而久之,形成了 equals 是比较值的错误观点(是因为覆写了 equals 方法才比较值)。...具体要看这有没有重写 Object 的 hashCode 方法和 equals 方法来判断。...当一个类有自己特有的“逻辑相等”概念,当改写 equals() 的时候,总是要改写 hashCode(),根据一个类的 equals 方法(重写后),两个截然不同的实例有可能在逻辑上是相等的,但是,根据...即仅仅覆写 equals 方法是不够的! 3、为什么用 eclipse 重写 hashCode 方法,有 31 这个数字?   计算机的乘法涉及到移位计算。

    47910
    领券