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());
}
}
原帖地址:https://blog.csdn.net/zlqqhs/article/details/8288800
最后更新:2017-04-03 16:49:34
上一篇:
Python 中File I/O 和一些常用的方法
下一篇:
Android开发9——Activity的启动模式
JS中window.open和window.opener的使用
JVM源码分析之Metaspace解密
mysql不预读数据库信息(use dbname 更快,不会卡)—Reading table information for completion of table and column names
Keras词级自然语言模型
线程间共享数据无需竞争
开启工业物联网项目要考虑的八大要点
C# Winform OpenFileDialog 控件
云服务掀起价格战 用户成真正受益方
【视频云端-科普】什么是视频封装格式、编码格式?目前SDK对封装格式,编码格式的支持?
Android高仿UC半透明MENU菜单(示图)