Java中自增(++)和赋值(=)运算效率比较

前言

  将一个int型数组x[]从初值0变成1。有两种做法:

// 只考虑后自增
int length = x.length;
for (int i = 0; i < length; i++) {
	x[i]++;
}
int length = x.length;
for (int i = 0; i < length; i++) {
	x[i] = 1;
}
测试代码
/**
 * @author PengHao
 * @version 1.0
 * @date 2019-04-30 下午6:38:02
 * Environment: Windows 10
 * IDE Version: Eclipse 2019-3
 * JDK Version: JDK1.8.0_112
 */

public class Efficiency {
	private static int LENGTH = 21474836;
	private static long begin, end;

	/**
	 * @return 自增运算用时
	 */
	private static long autoIncrementAfter() {
		int[] x = new int[LENGTH];
		begin = System.currentTimeMillis(); // 当前时间
		for (int i = 0; i < LENGTH; i++) {
			x[i]++;
		}
		end = System.currentTimeMillis(); // 当前时间
		return end - begin; // 循环用时
	}

	/**
	 * @return 赋值运算用时
	 */
	private static long copyValue() {
		begin = System.currentTimeMillis();
		int[] x = new int[LENGTH];
		for (int i = 0; i < LENGTH; i++) {
			x[i] = 1;
		}
		end = System.currentTimeMillis();
		return end - begin;
	}

	public static void main(String[] args) {
		System.out.println("LENGTH=" + LENGTH);
		System.out.println("后自增用时:" + autoIncrementAfter());
		System.out.println("赋值用时:" + copyValue());
	}
}
运行截图
20190430195942632.jpg 20190430200445240.jpg   为了严谨性(与顺序无关),将第一组数据 main方法中计算顺序交换后: 20190430200120972.jpg
结论

  显然,后自增要比赋值的运算效率高。数据仅供参考。


写在最后:

  1. 如需转载,请于首页至少注明链接形式的wowpH的博客这几个字;
  2. 代码原创,如需公开引用,不能删除首行注释(作者,版本号,时间等信息)。
  3. 如果有疑问欢迎评论留言,尽量解答。

转载于:https://www.cnblogs.com/wowpH/p/11060803.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值