话题10 千差万别----i++与++i的区别
2015-11-23 19:14
861 查看
1 ++i与i++的区别
在使用的时候,大家都了解的是++i是先加再用,而i++是先用再加。但是二者其实有很大区别的。2 .代码测试
如下代码:/** * */ package chapter2; /** * @author Vayne * */ public class ProandPost { public static void main(String[] args) { int i = 15; function1(i); function2(i); function3(i); } /** * @param i */ private static void function3(int i) { // TODO Auto-generated method stub i = i++; System.out.println("i=i++的结果是:" + i); } /** * @param i */ private static void function2(int i) { // TODO Auto-generated method stub int j = 0; j = i++; System.out.println("j=i++的结果是:" + j); } /** * @param i */ private static void function1(int i) { // TODO Auto-generated method stub i = ++i; System.out.println("i=++i的结果是:" + i); } }运行结果如下:
i=++i的结果是:16 j=i++的结果是:15 i=i++的结果是:15
3 .区别小议
对于后置++,即i++,其实其实际应用过程是:int temp=i; i+=1; f(temp);其中f指的是对temp的实际应用。因此,在i++使用的过程中,引入了第三个变量temp,因此,对于i=i++,是将temp的值赋给了i,所以i=i++的结果,i为15。
而对于前置++,即++i,直接将i+=1,然后直接应用i。
4 .进一步的探索
从伪指令角度来说,前置++是将变量+1后应用,而后置++是先将变量的值压入栈中,然后将变量+1,最后应用的是栈中的值。相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统