字符串等于和 == 与字符串连接[重复]

2024-04-28

我试图理解字符串连接与字符串比较的输出。需要明确的是,我有一个类使用 == 和 equals 来比较两个字符串。我试图将 == 和 equals() 的输出连接到一个字符串。 equals() 的输出是 concats,但是 == 的输出是does not连接。使用java的装箱功能,将布尔值与字符串连接起来。据我所知, equals 和 == 都返回布尔值。那么为什么会出现这种差异呢?谁能解释一下吗?

public class StringHandler {

    public void compareStrings() {
        String s1 = new String("jai");
        String s2 = "jai";
        String s3 = "jai";
        System.out.println("Object and literal compare by double equal to :: "
                + s1 == s2);
        System.out.println("Object and literal compare by equals :: "
                + s1.equals(s2));
        System.out
                .println("Literal comparing by double equal to :: " + s2 == s3);
        System.out.println("Literal comparing by equals :: " + s2.equals(s3));
    }

    public static void main(String[] args) {
        StringHandler sHandler = new StringHandler();
        sHandler.compareStrings();
    }
}

output

false
Object and literal compare by equals :: true
false
Literal compareing by equals :: true

更新:回答

如果 s1==s2 没有括号,JVM 会将字符串比较为“Object andliteral Compare by double equal to :: jai”==“jai”,结果为false。所以sysout中的实际内容没有被打印。添加括号后,JVM 会将字符串比较为“jai”==“jai”,结果为

Object and literal compare by double equal to :: true


当你这样做时

System.out.println("Object and literal compare by double equal to :: "
            + s1 == s2);

你首先连接字符串"Object and literal compare by double equal to :: "用字符串s1,这将给出

"Object and literal compare by double equal to :: jai"

然后,您正在检查该字符串是否是同一个对象(相同的引用)s2:

"Object and literal compare by double equal to :: jai" == "jai"

这将是false(输出将是false).

换句话说,这是因为运算符优先级。 “操作”运算符前置的一种方法是使用括号。首先解析括号内的运算:

System.out.println("Object and literal compare by double equal to :: " + (s1 == s2));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串等于和 == 与字符串连接[重复] 的相关文章

  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • Spring MVC - 自动查找验证器

    假设我有一个像这样的示例实体类 public class Address 和相应的验证器 Component public AddressValidator implements Validator Override public bool
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 如何在android中使用retrofit访问404错误?

    我正在使用改造 2 访问 REST API 以使用原始正文插入 JSON 数据 我从服务器获得成功响应 但在响应时收到 404 错误 我想访问404错误请帮我解决这个问题 ApiUtil getServiceClass sendFinalC
  • Java:等于和==

    让我们看看我们有 2 个对用户定义类实例的引用 即 Java 中的 a 和 b 会不会有一种情况 a b 但 a equals b 返回 false 当然 实施 equals 完全取决于班级 所以我可以写 class Foo public
  • JSF-2 应用程序中的服务器端计时器

    在我正在开发的 JSF 2 应用程序中 当用户执行操作时 我需要启动服务器端计时器 这个计时器必须与应用程序本身相关 因此它必须在用户会话关闭时继续存在 为了解决这个问题 我想使用 java util Timer 类在应用程序范围的 bea
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • 参考接口创建对象

    引用变量可以声明为类类型或接口类型 如果变量声明为接口类型 则它可以引用实现该接口的任何类的任何对象 根据上面的说法我做了一个理解上的代码 正如上面所说声明为接口类型 它可以引用实现该接口的任何类的任何对象 但在我的代码中显示display
  • Map:为 Integer 和 Double 类型定义方法,但不为 String 类型定义方法

    我正在尝试定义一个方法putIfGreaterThan 为了我的新Map class 给定一个键 仅当新值大于旧值时 它才会用新值替换旧值 我知道我可以通过组合来实现这一点 通过有一个private final Map
  • 无法删除临时文件夹(有时)

    当我启动应用程序时 我创建一个临时文件夹 public static File createTempDir String name throws IOException File tempDir File createTempFile na
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Java/Hibernate - 异常:内部连接池已达到其最大大小,当前没有可用的连接

    我第一次在大学项目中使用 Hibernate 而且我还是个新手 我想我遵循了我的教授和我阅读的一些教程给出的所有指示 但我不断收到标题中的异常 Exception in thread main org hibernate Hibernate
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • 尝试通过 Java 8 中的 JDBC-ODBC 连接到 .accdb 文件时出现 ClassNotFoundException

    我正在 Eclipse EE IDE 中的 Java 项目中工作 我必须在其中查询 accdb文件 问题是当我尝试加载驱动程序然后连接到数据库时 它给了我一个异常错误 My code try String filePath myfilepa
  • Java环境变量设置方法

    我已将以下行插入 bash profile export GOOGLE APPLICATION CREDENTIALS Users jun Downloads export PATH PATH GOOGLE APPLICATION CRED
  • 如何在 Ruby on Rails 中不使用 eval 将字符串转换为哈希值? [复制]

    这个问题在这里已经有答案了 这里是string需要转换成hash status gt label gt Status collection gt return misc definitions project status 我们不能使用ev
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 如何在 tomcat 上部署 Java Web 应用程序 (.war)?

    我有一个 warJava Web 应用程序的文件 现在我想将它上传到我的 ftp 服务器 以便我可以执行它 我应该执行哪些步骤来运行它 webapp的上下文路径是 mywebapp Edit 实际上 我的 ftp 服务器名称是ftp bil

随机推荐

  • 如何让“wc -l”只打印没有文件名的行数?

    wc l file txt 输出行数和文件名 我只需要数字本身 而不是文件名 我可以做这个 wc l file txt awk print 1 但也许有更好的方法 试试这个方法 wc l lt file txt
  • 使用 Coffeescript 类和 RequireJS(或 Curljs 或类似)作为客户端浏览器库的示例

    我们想要使用 Coffeescript 开发一个浏览器 仅限客户端 库 特别是 除了纯函数之外 我们还倾向于大量使用 Coffeescript 的 类 功能 该库将相对较大 因此我们希望开始使用定义良好的模块模式 但不会达到我们希望每个咖啡
  • 使用 (imagemagick) `mogrify` 将 webp 文件转换为动画 gif 时如何避免丢失?

    使用此代码mogrify format gif webp我在另一个论坛找到的https superuser com questions 1506337 batch convert webp files to gif files offlin
  • 测试类内的扩展函数

    如果我们想测试某个类型的扩展函数 我们可以创建该类型的实例 调用该函数并检查返回值 但是测试类内部定义的扩展函数又如何呢 abstract class AbstractClass
  • 区分缺失值类型(无响应与跳过模式)

    对于可能没有仔细阅读密码本的数据集用户 您会建议如何区分缺失值类型 在这个玩具示例中 q2只询问那些回答 是 的人q1 这意味着有一个缺失值q2因为该人没有回应而缺失 并且有两个缺失值q2因为没有提出问题所以丢失了 library tidy
  • 如何在Java NIO中配置socks代理

    我正在开发一个工具 其中包括强制应用程序的所有网络流量通过Java中的socks代理 对于旧的 Socket API 我只需设置系统属性 DsocksProxyHost my host DsocksProxyPort my port 但它不
  • 如何删除 R 中字符向量中字符串的公共部分?

    假设一个字符向量如下 file1 p1 analysed samples txt file1 p1 raw samples txt f2 file2 p1 analysed samples txt f3 file3 p1 raw sampl
  • ReportViewer控件加载指示器?

    是否可以更改 ReportViewer 控件的图像 绿色旋转的东西 目前我正在隐藏它并重叠进度条 这是 WinForms 而不是 ASP 控件 似乎有点啰嗦 Thanks 好吧 我的朋友 你给了我一个挑战 但我想出了如何做到这一点 这是我用
  • 有没有一种简单的方法可以将我的苹果应用程序转换为安卓应用程序?

    我是一名应用程序开发人员 我使用 Xcode 来开发我的所有应用程序 但看到当今市场上很多人都拥有非苹果设备 所以我想我想知道是否有一种简单的方法可以将我的苹果应用程序代码转换为Android格式 以便我可以提交到两个市场 Android
  • 在 systemd 服务文件内/内联添加 shell 命令

    我正在运行gunicorn通过 systemd 将服务器作为服务 这是示例service file Unit Description Gunicorn NGINX After network target Service User root
  • Curl下载到HDFS

    我有这个代码 curl o fileName csv url xargs hdfs dfs moveFromLocal 1 somePath 当我执行此代码时 curl 将请求中的值放入 fileName csv 中 该文件将移动到 HDF
  • 如何在小部件中使用列表视图? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试创建一个从 rss feed 加载到小部件中的列表视图 有谁知道如何在小部件中使用列表视图的教
  • 学习 BDD、TDD(ruby、C#、javascript)的好资源

    学习 BDD 和 TDD ruby C javascript 有哪些好的资源 现在用什么好的框架 See 为什么我应该练习测试驱动开发以及应该如何开始 https stackoverflow com questions 4303 why s
  • 使用VBA抓取实时数据

    我想从中抓取实时数据https iboard ssi com vn bang gia hose https iboard ssi com vn bang gia hose使用VBA 我的代码如下 但它不会返回其中包含数据的 html 文件
  • 什么是依赖注入的 Pythonic 方式?

    介绍 对于 Java 依赖注入作为纯 OOP 工作 即您提供要实现的接口 并在框架代码中接受实现定义的接口的类的实例 现在对于 Python 您可以执行相同的操作 但我认为该方法对于 Python 而言开销太大 那么如何以 Pythonic
  • Swashbuckle IDocumentFilter 实现 - 如何将 ActionDescriptor.MethodInfo 链接到操作

    项目 ASP Net Core 2 2 Web API 软件包 Swashbuckle AspNetCore 4 0 1 我正在写一个实现Swashbuckle AspNetCore SwaggerGen IDocumentFilter它在
  • 缓慢的 data.frame 行分配

    我正在使用 RMongoDB 需要用查询的值填充空的 data frame 结果相当长 大约有 200 万个文档 行 当我进行性能测试时 我发现将值写入行的时间随着数据帧的维度的增加而增加 也许这是一个众所周知的问题 而我是最后一个注意到它
  • 当元素被覆盖时取消 mouseout 事件

    希望这个 JSFiddle 能比我的话更好地说明这个问题 http jsfiddle net pmwRc 6 http jsfiddle net pmwRc 6 当地图悬停时 我在图像地图上显示绝对定位的 H4 作为标签 但是 当鼠标指针移
  • $.fn.function 的调用函数

    问题如下 有一个函数自定义 jquery 函数 里面有另一个函数 例如 fn slides function args function foo args 我现在的问题是 我如何调用方法 foo foo不是一种方法 这是一个本地函数 除非您
  • 字符串等于和 == 与字符串连接[重复]

    这个问题在这里已经有答案了 我试图理解字符串连接与字符串比较的输出 需要明确的是 我有一个类使用 和 equals 来比较两个字符串 我试图将 和 equals 的输出连接到一个字符串 equals 的输出是 concats 但是 的输出是