跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 效率问题 对于 Java 来说 前自增(++i) 和 后自增(i++) 有区别么?
未分類
17 7 月 2020

效率问题 对于 Java 来说 前自增(++i) 和 后自增(i++) 有区别么?

效率问题 对于 Java 来说 前自增(++i) 和 后自增(i++) 有区别么?

資深大佬 : silverwings 7

在 C++里(++C

大佬有話說 (11)

  • 資深大佬 : lxilu

    看看字节码

  • 資深大佬 : hqweay

    Java 的话,编译期优化了。Java 编程思想 有提。

  • 資深大佬 : newtype0092

    以前习惯 for 循环里最后一定要++i 不能 i++,现在一边是编译器解释器不断优化,一边是机器性能不断攀升,这种微观细节处的效率优化基本没什么大用了,所以关心的人少了。

  • 資深大佬 : sunny352787

    这种细节编译期都优化的很好了,即便没优化这里也不会是瓶颈,也就学术上有点意义

  • 資深大佬 : Jooooooooo

    没区别

    对 C++ 里有这种区别存疑, 这都哪一年了, 谁写的编译器啊

  • 資深大佬 : lxk11153

    需要先创建临时对象?怎么个创建法?

  • 資深大佬 : msg7086

    C++里没区别。你又不是活在 30 年前。

  • 資深大佬 : jackrelative

    ++i 性能好些。会减少一个临时变量存储中间值。参考书本:java151 问

  • 資深大佬 : aureole999

    openjdk 14 java 8
    不影响逻辑的情况下++i 和 i++编译的字节码完全一致。
    Intellij 反编译 class 文件后源代码里的 i++会变为++i

  • 主 資深大佬 : silverwings

    @lxilu #1
    @hqweay #2
    @jackrelative #8
    @aureole999 #9
    用 IDEA 反编译了一下
    确实所有循环里的 i++、i += 1 、++i 、i = i + 1 都变成了++i
    应该是字节码方面是一样的
    测试环境是 Java11

  • 主 資深大佬 : silverwings

    @Jooooooooo #5
    @lxk11153 #6
    这个 C++的相关介绍里有讲
    比如后自增的返回就不是左值
    不是对象本身
    我也是看到这个才想问 Java 的
    而且在几乎所有竞赛里 排名靠前的 C++选手
    清一色都是++i 没有任何后自增
    参考力扣任何一场周赛

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具