在内建数据类型的情况下,效率没有区别;
在自定义数据类型的情况下,++i效率更高!
分析1:
(在自定义数据类型的情况下)
++i返回对象的引用;
i++ 总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数。
分析2:
i++由于是在使用当前值之后再 +1, 所以需要一个临时变量来转储,而++i 则直接 +1,不存在临时变量的问题。
测试:
【Java code:】
public class Main{ public static void main(String[] args){ int i = 0; i++; ++i; } }
[Compiled from "Main.java"]
public class Main extends java.lang.Object{
public Main();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: iinc 1, 1
5: iinc 1, 1
8: return
}
2: iinc 1, 1 ;这个是i++
5: iinc 1, 1 ;这个是++i
扩展:i=i+1, i+=1, i++, ++i 效率比较
++i 最快
i++ 次之,比++i多用一个临时变量
i += 1 第三,需要取地址
i = i + 1 最后,并多用一个临时变量
i++ 次之,比++i多用一个临时变量
i += 1 第三,需要取地址
i = i + 1 最后,并多用一个临时变量
=============
(1) x = x + 1 它的效率最低,因为其执行过程如下:
1-1 读取右x的地址;
1-2 x + 1;
1-3 读取左x的地址;
1-4 将右值传给左边的x
(2) x += 1; 他的执行过程是:
2-1 读取右x的地址;
2-2 x + 1;
2-3 将得到的值传给x
相关推荐
准确、高效 计算机算法类别 数值运算算法 非数值运算算法;3.2 算法的特性 有穷性—在合理范围内可完成 确定性—无歧义性 有零个或多个输入—从外界得到信息 有一个或多个输出—问题的答案 有???性—每步有确定的结果...
花1K内存实现高效I-O的RandomAccessFile类 自己搜搜这个关键字. 我主要是用来优化Android上多线程断点下载的写文件效率 RandomAccessFile是操作硬盘的,比操作内存的数据慢了几百万倍, 所有有人做出优化,我特上传...
i.MX-RT1052+SDRAM智能面板方案设计软硬件资料(包括RT1052主板+语音识别板+电源板 3款ALTIUM设计的硬件工程文件,smart_panel-1.0.2软件源码),硬件包括完整的原理图PCB文件。 基于高性能ARM Cortex-M7内核的RT...
java高效开发 在重要的循环里,消除循环终止判断时的方法调用。 例如:将 for(int i=0; i();i++){ ... } 替换为… 尽量减少对变量的重复计算 for(int i=0; n=collection.size();i;i++){...} 通常把大循环放在...
i2 Analyst’Notebook为高效链接和时间进程分析提供了最适宜的条件。事实上,i2 Analyst’Notebook是全球同类分析软件的标准,也是重要的图表应用软件。无论你是在执法部门、调查机构,还是商业部门工作,该软件可以...
iFunBox:PC 端程序,简单、高效,只需要 iTunes 环境支持,数据线传输,速度一般 10MB/S i-FunBox v0.99版本, 更新信息: 1. 传输文件到电脑: 支持iBooks的ePubs图书文件,语音备忘录Voice Memo的.m4a 格式。 2....
//问题的关键在于找到原来的第i个元素现在在哪里,通过观察可以发现在a[i%K]的位置,下面的代码实现了a[i%K]和a[i+K]的互换 if(K==pp)pp=0; temp=arr[pp]; arr[pp]=arr[qq]; arr[qq]=temp; } TZshift1...
iPhone 5s Keyboard iOS 7iPhone 5s Keyboard iOS 7是一款高效实用的应用程序,每一位Android用户都可以通过它将自己Android设备中的键盘替换成为iPhone 5s的键盘,简单便捷。 你需要激活设备中的键盘才可以使用这...
统, 它具有稳定、高效、强壮等诸多特性, 符合P O S I X规范, 有丰富的开发工具和各类 应用软件, 是一种良好的网络开发与应用平台。在其上实现网站的个人主页系统有着得天独 厚的优势。基于L i n u x 环境的免费个人...
该类Individual的主要数据结构是一个 C++11 数组容器,一个类似于向量的模板,但更高效并且需要一个大小(给定的维度为 30)。因此,它的基因组(可能的解决方案)是一个包含 30 个参数类型的数组,其中参数是一个...
链接您的AssetBundles以添加更多本地化内容。 简单高效 在一个位置编辑和预览所有翻译,然后在运行时仅加载当前语言。使用快速查找来访问它。 重复使用翻译 设置文本自动显示为大写,小写,上限,标题大小等。 在...
一个可编程的CI/CD引擎,旨在让持续集成和持续交付过程更加灵活和高效。它的独特之处在于允许用户将整个CI/CD流程放置在容器中运行,从而实现更好的隔离和环境一致性。这个项目提供了一种新颖的方式来管理软件交付...
NULL 博文链接:https://x7700.iteye.com/blog/1003918
CI框架PHP漫画小说二合一CMS网站系统源码 内置采集火车头接口带充值和会员功能 在PHP+MYSQL环境下运行的完善而强大的快速建站系统。 经过近多年的开发经验和技术积累,即将成为全网最强漫画+小说系统,在易用性...
Specification for I3C Basic ;Version 1.1.1; 9 June 2021 ...I3C协议是基于I2C和SPI的协议升级版,为DDR而生,能够兼容I2C,且支持更高的带宽和更低的功率,支持中断功能支持热加入支持错误校验支持仲裁
在iPhone中,采用四个步骤高效安装WAPI证书。
(a)为解决这个问题,我们把棋盘的横坐标定为i,纵坐标定为j,i和j的取值范围是从1到8。当某个皇后占了位置(i,j)时,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。用语句实现,可定义如下三...