JavaSE面试题——自增运算(局部变量表 + 操作数栈)

news/2025/2/23 21:25:52

1.Go!!!

如下代码的运行结果:👇👇👇

public class Test {
	
	public static void main(String[] args) {
		int i = 1;
		i = i++;
		int j = i++;
		int k = i + ++i * i++;

		System.out.println("i=" + i);
		System.out.println("j=" + j);
		System.out.println("k=" + k);
	}
}

下面来分析一下:👇👇👇

int i = 1;

此时 i 变量在局部变量表中,值为1。

i = i++;
  • 赋值=,最后计算
  • =右边的从左到右加载值依次压入操作数栈
  • 实际先算哪个,看运算符优先级
  • 自增、自减操作都是直接修改变量的值,不经过操作数栈
  • 最后的赋值之前,临时结果也是存储在操作数栈中

所以先将i的值压入操作数栈中,此时值为1。然后执行++自增操作,i在局部变量表中的值由1变为2。最后执行=赋值操作,将操作数栈中i的值赋值给i,执行完毕,i的值为1。

int j = i++;

int k = i + ++i * i++;

红色斜杠划掉的值是2;绿色斜杠划掉的值是3;紫色斜杠划掉的值是3。

所以最终的结果就是:i=4,j=1,k=11。


http://www.niftyadmin.cn/n/711250.html

相关文章

网络爬虫基本原理(一)

本文转载至 http://www.cnblogs.com/wawlian/archive/2012/06/18/2553061.html 网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。 一、网络爬虫的基…

基于fullcalendar制作的日程管理小demo

一、项目地址: https://github.com/linqian123... 二、项目功能概述: 该项目是基于fullcalendar而制作的日程管理,fullcalendar是一个基于jquery的日历插件,在该项目中,我们可以在日历上编辑我们的日程,并将…

群辉助手Synology Assistant使用教程

下载 百度网盘链接直接下载即可 链接:https://pan.baidu.com/s/1XlQEcTCqBTsOgp-761jdOg?pwd5vyf 提取码:5vyf --来自百度网盘超级会员V5的分享 安装 直接双击安装,等待安装完成 能搜索到上图应用说明安装成功 使用 点击搜索按钮&…

让Win8自动登录免输入密码的小技巧

按WinR键,输出“netplwiz”,单击“确定”,弹出“用户帐户”窗口。将第一个画框上的勾选去掉——应用——弹出自动登录输入你的密码——确定——确定完成。重启看看电脑是不是不用输入密码也可以自动登录了,注销后还要输入密码的。…

JavaSE面试题——Singleton单例模式的几种写法

1.Go!!! 我们都知道,在23种设计模式中,单例模式是最容易理解、最简单的一种了,它也是软件开发中最常用的设计模式之一了。 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用…

深度学习课程笔记(五)Ensemble

深度学习课程笔记(五)Ensemble 2017.10.06 材料来自: 首先提到的是 Bagging 的方法: 我们可以利用这里的 Bagging 的方法,结合多个强分类器,来提升总的结果。例如: 通过这种求平均的方法&#…

JavaSE面试题——类初始化 实例初始化

1.Go!!! 以下代码的运行结果是:👇👇👇 运行结果如下:👇👇👇 分析: 首先这道题它考查了:类的初始化、实例的初始化、方法重…

Linux下wget下载整个FTP目录(含子目录)

2019独角兽企业重金招聘Python工程师标准>>> wget -nH -m --ftp-useryour_username --ftp-passwordyour_password ftp://your_ftp_host/* 解释:-nH:不创建以主机名命名的目录。–cut-dirs:希望去掉原来的目录层数,从根…