根本原理:

//模拟 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 的理解 以防面试的更多相关文章

  1. 干货,阿里P8浅谈对java线程池的理解(面试必备)

    线程池的概念 线程池由任务队列和工作线程组成,它可以重用线程来避免线程创建的开销,在任务过多时通过排队避免创建过多线程来减少系统资源消耗和竞争,确保任务有序完成:ThreadPoolExecutor ...

  2. 30K入职腾讯,全靠这份606页的Android面试指南

    前言 光阴似箭,日月如梭,时间真的过得飞快. 加上实习,从事 Android 开发,差不多有 5 年了.在上家公司职务.薪酬感觉已经到达了天花板,没有上升的余地.而且在这家公司过于安逸了,想换个有挑战 ...

  3. 一个五年 Android 开发者百度、阿里、聚美、映客的面试心经

    花絮 也许会有人感叹某些人的运气比较好,但是他们不曾知道对方吃过多少苦,受过多少委屈.某些时候就是需要我们用心去发现突破点,然后顺势而上,抓住机遇,那么你将会走向另外一条大道,成就另外一个全新的自我. ...

  4. 面试体验:Facebook 篇(转)

    http://www.cnblogs.com/cathsfz/archive/2012/11/05/facebook-interview-experience.html 2012-11-05 08:2 ...

  5. ABC: Always Be Coding——程序员面试必

    本文作者@guitardave24 ">David Byttow 是一名程序员,曾在 Google 和 Square 等公司工作过. 在正文之前,先让我们回答几个简单的问题:第一,你面 ...

  6. Steve Yegge:Google面试秘籍

    我憋了很长时间想写点关于去Google面试的秘籍.不过我总是推迟,因为写出来的东西会让你抓狂.很可能是这样.如果按统计规律来定义"你"的话,这文章很可能让你不爽. 为啥呢?因为啊- ...

  7. 360大牛:全面解读PHP面试

    让大家了解基本面试流程和面试的核心要求以及意义是什么并理解PHP面试考点主要以基础为核心,说明PHP面试考察范围. 有需要联系:QQ:1844912514

  8. 年底Android面试整理(附答案)

    面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二.以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期, ...

  9. ios面试心得

    第一部分:面试题   注意,下面这些题只是我准备的题库.在实际面试的时候我会根据面试者的水平抽出相应的题目来出的. 技术 基础   为什么说Objective-C是一门动态的语言? 讲一下MVC和MV ...

随机推荐

  1. selective search生成.mat文件

    https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口 import t ...

  2. 小w的糖果

    题目连接 : https://ac.nowcoder.com/acm/contest/923/C 算是一道找规律的题了,因为后一个人会比前一个人多,可以理解成后一个人要继承前一个人,sum为当前糖果数 ...

  3. Python 之继承

    概要 如果要修改现有类的行为,我们不必再从头建一个新的类,可以直接利用继承这一功能.下面将以实例相结合介绍继承的用法.   新建一个基类 代码如下: class Marvel(object): num ...

  4. html5shiv.js的作用是

    解析 html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式.让CSS 样式应用在未知元素上只需执行 document.cre ...

  5. Angular 2 树节点的上下移动问题

    最近在做一个树节点的上下移动然后实现排序的问题.直接看图: 实现已选查询条件的上下移动.结合了primeng 的picklist 组件. 下面是html代码 <p-tabPanel header ...

  6. wepy一些问题和解决方案

    wepy一些问题和解决方案 小程序开发和传统的web开发有相识的地方,但是也有不同的地方,要区分. computed属性名和props属性名重复 如果那个组件的渲染值是重名的computed属性,每次 ...

  7. indexOf和contains查找的字符串是空字符,返回值是什么呢?

    一直以为indexOf方法查找的字符串如果不匹配返回值就是-1.今天发现空字符返回值是0.看源码原来如此,阴沟里翻船啊!

  8. docker安装后无法启动问题

    问题报错: Error starting daemon: Error initializing network controller: list bridge addresses failed: no ...

  9. Python操作SQLLite(基本操作)

    SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎.SQLite 源代码不受版权限制. Pyth ...

  10. angularjs的使用技巧

    1. AngularJS的module函数有两种用法, a. 定义一个module, 需要传入2个参数,module('moduleName', []), 第一个参数是新的module名称,第二个参数 ...