当前位置: 首页 > 面试题库 >

我应该在Java中移位除以2吗?

邹丰羽
2023-03-14
问题内容

许多年前,在大学里,我了解到,右移一位的功能与除以2的功能相同,但是通常速度要快得多。自从9到10年前我了解到Java以来​​,我不确定Java在这方面是如何发展的。Java编译器是否会自动将除二转换为移位操作,还是应该自己在代码中手动html" target="_blank">执行移位操作?


问题答案:

恕我直言,除非您在经常发生位移的商店和代码库中工作,否则恕不接受混淆。是的,这些表达式在逻辑上可能是等效的,但:

  • n00b可能会因备用语法而感到困惑
  • 像我一样,自大学以来就没有做过任何改动的老人可能会感到困惑
  • 如果您有点变化并且觉得需要对刚刚做的事情发表评论,那么您肯定会离开。简单除法是自我记录,对熟悉基础数学的任何人都将清楚
  • 您不会在精巧的事情上超过智能编译器进行优化,因此不必费心尝试
  • 作为良好的编码实践,最好使代码简单/原始而不是聪明。

所有这些都是相对的,而且,这实际上取决于您商店的标准。如果您的同事喜欢移位,那么一定要进行移位。



 类似资料:
  • 问题内容: Java编译器 或 JIT编译器是否通过恒定的2到位移位的幂来优化除法或乘法? 例如,以下两个语句是否被优化为相同? (基本上是这个问题,但对于Java) 问题答案: 不,Java编译器不会执行此操作,因为无法确定将显示什么符号。为什么这么重要?负整数上的位移产生与普通除法不同的结果。在这里,您可以看到一个演示:这个简单的测试: 另请注意,我使用代替。A 是无符号的移位,而A 是带符号

  • 我是gRPC的新手,正在编写一个应用程序,其中8个客户端每秒向gRPC服务器发送50k个异步请求。我知道我应该为每个客户端重用该通道,但是流观察者怎么样?现在每次客户端发出请求时,我都会创建一个新的流观察者。这会是瓶颈吗?如果有任何回复,我将不胜感激!

  • 问题内容: 我正在设计一个新网站,希望它与尽可能多的浏览器和浏览器设置兼容。我试图确定我应该使用哪种度量单位来显示字体和元素的大小,但无法找到一个确定的答案。 我的问题是:我应该 在CSS中使用还是在CSS中使用? 到目前为止,我知道使用与在浏览器中调整基本字体大小的用户不兼容。 我忽略了s,因为与s 相比,它们在级联时更加麻烦。 有人说s与分辨率无关,因此更可取。但是其他人则说,大多数现代浏览器

  • 问题内容: 这个问题在很多地方都被问到,变化不尽。例如Java-getClassLoader()。getResource()不仅使我烦恼不已。)我仍然无法使其正常工作。 这是一个代码片段: 此作品-请注意,我硬编码的路径,包含剪辑文件,该文件的目录 是 有,而且 是 在同一目录作为我的.class文件。las,注释掉的代码仅返回url的空值。 其他大多数帖子似乎都涉及getResourceAsSt

  • 问题内容: 我知道该ValueEventListener线程在新线程中运行,是否应该在任何时间删除此线程以进行适当的线程管理?(例如,没有太多并行运行的线程)。如果是,该怎么办? 问题答案: 在谈论监听器时,是的,您需要根据活动的生命周期将其删除,为此,您需要使用以下代码行: 请记住,如果不这样做,最终将浪费您的电池和带宽。所以: 如果已在中添加了侦听器,则onStart必须在中将其删除onSto