Java 中的布尔函数

2023-12-06

String s1="hi";
String s2="hi";

boolean b1 = true;
boolean b2 = false;

(1) System.out.println(s1==s2);                            //true
(2) System.out.println(s1==s2 + s1==s2);                   //false
(3) System.out.println(s1==s2+ " " + s1==s2);              //false

(4) System.out.println(b1+b2);                             //error : bad operand types
(5) System.out.println(b1 + " " + b2);                     //true false
(6) System.out.println(true +" "+ s1==s2);                 //false
  • (2)和(4)有什么区别?
  • (3)和(5)有什么区别?
  • 为什么(3)和(6)中的结果为假?

除了 4 之外,所有这些都依赖于运算符优先级。

而在爪哇中,+优先于==.

这意味着 2 实际上“读取”:

s1 == ((s2 + s1) == s2)

因此第一个操作数的右侧==是一个布尔表达式,它将两个对象引用相互比较(事实上它们都是String这里是无关紧要的)并且这里它们不一样。因此右侧操作数是布尔值false.

但由于左侧操作数是String,并且自从==不适用于操作数String and boolean,这会产生编译错误。JLS,第 15.21 节:

相等运算符可用于比较可转换(第 5.1.8 节)为数字类型的两个操作数,或布尔或布尔类型的两个操作数,或各自为引用类型或 null 类型的两个操作数。所有其他情况都会导致编译时错误。

如果这确实适合您编译,那么您正在使用一个有缺陷的 Java 编译器,它将右侧操作数自动装箱为Boolean,这是不应该的。让我猜猜:Eclipse 的 ECJ?

4 是一个错误,因为+运营商不接受booleans 作为操作数。

3 读起来几乎与 2 相同,只是这次是s2 + " " + s1这是(试图)相比s2。由于同样的原因,它无法编译。

在 5 中,由于字符串连接,布尔值会自动装箱。

6再次依赖于2中提到的运算符优先级;这次是字符串true + " " + s1这是(参考)与s2(这给出了错误)。请参阅 5 了解发生的情况true.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的布尔函数 的相关文章

  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 使 chrome 中的复选框看起来像 IE 中的复选框

    IE 和 Chrome 中的复选框看起来不同 Chrome IE 从上面的图片中您可以看到差异 我希望 chrome 中的复选框看起来与 IE 中的一样 I tried webkit box shadow和其他类似的 css 属性 但没有运
  • UISegmentedcontrol 外观导致问题

    我需要有关 UISegment 外观的帮助 我在我的应用程序委托中设置了它 一切正常 直到我添加此代码来更改我选择的段颜色 它才引起问题 我在 viewDidLoad 时调用了 IBAction 它应该显示这个 但它显示了这一点 我知道是外
  • TCP服务器IP地址

    当启动H2 tcp服务器并且主机有多个IP地址时 我如何定义服务器将绑定以侦听连接的IP 我们可以定义 tcp 端口 但似乎没有办法定义 ip 地址 谢谢你 奥斯卡 http www h2database com html advanced
  • QueryOver:从子查询中选择列

    如何从不同表的子查询中选择 投影值到我的主查询中 我有一个像这样的 NH 模型 Serializable public class MyModel public virtual int Id get set more mapped valu
  • 在 sed 中查找并替换文本文件中的多个字符串[重复]

    这个问题在这里已经有答案了 下面是一个玩具文本文件 其中包含样本和特征信息以及测量值 Sample3 trait1 8 5 Sample6 trait2 2 2 Sample7 trait1 9 2 Sample3 trait2 1 3 S
  • 向空手道框架添加自定义步骤定义

    我需要提取从 复杂 响应标头解析的字段 并在稍后的测试中使用该值 看来空手道中的 header 关键字是为了设置请求头而设置的 而不是解析响应头 有没有办法添加自定义步骤定义来维护对场景变量存储的访问 看来变量存储在StepDefs类 并且
  • 从小写转换为大写

    我正在尝试从小写转换为大写 我知道这很容易做到 SUB AL 20H 但我得到了另一种解决方案 AND AL 0DFH 请帮助我理解这一点 谢谢 查看位模式 答 0x41 0100 0001 一个 0x61 0110 0001 中号 0x4
  • 如何在 Three.js 中获取蒙皮网格顶点的全局位置?

    在 Three js 中 我们现在能够获取 a 顶点的全局位置不带皮的网格感谢这个问题 但是我怎样才能获得 a 顶点的全局位置skinned与骨骼和变形目标进行网格划分 例如 如何打印 2 5 1 5 0 5 在以下情况下 mesh geo
  • 注意:如果您发送了值,则被调用的函数应该是付费的,并且您发送的值应该小于您当前的余额

    我正在尝试使用 openzeppelin 的 ERC20 实现 但出现错误 tokenAddress 是现有 ERC20 代币的地址 例如 USDC 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 im
  • 在 PIL 中使用 TIFF G4 图像

    我编写了一个纯 python TIFF G4 解压缩以供使用tifffile py 我知道有一些方法可以添加libtiff自定义 PIL 但我永远无法让它在混合 virtualenv 中很好地工作 我想在PIL中操作图像 我正在寻找将我的减
  • 没有端口的 HTTP X 转发主机行为

    我发现X Forwarded Host对于端口而言 HTTP 标头没有很好地定义 也许这就是为什么不同的实现在涉及这个标头时表现不同的原因 通常 此标头可以包含端口 例如b com 123这很简单 但如果真的发生了怎么办NOT包含端口并且服
  • Swift:IOS7 设备上的核心数据 -> 第二个实体上的entityForName 为零

    我已经使用 Xcode 6 beta 2 在一个小型 iPhone 项目上测试了 swift 该项目使用核心数据来访问数据模型中的 2 个实体 用户 合同 在 IOS 模拟器中一切正常 问题 当我为 IOS7 构建应用程序并在 iPhone
  • 请参阅场景大纲示例中定义的变量[重复]

    这个问题在这里已经有答案了 Feature Test Type Background url host def name test name def label name Scenario Outline Test 2 Given url
  • 判断两个矩形是否重叠?

    我正在尝试编写一个 C 程序 它接受用户的以下输入来构造矩形 2 到 5 之间 高度 宽度 x 位置 y 位置 所有这些矩形都将平行于 x 和 y 轴存在 即它们的所有边都将具有 0 或无穷大的斜率 我试图实现中提到的内容this问题 但我
  • 是否可以声明一个同时适用于数字和 bigint 的打字稿函数?

    在普通的无类型 JavaScript 中 编写一个可以对数字或 bigint 进行操作的函数并不难 具体取决于传入的参数 const sumOfSquares a b gt a a b b sumOfSquares 3 4 returns
  • DynamoDB 突发容量和自适应扩展

    我正在浏览 AWSblog从那里开始AWS re Invent 视频了解 DynamoDB 的自适应扩展和突发概念 我理解WCU和RCU的概念 以及突发桶堆积长达300秒的想法 并且分区的峰值WCU RCU是1000 3000 视频开始时间
  • c# DataSet.Fill Firebird 2.5 可怕的性能问题

    REMARK我完全重写了这个问题 因为在探索选项和获得见解时 我意识到问题的根源根本不是我想象的那样 我使用 Firebird 作为数据库引擎和标准 Net 提供程序 v 5 11 0 来使用以下代码获取数据 myBlob1 is BLOB
  • PHP计算两个日期之间的天数

    我正在开发一个围绕日期的网络应用程序 例如 我需要根据经过的天数计算数字 伪代码 count only array monday wednesday friday count only these days start date 12985
  • 如何确定 TensorFlow 中的占位符依赖性

    给定一些要获取的符号变量 我需要知道哪些占位符是依赖项 在 Theano 中 我们有 import theano as th import theano tensor as T x y z T scalars xyz u v x y y z
  • Java 中的布尔函数

    String s1 hi String s2 hi boolean b1 true boolean b2 false 1 System out println s1 s2 true 2 System out println s1 s2 s1