我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java中i=i++和j=i++的区别小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java中i=i++和j=i++的区别小结

i=i++;j=i++的区别

i=i++-----------在java中 这个语句的前后顺序应该是这样的(tmp=i;i++;tmp==i)

java的编译器在遇到i++和i- -的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉,下面首先看一下如果是j=i++的情况:

 

i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。

看看i=i++的情况:

 

i的原始值存放在后开辟的内存中,给刚开始的i进行自加,最后再将后面内存中的i赋给刚开始的i.

我们来看看这两个程序反编译的结果

这个是i=i++; 

 

1:   iconst_0   整型常量值0进栈

2:   istore_1   将栈顶整型数值存入第二个局部变量

3:   iload_1  第二个整型局部变量进栈

4:   iinc    1, 1 指定整型变量增加指定值

5:   istore_1  将栈顶整型数值存入第二个局部变量

 j = i++;

 

反编译后是这样的

7:   iconst_0  整型常量值0进栈

8:   istore_1  将栈顶整型数值存入第二个局部变量

9:   iconst_0  整型常量值0进栈

10:  istore_2 将栈顶整型数值存入第三个局部变量

11:  iload_2  第三个整型局部变量进栈

12:  iinc    2, 1 指定整型变量增加指定值

15:  istore_1  将栈顶整型数值存入第二个局部变量

总结

到此这篇关于java中i=i++和j=i++区别的文章就介绍到这了,更多相关java i=i++和j=i++区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java中i=i++和j=i++的区别小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java中i++与++i的区别

i++是先赋值,再运算,++i是先运算,再赋值。实例如下:package com.test; public class TestAdd { public st
java中i++与++i的区别
2017-03-13

c++中i++和++i的区别

c++ 中 i++ 和 ++i 的区别在于读取和递增变量值的顺序:i++:先读取 i 的原始值,再递增其值。++i:先递增 i 的值,再读取递增后的值。C++中i++和++i的区别在C++编程语言中,i++和++i都是后缀递增运算符,用于
c++中i++和++i的区别
2024-05-01

c++中++i和i++的区别

在 c++ 中,递增运算符 ++i 和 i++ 的区别在于执行顺序:++i 先递增再计算表达式,而 i++ 先计算表达式再递增。因此,需要立即使用递增后的值时使用 ++i,需要先使用原始值再递增时使用 i++。C++ 中 ++i 和 i++
c++中++i和i++的区别
2024-04-26

c++中的i++和++i区别

c++ 中的 i++ 和 ++i 运算符用于增加变量 i 的值,主要区别在于运算符的位置:后缀增量运算符 (i++) 先操作 i 值,然后返回原始值;前缀增量运算符 (++i) 先增量 i 值,然后返回增量值。C++ 中的 i++ 和 ++
c++中的i++和++i区别
2024-05-12

java中的表达式i++和++i的区别

区别:i++先赋值再自增;++i先自增再赋值。相关视频教程推荐:java视频教程例如: int i=0; System.out.println(i++); System.out.println(i++);第一个打印出0
java中的表达式i++和++i的区别
2017-08-06

在c语言中i++和++i的区别

c语言中 i++ 和 ++i 都为自增运算符,执行顺序不同:i++ 先读取 i 值再加 1;++i 先加 1 再读取 i 值。C语言中 i++ 和 ++i 的区别直接回答:C语言中,i++ 和 ++i 都是自增运算符,但执行顺序不同。详
在c语言中i++和++i的区别
2024-05-02

c语言中++i与i++的区别

c 语言中,单目递增运算符 ++i 与 i++ 的区别在于执行递增操作的顺序:++i(前置递增):先将变量递增 1,再返回结果。i++(后置递增):先返回变量当前值,再将变量递增 1。C 语言中 ++i 与 i++ 的区别在 C 语言中,
c语言中++i与i++的区别
2024-05-02

C语言中的i++和++i有什么区别

这篇文章主要讲解了“C语言中的i++和++i有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的i++和++i有什么区别”吧!(1)如果只是看i++和++i,这两个是等价的,都
2023-06-03

c语言中i++和++i的区别是什么

这篇文章主要讲解了“c语言中i++和++i的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言中i++和++i的区别是什么”吧!我们先用 while 语句写一下 i++:for(
2023-06-27

c语言中i和i有什么区别

c 语言中的 i 和 i 是大小写不同的标识符,分别代表变量名或常量名。 i 通常用于整型变量,i 通常用于表示数字 1 的常量,但用法不限于此。C 语言中 i 和 I 的区别在 C 语言中,i 和 I 是两个不同的标识符,用于代表变量名
c语言中i和i有什么区别
2024-05-10

c语言中++i和i++有什么区别

c语言中,++i和i++都是递增运算符,但区别在于:++i是前缀运算符,先递增再取值;i++是后缀运算符,先取值再递增;++i返回递增后的值;i++返回递增前后的值。C 语言中 ++i 和 i++ 的区别在 C 语言中,++i 和 i++
c语言中++i和i++有什么区别
2024-04-27

ThinkPHP中I()和create()方法有哪些区别

这篇文章主要介绍了ThinkPHP中I()和create()方法有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ThinkPHP中I()方法接收数据和create()
2023-06-22

从Java IO到Java NIO:如何理解阻塞和非阻塞I/O的区别?

Java NIO是非阻塞的,因为它基于选择器和通道实现了非阻塞I/O,支持同时处理多个通道的I/O事件,从而提高了I/O操作的效率和响应性能。相比之下,传统的Java IO(也称为IO流)是阻塞的,因为它只能同时处理一个输入/输出流,当进行

NumPy中np.c_ 和 np.r_ 的区别小结

NumPy中的np.c_和np.r_函数用于连接数组。np.c_按列连接,将数组逐行堆叠,形成新数组中各行的元素分别来自不同输入数组。np.r_按行连接,将数组逐列堆叠,形成新数组中各列的元素分别来自不同输入数组。
NumPy中np.c_ 和 np.r_ 的区别小结
2024-04-02

Vue中computed和watch的区别小结

watch和computed都是以Vue的依赖追踪机制为基础的,当某一个依赖型数据发生变化的时候,所有依赖这个数据的相关数据会自动发生变化,即自动调用相关的函数,来实现数据的变动,这篇文章简单介绍下Vue中computed和watch的区别异同,感兴趣的朋友一起看看吧
2022-12-10

Python中json.dumps()和json.dump()的区别小结

json.dumps()将Python对象转换成JSON字符串并返回字符串,常用于发送数据到Web应用程序。json.dump()将Python对象写入JSON文件,无返回值,常用于存储数据。两者均支持缩进和排序等自定义选项。选择函数应根据需求:将对象转换为字符串用json.dumps(),写入文件用json.dump()。
Python中json.dumps()和json.dump()的区别小结
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录