`

准确的掌握 String 类

 
阅读更多
public class J0 {
public static void main(String[] args) {
String str1 = new String("strOne");
String str2 = new String("strOne");
String str3 = "strTwo";
String str4 = "strTwo";

System.out.println(str1 == str2);
System.out.println(str3 == str4);

}
}
估计答案是什么?
是不是false,false ?
因为 String 类不能直接 "==" 号比较!new 出来的两个String对象不在同一内存。
应该用 "equals()"。
------------------------------------
可是答案是:false,true;
------------------------------------
怎么理解呢?

String str = new String("string");
 与 String str = "string";

声明:以下解释是保证正确的,我会从内存空间上来解释,比较清楚。

区别是,new String是在堆空间上分配一个空间,将指针指向这个空间,每一个new都是新的空间,==判断当然是不等。

而String str = "ssss",说一下,在每种语言中对于字符串都有特殊的处理。
Java有一个专门的字符串池来保存可以重用的字符串。对于相同的字面值(也就是"双引号里面你看到东西")相同,多少个变量他们都指向相同的空间,==判断当然相等。

所以最正确的判断字符串内容相等的方法,就是用equals方法。String类这个immuable的类已经覆盖了这个从Object类继承的eqauls方法,达到了对于内容相等的判断。

分享到:
评论

相关推荐

    毕向东Java笔记(四)String类,包装类1

    在Java编程语言中,String类是处理文本字符串的核心类,具有丰富...了解并熟练掌握这些方法对于编写高效、准确的Java代码至关重要。记得在使用String类时,考虑到其不可变性,避免不必要的对象创建,可以提高程序性能。

    比较两个string(不区分大小写)

    在Java中,`String`类提供了`equalsIgnoreCase()`方法,可以进行大小写不敏感的比较。例如: ```java String str1 = "Hello"; String str2 = "hello"; boolean equal = str1.equalsIgnoreCase(str2); ``` 2. ...

    Java中String中类的常用方法.doc

    ### Java中String类的常用方法详解 在Java编程语言中,`String` 类是一个非常重要的类,用于表示不可变的字符序列。它提供了丰富的内置方法,使得开发人员能够轻松地处理字符串相关的操作。本文将详细介绍Java中`...

    Android BCD和String的转换

    1. **BCD码转换为字符串(String)**:在Android应用中,我们可能需要将接收到的BCD码数据解析成易于阅读的字符串。这个工具类应该包含一个方法,接受一个`byte[]`数组作为参数,其中每个字节的高位和低位分别代表一个...

    Java日期时间Date类型,long类型,String类型表现形式的转换.pdf

    总结一下,通过使用SimpleDateFormat类,我们可以灵活地在Date和String之间进行转换,而Date类提供的getTime()和构造函数则使得Date与long之间的转换变得简单直接。在实际开发过程中,根据不同的需求选择合适的转换...

    Java String 字符串创建理解 equels和\"==\" 差异

    然而,String类重写了equals()方法,使其比较的是字符串内容的值是否相等。 示例: ```java String s1 = new String("abc"); String s2 = new String("abc"); System.out.println(s1.equals(s2)); // 输出true...

    Java String类简单用法实战示例【字符串输出、比较】

    Java中的String类是Java语言中最常用的类之一,它主要用于处理字符串。在Java中,字符串是不可变的对象,意味着一旦创建,就不能更改。...在处理大量文本数据时,熟练掌握String类的使用能极大地提高代码的效率和质量。

    C#设计报告

    教务管理系统的引入,不仅能够确保信息的准确性和实时性,还能节省人力资源,避免人为错误,推动教务管理进入自动化阶段。本设计主要关注的是教务管理的教师端口,使教师能够方便地进行信息查询、添加、删除和修改...

    LR产用函数的应用web_reg_save,lr_save_string,lr_eval_string等函数

    在性能测试领域,LoadRunner是一款广泛应用的工具,用于...同时,理解并掌握这些函数的用法,对于解决性能测试中的各种问题也大有裨益。在实际工作中,应根据具体需求灵活运用这些函数,以实现更高效、准确的测试效果。

    C# JSON实体类生成工具

    总的来说,C# JSON实体类生成工具是C#开发者的得力助手,它能帮助开发者快速、准确地构建与JSON数据对应的C#类,简化JSON操作,提升开发效率。通过熟练掌握这类工具的使用,开发者可以在项目中更好地管理和利用JSON...

    UartTX_Send_String.rar_UartTX_Send_String_cc2530_uarttxsendstrin

    在本文中,我们将深入探讨如何在CC2530微控制器上进行串行通信测试,...通过理解和掌握这些知识点,我们可以有效地进行串口通信测试,确保设备间的数据传输准确无误。在实际项目开发中,这是一项基础但至关重要的技能。

    第 04 节_GEE 的数据类型 (String, Number).pdf

    理解和掌握这些类型对于有效地使用GEE进行地球观测数据分析至关重要。 4.1 String(文本) 字符串在GEE中主要用于描述和标识,它们不直接参与计算。要将字符串打印到Console栏,使用内置的`print()`函数。例如: ...

    JsonUtils(Json转换工具类)

    《JsonUtils:强大的Json转换...掌握并熟练使用这类工具类,对于提升开发质量与效率具有重要意义。在实际应用中,我们需要根据具体需求选择合适的库,并合理利用`JsonUtils`提供的功能,确保数据转换的准确性和高效性。

    Lua中string.len()使用指南

    对于这类情况,可以考虑使用`string.byte()`或`string.utf8.char()`等函数进行更精确的操作。 - **性能优化**:在处理大量字符串时,可以考虑使用字符串缓存机制,避免重复计算相同的字符串长度,从而提高程序效率。...

    Scanner类的用法

    ### Scanner类的用法 #### 一、简介与基本用法 `Scanner`类是Java SDK 1.5版本引入的新特性,它提供了一种方便的方式来读取基本数据类型...掌握`Scanner`类的使用方法对于编写交互式程序或处理大量数据非常有帮助。

    JAVA定义学生类

    - **类名应具描述性**:选择能够准确反映类功能的名称。本例中,`Student` 是一个描述性较强的类名。 ### 总结 通过以上知识点的介绍,我们了解到如何在 Java 中定义一个简单的类,包括如何定义成员变量、如何实现...

    npm-string-to-number-源码.rar

    总的来说,`npm-string-to-number`库通过精巧的代码设计和JavaScript内置函数的灵活运用,实现了高效、准确的字符串到数字的转换。理解其源码有助于我们在实际开发中更好地利用这个工具,同时也能提升我们对...

    Python库 | python-string-utils-0.4.0.tar.gz

    4. **字符串清理**:为数据清洗提供便利,例如去除空白字符、删除特殊符号、标准化格式等,确保数据的一致性和准确性。 5. **格式化输出**:提供更强大的字符串格式化功能,比如更灵活的占位符、对齐方式、填充字符...

    java程序员必须掌握的基础知识

    - **java.lang**:提供了基本的类和接口,如String、Integer等。 - **java.util**:集合框架是Java编程的重要组成部分,如List、Set、Map等,此外还包括正则表达式、Zip压缩、日期时间操作等。 - **java.io**:I/O流...

    C++利用stringstream进行数据类型转换实例

    除了 `int` 类型,`stringstream` 还支持其他基本类型,如 `float`、`double`,甚至可以用来转换枚举类型和自定义类。转换的原理类似,只需将相应的读写操作符应用到目标类型即可。 值得注意的是,`stringstream` ...

Global site tag (gtag.js) - Google Analytics