Java中关于i++与++i的问题

简介:

在《Java程序员面试宝典》里面有提到i++这个部分,j++是一个依赖于java里面的“中间缓存变量机制”来实现的。通俗的说

++在前就是“先加后赋”(++j)

++在后就是“先赋后加”(j++)

package cn.xy.test;

public class TestPlus
{
	private static int a()
	{
		int i = 10;
		int a = 0;
		a = i++ + i++;

		// temp1 = i; 10
		// i = i + 1; 11
		// temp2 = i; 11
		// i = i + 1; 12
		// a = temp1 + temp2 = 21;
		return a;
	}

	private static int b()
	{
		int i = 10;
		int b = 0;
		b = ++i + ++i;

		// i = i + 1; 11
		// temp1 = i; 11
		// i = i + 1; 12
		// temp2 = i; 12
		// b = temp1 + temp2 = 23;
		return b;
	}

	private static int c()
	{
		int i = 10;
		int c = 0;
		c = ++i + i++;

		// i = i + 1; 11
		// temp1 = i; 11
		// temp2 = i 11
		// i = i + 1; 12
		// c = temp1 + temp2 = 22
		return c;
	}

	private static int d()
	{
		int i = 10;
		int d = 0;
		d = i++ + ++i;

		// temp1 = i; 10
		// i = i + 1; 11
		// i = i + 1; 12
		// temp2 = i; 12
		// d = temp1 + temp2 = 22;
		return d;
	}

	public static void main(String[] args)
	{
		System.out.println(a());
		System.out.println(b());
		System.out.println(c());
		System.out.println(d());
	}
}

原帖地址:http://blog.csdn.net/zlqqhs/article/details/8288800

目录
相关文章
|
10月前
|
Java
Java之“珠穆朗玛峰”
Java之“珠穆朗玛峰”
50 0
|
Java
R7-24 369寝室(JAVA)
R7-24 369寝室(JAVA)
221 0
|
Java
Java常见的坑(二)
你猜上述程序输出的是什么? 是 ABC easy as 123 吗? 你执行了输出操作,你才发现输出的是 ABC easy as [C@6e8cf4c6 ,这么一串丑陋的数字是什么鬼? 实际上我们知道字符串与任何数值的相加都会变为字符串,上述事例也不例外, numbers输出其实实际上是调用了Object.toString()方法,让numbers转变为'[c' + '@' + 无符号的十六进制数。
53 0
|
Java 程序员 C++
|
消息中间件 NoSQL 前端开发
|
Java
java
zhe
221 0
|
存储 安全 算法
一篇文章让你真正了解Java
“你学习一门技术的最佳时机是三年前,其次是现在。”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点。
|
Java API
Java——重要但容易忽略的知识
本文将一点一滴的累计记录Java中的一些细节知识。不只是加以说明,而是所有的细节都找到来源,以官方文档、知名社区的介绍为主。
12091 0