`
134564
  • 浏览: 20771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分析"一个很伤脑的笔试题"

 
阅读更多

int a=2;
int b=a+3*a++;
System.out.print(b);


b=???

我的第一反应应该是 b=9; 因为a++,操作应该会把第一个a的值变成3;
也就是说 b= 3 + 3 * 2 = 9;

结果是错的. 显示的是8.

分析一下啊:

public static void main(java.lang.String[] args);
     0  iconst_2  // 将int数[_2=2]压入操作时栈中;  当前操作数栈为: 2
     1  istore_1 [a] //将int数据保存到局部变量表中[_1=变量表的索引值]; 当前操作数栈为: 空
     2  iload_1 [a] //从局部变量表中加载一个int类型的变量放到操作数栈中; 当前操作数栈为:a=2 
     3  iconst_3 //将int数[_3=3]压入操作时栈中;  当前操作数栈为: 3,a=2, 
     4  iload_1 [a] //从局部变量表中加载一个int, 放入操作数栈中;  当前操作数栈为: a=2, 3,a=2,
     5  iinc 1 1 [a] //将指定int型变量增加指定值。 a++只有iinc指令直接对局部变量进行自增操作不涉及操作数栈; 当前操作数栈为: a=2,3,a=2,
     8  imul //乘法指令; 当前操作数栈为: 6, a=2
     9  iadd //加;  当前操作数栈为: 8
    10  istore_2 [b] //将int数据保存到变量表中;  b=8; 当前操作数栈为: 空
    11  getstatic java.lang.System.out : java.io.PrintStream [16] //获得静态数据out
    14  iload_2 [b] //从局部变量表中加载一个int; 当前操作数栈为:b=8 
    15  invokevirtual java.io.PrintStream.print(int) : void [22]
    18  return
      Line numbers:
        [pc: 0, line: 6]
        [pc: 2, line: 7]
        [pc: 11, line: 8]
        [pc: 18, line: 9]
      Local variable table: //局部变量表
        [pc: 0, pc: 19] local: args index: 0 type: java.lang.String[]
        [pc: 2, pc: 19] local: a index: 1 type: int
        [pc: 11, pc: 19] local: b index: 2 type: int




a++:  操作直接对局部变量进行自增操作不涉及操作数栈

很明白了吧. a++没有改变操作数栈, 所以 b = 2 + 3 * 2 = 8;









感谢<Java虚拟机规范>的汉化者.

  • 大小: 46.9 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    需求分析师笔试题

    需求分析师笔试题中的第一个问题是关于项目立项阶段的需求定义的,它属于需求三个层次中的业务需求。在这个阶段,需要定义的需求包括项目目标、范围以及需求大纲的初稿。 第二个问题是关于构件图的解读,涉及到客服...

    嵌入式软件笔试题合集.zip

    嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集...

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    C#笔试题大全C#笔试题大全C#笔试题大全.

    C#笔试题大全C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.,让你...

    数据分析笔试题数据分析笔试题数据分析笔试题

    数据分析是信息技术领域中一个至关重要的分支,它涉及对大量数据进行收集、清洗、转换、建模和解释,以便为企业决策提供有力支持。在本篇中,我们将深入探讨数据分析的核心概念、常用工具和技术,以及如何应对数据...

    2012-2015历年中国移动笔试真题资料移动招聘合集.zip

    2013年四川移动校招笔试题.zip 2014年中国移动招聘笔试试题及答案.pdf 2015年中国移动招聘笔试试题及答案.pdf 移动笔试真题之市场营销类--中国移动校园招聘客服人员试题及答案.pdf 移动笔试真题之技术类--2010年厦门...

    C++笔试题汇总(含答案与分析)

    这是本人亲自总结的C++笔试题汇总,参考了网络很多C++笔试题(包括各大IT公司,游戏公司),挑选出了一些经典的题和难题做解析。 作用:对工作面试笔试和C++水平提高很有用处 内容:C++,STL等;

    c++笔试题汇总c++笔试题汇总.rar

    c++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rar

    2021紫光笔试题IC校招笔试题.zip

    《2021紫光笔试题IC校招笔试题》是一个针对集成电路(IC)行业的笔试题目集合,主要针对应届毕业生的招聘过程。紫光集团是中国知名的集成电路设计与制造企业,其笔试题目的涵盖范围广泛,旨在测试应聘者的专业知识、...

    2019雷达算法工程师笔试题

    噪声系数是衡量设备内部噪声水平的指标,一个系统的级联噪声系数主要由第一级决定,其数值大于1时,说明系统会产生额外的噪声。理想系统下噪声系数为1,而实际上,噪声系数与多个参数相关,如器件的噪声温度。 在...

    百度历年笔试题

    对语言特性的理解和应用能力是衡量一个程序员基本素质的重要指标。 三、计算机网络 网络协议、TCP/IP模型、HTTP请求响应机制、网络安全等内容也是常考知识点。理解网络原理对于开发分布式系统、优化网络性能至关...

    历年东方海外招聘笔试题以及答案

    UML 又称统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格、到构造和配置。UML 的重要内容可以由五类图(共 9 种图形...

    阿里巴巴校招前端笔试题

    阿里巴巴校招前端笔试题 校招前端笔试题.pages

    中国移动招聘历年笔试真题

    笔试作为招聘过程中的一个重要环节,对于应聘者来说,了解并熟悉历年来的笔试真题至关重要。这份"中国移动招聘历年笔试真题"的压缩包文件,很可能是包含了一些往年中国移动笔试的部分题目或者模拟试题的图片资料。 ...

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    跳还是不跳,是一个问题——跳槽时该如何权衡?.docx 进入IT企业必读的324个JAVA面试题.pdf 阿里2015实习生-客户端笔试题目解析.docx 面试帮-IT面试宝典.apk 面试题库 高吞吐低延迟Java应用的垃圾回收优化.docx 黑马...

    JSD面试笔试题汇总 JSD面试笔试题汇总

    JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题...

Global site tag (gtag.js) - Google Analytics