(a != b) 和 (a != (a = b) 之间有什么区别?

2024-02-25

In a 最近的问题 https://stackoverflow.com/questions/48319047/why-concurrentlinkedqueue-source-code-use-to-check-for-tail/48319214#48319214,我们找到了下面这段代码:

// p, t, q and tail are Node<E> objects.
p = (p != t && t != (t = tail)) ? t : q;

忽略问题的上下文,我对以下行为感兴趣:

t != (t = tail)

考虑到这些都是相同类型的对象,无论类型如何。这和:有什么区别吗?

t != tail

或者我在比较机制中遗漏了一些重要的东西?


EDIT

如果有人想知道,可以在并发链接队列 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html班级来自java.util,第 352 行。


t != (t = tail)

相当于

oldt = t;
t = tail;
... oldt != t...

即原始值ttail另外t被赋值为tail.

这是一种简短的写作方式

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

(a != b) 和 (a != (a = b) 之间有什么区别? 的相关文章

  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 如何让spring为JdbcMetadataStore创建相应的schema?

    我想使用此处描述的 jdbc 元数据存储 https docs spring io spring integration docs 5 2 0 BUILD SNAPSHOT reference html jdbc html jdbc met
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false

随机推荐

  • PHP 或 MySQL 中的业务逻辑?

    在具有合理流量的网站上 如果将应用程序 业务逻辑编写为存储过程 触发器和视图 而不是编写在 PHP 代码本身中 这会重要吗 牢记可扩展性的最佳方法是什么 我无法向您提供统计数据 但除非您计划将来将 PHP 更改为另一种语言 否则我可以说将业
  • 使用 graph api 2.2 从 android 中的 facebook sdk 4.0.1 获取好友列表

    我在进行一些搜索后用于获取列表的代码如下 GraphRequestBatch batch new GraphRequestBatch GraphRequest newMyFriendsRequest accessToken new Grap
  • pg_dump 忽略表顺序?

    我最近一直在玩 PostgreSQL 并且无法理解如何备份和恢复单个表 我使用 pgadmin3 备份数据库中的单个表 以便将其复制到不同的服务器 当我尝试对文件执行 pg restore 时 收到错误消息 指出该序列不存在 pg rest
  • XmlHttpRequest.onload 未调用

    我正在玩这个XmlHttpRequest事物 在一些教程和书籍中 它是onload请求完成时调用的函数 在我的小实验中 这个函数从未被调用 这是我的代码 window onload function var url http www goo
  • 渐变剪切似乎在“无”上窒息

    我正在尝试向我的图表添加渐变裁剪 我使用了这里推荐的方法 如何在tensorflow中有效应用梯度裁剪 https stackoverflow com questions 36498127 how to effectively apply
  • Django 官方教程第 1 部分:运行时错误:cmp 中超出最大递归深度

    根据 django 教程 我创建了项目并执行了manage py runserver 如教程中所述 并且我收到错误 RuntimeError cmp 中超出了最大递归深度 有什么办法可以纠正这个问题吗 我得到这个错误 Validating
  • GoLang - 内存分配 - []byte 与 string

    在下面的代码中 c fool d byte fool fmt Printf c T d n c unsafe Sizeof c 16 bytes fmt Printf d T d n d unsafe Sizeof d 24 bytes 为
  • 非被动滚动事件处理程序的控制台警告

    当我使用 bootstrap vue 中的 Form Select 时 出现此控制台错误 我正在使用谷歌浏览器 违规 向滚动阻塞 鼠标滚轮 事件添加了非被动事件侦听器 考虑将事件处理程序标记为 被动 以使页面响应更快 我使用 axios 从
  • indexpath.row 从 1 而不是 0 开始

    我面临着 uitableview 的问题 有时 当我的表的 datasource numberofrowsinsection 有 3 个值时 cellforowatindexpath 从 0 1 而不是 0 0 开始 有人可以帮我找出发生此
  • 在 Swing 中使图像按钮看起来被按下/单击

    我创建了一个 JButton 其中有一个图像设置为代表该按钮的图标 现在 我已经设置了 setContentAreaFilled false setBorderPainted false setOpaque false 这些属性使图像按钮看
  • 多行字符串文字的语法突出显示

    我有一种自定义语言 我想在 Visual Studio Code 中为其提供语法突出显示 在这种语言中 字符串文字以双引号或单引号开头和结尾 以双引号开头的字符串文字可以包含单引号 反之亦然 不会发生任何其他引号转义 但无论起始引号类型如何
  • 将菜单项添加到 Quickbooks

    是否可以使用 QBSDK 将菜单项添加到 Quickbooks 我发现了一些我无法工作的旧例子 我已经为我的公司创建了一个自定义应用程序 并尝试通过在 Quickbooks 中创建一个菜单项来简化它 任何帮助将不胜感激 这是我到目前为止所尝
  • 替换嵌套括号中的内容

    Input ABCDEF 3 abcdef GHIJKLMN 4 5 Value OPQRSTUVW 4 5 Value 3 预期输出 ABCDEF GHIJKLMN OPQRSTUVW 到目前为止尝试过 Output Input repl
  • 单元测试 - 如何测试仅插入日志消息的“void”方法(Serilog)

    我需要测试类型的方法void 它只是使用 LOG 框架在我的 LOG 变量上插入一条消息 Serilog https serilog net 参见实现示例 public class MyClass public MyClass ILogge
  • 如何在cloudfoundry上使用kafka和storm?

    我想知道是否可以将 kafka 作为云原生应用程序运行 以及我是否可以在 Pivotal Web Services 上创建一个 kafka 集群作为服务 我不仅仅想要客户端集成 我想运行 kafka 集群 服务本身 谢谢 阿尼尔 我可以向您
  • 为什么 Tkinter 中计算的字符串宽度和高度(以像素为单位)在不同平台上有所不同?

    我有一个 Python 脚本 需要计算以任意字体显示的任意字符串的确切大小 以便生成简单的图表 我可以使用 Tkinter 轻松做到这一点 import Tkinter as tk import tkFont root tk Tk canv
  • 转发不同类型的事件

    我正在尝试将事件从一个类转发到其中包含的对象 如下所述 在 C 中转发事件 https stackoverflow com questions 1065355 forwarding events in c sharp 然而 事件的类型不同
  • R 中带有 tm 包的计数器 ngram

    我使用 R 中的对象和字典 documentTermMatrix 创建了一个用于记录文档中单词频率的脚本 该脚本适用于单个单词 而不适用于复合词 es 富 酒吧 富酒吧 这是代码 require tm my docs lt c foo ba
  • 如何使用SQLPlus查看Oracle存储过程?

    如何使用 sqlplus for Oracle 10g 查看存储过程的代码 当我输入 desc daily update 它向我显示了参数 但是当我尝试执行以下操作时 select from all source where name da
  • (a != b) 和 (a != (a = b) 之间有什么区别?

    In a 最近的问题 https stackoverflow com questions 48319047 why concurrentlinkedqueue source code use to check for tail 483192