i++ 和++i 的理解 以防面试
根本原理:
//模拟 a++
function afterAdd(){
var temp = a;
a = a+1;
return temp;
} //模拟++a;
function beforeAdd(){
a = a+1;
return a;
}
所以网上找了几个面试题,大家看看:
题目一:输出i的值是多少?
public void test(){
int i = 0;
i=i++;
System.out.println(i);
}
题目二:输出y 和i的值分别是多少?
public class Test3 {
public static void main(String[] args) {
int y=0;
int i =0;
y=++y;
y=++y;
y=++y;
y=++y;
y=++y;
System.out.println("y="+y);
i=i++;
i=i++;
i=i++;
i=i++;
i=i++;
System.out.println("i="+i);
}
}
第三题:js中 console.log出来的结果分别是什么
var a = 5,
b;
b = a++ +1;
console(b,a);
a = 5;
c = a-- + --a;
console(c,a);
a = 5;
d = --a + a++;
console(d,a);
第一题的答案是:0
第一题解析:i= i++;i++原理是:
int temp = i;
i = i+1;
return temp;
也就是说:i++执行的过程是:temp = 0; i=1;返回 temp ;即返回0;回到实际的代码里面:i=i++;即 i=0;
注意:这里原理里面的 i= i+1; 的最后i的结果被 实际的代码给覆盖掉了。所以这句话一直是被覆盖。
第二题答案:5,0
第二题的解析:++y,比较好理解,所以y=5; x的部分跟第一题是类似的;i++ 结果是 0,
int temp = i; //代入i int temp = 0;
i = i+1;// 代入i i= 1
return temp;// 返回 0;
回到代码:
i=i++; 即 i=0;
重复多次后 i=0,所以 输出 i = 0; 第三题的答案:第一个console.long (b,a):6,6; 第二个:console.long (c,a):8,3 ;第二个:console.long (d,a):8,5
第三题的解析:b = a++ +1; a++ 的结果:即
int temp = a; //代入i int temp = 5;
a = a+1;// 代入i i= 1 a = 5+1; 即a = 6;
return temp;// 返回 5; 即 a++ 为 5;
a++的结果是5,所以 b = 5+1 所以=6;
a的结果是,6;
第二个:console.long (c,a) :c = a-- + --a; a--的结果
int temp = a; //代入i int temp = 5;
a = a-1;// 代入i i= 1 a = a - 1; 即a = 4;
return temp;// 返回 5; 即 a-- 为 5;
--a ,当前 a =4,--a 即 a= 3; 所以 c = 5+3 所以 c = 8,a = 3;
第二个:console.long (d,a) :d = --a + a++; --a的结果,4; a++的结果:
int temp = a; //代入i int temp = 4;
a = a+1;// 代入i i= 1 a = 4 + 1; 即a = 5;
return temp;// 返回 4; 即 a++为 4;
a++ 为 4,d= 4+4 所以d=8 a = 5;
i++ 和++i 的理解 以防面试的更多相关文章
- 干货,阿里P8浅谈对java线程池的理解(面试必备)
线程池的概念 线程池由任务队列和工作线程组成,它可以重用线程来避免线程创建的开销,在任务过多时通过排队避免创建过多线程来减少系统资源消耗和竞争,确保任务有序完成:ThreadPoolExecutor ...
- 30K入职腾讯,全靠这份606页的Android面试指南
前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...
- 一个五年 Android 开发者百度、阿里、聚美、映客的面试心经
花絮 也许会有人感叹某些人的运气比较好,但是他们不曾知道对方吃过多少苦,受过多少委屈.某些时候就是需要我们用心去发现突破点,然后顺势而上,抓住机遇,那么你将会走向另外一条大道,成就另外一个全新的自我. ...
- 面试体验:Facebook 篇(转)
http://www.cnblogs.com/cathsfz/archive/2012/11/05/facebook-interview-experience.html 2012-11-05 08:2 ...
- ABC: Always Be Coding——程序员面试必
本文作者@guitardave24 ">David Byttow 是一名程序员,曾在 Google 和 Square 等公司工作过. 在正文之前,先让我们回答几个简单的问题:第一,你面 ...
- Steve Yegge:Google面试秘籍
我憋了很长时间想写点关于去Google面试的秘籍.不过我总是推迟,因为写出来的东西会让你抓狂.很可能是这样.如果按统计规律来定义"你"的话,这文章很可能让你不爽. 为啥呢?因为啊- ...
- 360大牛:全面解读PHP面试
让大家了解基本面试流程和面试的核心要求以及意义是什么并理解PHP面试考点主要以基础为核心,说明PHP面试考察范围. 有需要联系:QQ:1844912514
- 年底Android面试整理(附答案)
面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二.以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期, ...
- ios面试心得
第一部分:面试题 注意,下面这些题只是我准备的题库.在实际面试的时候我会根据面试者的水平抽出相应的题目来出的. 技术 基础 为什么说Objective-C是一门动态的语言? 讲一下MVC和MV ...
随机推荐
- hdu-2255 奔小康赚大钱---KM模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2255 题目大意: Problem Description 传说在遥远的地方有一个非常富裕的村落,有一 ...
- C语言 流缓冲 Stream Buffering
From : https://www.gnu.org/software/libc/manual/html_node/Stream-Buffering.html 译者:李秋豪 12.20 流缓冲 通常情 ...
- Python求列表中某个元素的下标
一.求列表中某个元素的下标 def findindex(org, x, pos=-1): counts = org.count(x) #先求出org中包含x的个数 if counts == 0: #个 ...
- ubuntu web server ipython notebook install
http://blog.csdn.net/yehuohan/article/details/51389966 ipython notebook installhttp://blog.csdn.net/ ...
- (转)国内外优秀的Web前端工程师
1. 国内外优秀的Web前端工程师 寻找Github.微博.知乎等技术社区上比较活跃.影响力大的圈内大神,供大家膜拜! 视野所限,未必全面,欢迎大家推荐.自荐. 排名不分先后,序号只为标记方便. 提供 ...
- Load事件中控件Focus()无效解决办法
原因:Load窗体时,窗体未显示 解决:1.Focus()之前添加this.Show(); 2.在Shown事件中添加Focus()
- 14.3-ELK重难点总结和整体优化配置
本文收录在Linux运维企业架构实战系列 做了几周的测试,踩了无数的坑,总结一下,全是干货,给大家分享~ 一.elk 实用知识点总结 1.编码转换问题(主要就是中文乱码) (1)input 中的cod ...
- python函数调用顺序、高阶函数、嵌套函数、闭包详解
一:函数调用顺序:其他高级语言类似,Python 不允许在函数未声明之前,对其进行引用或者调用错误示范: def foo(): print 'in the foo' bar() foo() 报错: i ...
- 洛谷P2389 电脑班的裁员(区间DP)
题目背景 隔壁的新初一电脑班刚考过一场试,又到了BlingBling的裁员时间,老师把这项工作交给了ZZY来进行.而ZZY最近忙着刷题,就把这重要的任务交(tui)给了你. 题目描述 ZZY有独特的裁 ...
- 菜鸟学Linux - 用户与用户组基础
/etc/passwd: 用户的信息是保存在/etc/passwd下面(早期的时候,用户的密码也是放在该文件中.后来出于安全考虑,将密码放在/etc/shadow中去): /etc/group: 用户 ...