java i 和i,详解Java中i++和++i的区别

i++ :先赋值再自增

先在i所在的表达式中使用i的当前值,后让i加1

++i :先自增再赋值

让i先加1,然后在i所在的表达式中使用i的新值

以下列java代码为例:

79b3364510f63b347af1a57e3e6f1afa.png

运算结果为:46e2364b2ad1bb6a8d35f9ae22d4e2fb.png

这表明: i++是指先把i=0的值赋值给j, 然后再自身加1;

对于++i:

718cefc808996bb52b9c9b444e60ee67.png

运算结果为:

c7b03690869756c29aa28ff7a73c5120.png

表明++i是指先自身加1后赋值给z;

还要注意二者的以下使用不同:

// 测试三

i = 0;

i++;

i++;

i++;

i++;

i++;

System.out.println("i=" + i);

// 测试四

i = 0;

i = i++;

i = i++;

i = i++;

i = i++;

i = i++;

System.out.println("i=" + i);

测试结果为:

6ba89d165911a27cd787a5ea19eecf6b.png

后面一种写法结果为零,是因为i 先执行 i=i=0,之后才会自加

但五个i=i++, 是赋值之后再自增1,i=0这个值先进寄存器,然后i在内存自增1,

最后赋值的时候寄存器出来的0值会冲掉1值成为最终结果,所以无论多少个结果都会是0。

而++i不会有这种问题

在一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,因为这涉及到效率问题

++i相当于下列代码

i += 1;

return i;

i++相当于下列代码

j = i;

i += 1;

return j;

当然如果编译器会将这些差别都优化掉,那么效率就都差不多了。

在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值放进去,不用了才去释放。

多了这么一系列操作当然耗时,最后建议大家以后在写for循环且不影响逻辑的情况下多使用++i,少使用i++,

bgwsoye
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java的i++++i的区别详解
08-18
"java的i++++i的区别详解" Java的i++++i是两个非常重要的运算符,它们都是对变量进行自加操作,但是它们的执行顺序和结果却有所不同。 首先, let's 看一下它们的定义: * i++:后加加,先使用变量的当前...
java里面i++++i
最新发布
qq_35368296的博客
09-12 2750
i++++i
深入理解Java的i++++i语句
RayPick的博客
09-16 3311
在很多高级编程语言,都会有i++++i这种语法。例如在Java语言,这两条语句都只能作为右值,而不能作为左值。同时,它们都可以作为独立的一条指令执行。下面用示例来讲解一下这两条语句。 int i = 0; int j = i++; // 正确 int k = ++i; // 正确 i++; // 正确 ++i; // 正确 i++ = 3; // 编译不通过 ++i = 3; // 编译不通过 关于i++++i的区别,大家应该都是有所了解的,本文将通过实例来简单地解释一下。 { int
【搞定Java基础】之 i++++i 详解
Java学习
12-08 3218
目  录: 一、i++++i 的基本概念 二、i++++i 的实现原理 三、i++++i 在使用时的一些坑 3.1、i = i++ 导致的结果“异常” 3.2、多线程并发引发的混乱 一、i++++i 的基本概念 在几乎所有的命令式编程语言,必然都会有 i++++i 这种语法。有些语言 i++++i 既可以作为左值又可以作为右值,笔者专门测试了一...
Java基础知识之i++++i的区别和使用
qq_46440427的博客
10-21 1125
Java基础知识之i++++i的区别和使用
Javai++++i
yuhuofei的草屋
08-17 2495
i++ 很多时候,我们都将i++理解成先用后自增1,按照这样的理解,我们发现有时候能行得通,有时候却解释不了一些问题,所以这样的理解是存在问题的。 i++这个表达式做了两件事:(1)实现i的自增1,即i = i+1(2)整个表达式返回i未自增1前的旧值。 因此,我们可以将i++拆解成以下三个步骤: int original_i = i; //(1)先保留i的旧值 i = i + 1; //(2)做i的自增 return original_i; //(3)返回i++这个表达式的值,即i的旧值origi
详解java面试题的i++++i
08-27
Javai++++i的详解 Java的i++++i是两个常见的运算符,经常出现在面试题。它们的作用都是将变量i加1,但是它们的执行顺序和返回值却有所不同。 首先,让我们从字节码的角度来看addAfterReturn和...
Java I/O技术之文件操作详解
09-04
Java I/O技术是Java编程不可或缺的一部分,它用于处理输入和输出操作,特别是在与文件系统交互时。在Java,I/O操作的核心是`java.io`包,它提供了丰富的类和接口来支持文件操作和其他形式的数据传输。本文将深入...
Java i++++i 原理
热门推荐
崔显龙的博客
08-30 1万+
记得大学期间学习C语言的时候,对于 i++++i (i-- 和 --i)的理解,一直似懂非懂的状态,因为很多人给出的解释都不够严谨,比如:i++是在操作之后增加,而++i是在操作之前增加。但是,如何确定“操作”的时间点呢?由于平时使用的时候,没有出现过什么问题,为了代码的可读性,也不会刻意写一些“看似很牛X”的复杂且冗长的代码,这个问题也就没有去深究。今天突然心血来潮,想弄清楚其的原理,并以此文作为记录。
javai++++i、i--、--i 的含义和使用方法
weixin_42380472的博客
11-03 5823
1、javai++++i、i–、–i 的含义和使用方法。 ***1.1、i++的意思就是先把值赋值给等号左边的对象,然后再自增1.*** 首先定义两个参数i1=10,i2=20; 然后把i1++的值赋值给i。 然后输出i和i1的区别。 int i1 = 10; int i2 = 20; int i = i1++; syso(i); syso(i1); 结果为: i=10; a=11; ***1.2、++i的意思是先自增1,然后再赋值给等号左边的对象。*** 代码
Java i++++i
默默不代表沉默
08-05 4401
前言 为什么发一篇这么常见的,看上去没有营养的文章? 原因是: 在某个交流群,发现很多人竟然都不清楚,张口就胡说。 所以该篇发出来,让刚好点进来看到这篇文章的初学者,加深一下印象。 正文 本质: i++ 先赋值再运算 ++i 先运算再赋值 但是 既然是说到赋值,对于赋值来说,那上面的描述改成: a=i++; 先i赋值给a,i再运算 a=++i; 先i运算,再赋值给a 实例测试1: public static void main(String[] args) { .
深入理解java的i++,++i机制
weixin_47993432的博客
03-17 1791
public class demo1 { public static void main(String[] args) { int i=1; int num=i++; System.out.println(num); } } 首先我们看一下局部变量表: 包含三项,分别是args、i、nums,索引分别是0、1、2; 0 iconst_1 1 istore_1 2 iload_1 3 iinc 1 by 1 6 istor.
Java】 i++++i的区别
helloxiefei的博客
02-17 4365
的值增加后的结果,那么这两个运算符的结果是相同的。但是,如果你需要使用。的原始值或增加后的值,那么就需要注意这两个运算符的不同。它们的区别在于它们的返回值和执行时机不同。的主要区别在于返回值的顺序和时间。是前缀运算符,它在返回增加后的值之前将。都是一元运算符,用于将一个整数变量。是后缀运算符,它在返回原始值之前将。
Java i++++i问题详解
叶爷也野的专栏
10-06 2157
运算符优先级 i++++i的区别 i++, 先用i的值参与计算,然后再自增1。如: i=4; a=i++; //此时,先将i的值赋给a,i再自增,故a=4,i=5 ++i,先自增1,再参与计算。如: i=4; a=++i; //此时,i先自增1,再将值赋给a,故a=5,i=5 例题 public class AutoIncreaseTest{ public static void ...
java】i++++i的相同和区别
weixin_43088960的博客
01-08 451
i++++i 相同、区别
Java基础知识】i++++i的区别和理解
weixin_44002043的博客
07-12 574
java“ for (int i = 2;i
Java进阶--Java i++完全解析
有图有真相
06-08 6429
在讲 i++++i之前先看两个在笔试面试经常遇到的题目: 题目1//代码1 int x=2; int b=(x++)*3; System.out.println(b);/* 输出结果为:6 */题目2//代码1 int i=0; for(int j=0;j<100;j++)
Java I/O操作详解与优化策略
Java I/O操作及优化是Java编程至关重要的部分,它涉及到数据的输入(Input)和输出(Output)处理。在Java,流(Stream)的概念被广泛应用,它们代表一组有序的、有起点和终点的字节集合,用于数据传输,提供了...
写文章

热门文章

  • 软件测试简历上的职业技能怎么写,测试工程师岗位个人简历个人技能范文 5790
  • python正则表达式详解 pandas_【python】正则表达式的分组及在pandas中的实用操作... 4192
  • 开关电源雷击浪涌整改_开关电源之雷击浪涌大解剖 2829
  • python 二维列表相加_Python 列表相加 2688
  • cad等比例缩放快捷键_原来CAD可以这样不等比例缩放!太方便了!这些技巧你都知道吗?... 2671

大家在看

  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得 299
  • Android轻量级RTSP服务使用场景分析和设计探讨 1602
  • 正点原子阿尔法ARM开发板-IMX6ULL(六)——通过官方SDK完成实验 602
  • 【开题报告】基于django+vue校园外卖配送管理平台小程序(论文+程序) 1467
  • Mybatis源码学习(六)——sql 字符串获取及参数设置过程

最新文章

  • android usb摄像头抓拍和预览
  • mysql 自动化处理单引号
  • PySide6开发桌面程序,PySide6入门实战(下)
2024年5篇
2021年146篇
2020年14篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王筠连县网站seo优化排名宁波做网站优化哪家好余杭区网站优化方案绍兴网站优化哪家价钱合理舞钢关键词网站优化重庆综合网站优化价格表网站排名优化分金手指排名四优化网站排名采选火30星棒桓台网站优化公司鄂州工厂网站优化公司排名网站优化好吗光泽县网站排名优化长沙哪里优化网站深圳公司的网站优化需要多少钱网站排名优化认可f火18星来昆明网站关键词优化费用北京优化网站建设高淳区模板网站优化网站的优化不包括什么石家庄网站优化飞数科技首选网站搜索优化偬云速捷一流汕头网站seo优化哪家好外包网站优化多少钱长岛响应式网站优化公司吴忠网站优化哪里有网站权重优化标准鹤壁网站关键词排名优化芝罘自助建站软件网站优化天津绿化网站优化网站seo优化服务怎么收费呀香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化