Java中的自增自减
情况①:
for (int i = 0; i < 100; i++) {
j = 1 + j++;
}
System.out.println(j);
结果是 0 !! 这是由于在进行后自增/自减(j-- j++)操作的时候,先开辟一块新的内存空间来保存运算之间的 j 值,然后再进行++操作,最后将新的内存空间保存的值赋值给等式的左边。
j = j++ 相当于:
temp = j; // 开辟新的内存空间保存原来的 j 值
j = j + 1; // 进行++操作
j = temp; // 将新内存空间保存的值赋值给等式左边
情况②:
int j = 1;
int x = j++ + (j+2); // 在第三个+之前 j=1, 在第三个+之后 j=2 即 x = 1 + (2+2);
System.out.println(x); // 结果是 5
情况③:
j = 1;
j = ++j + j++; // 相当于 j = 2 + j(此时j=2)++;
System.out.println(j); // 结果是 4
和情况①相同:
j = 2 + j++ 相等于:
temp = j;
j = j + 1;
j = 2 + temp;
情况④:
int j = 1;
j = j++ + ++j + j++ + j++; // j = 1 + 3 + 3 + j(此时j=4)++
System.out.println(j); //结果是11
Java中的自增自减的更多相关文章
- 【Java】【4】关于Java中的自增自减
摘要:理解j = j++与j = ++j的区别:正确用法:直接用j++,不要用前两种 正文: import java.util.*; public class Test{ public static ...
- java基础(二) 自增自减与贪心规则
引言 JDK中提供了自增运算符++,自减运算符--.这两个操作符各有两种使用方式:前缀式(++ a,--a),后缀式(a++,a--).可能说到这里,说不得有读者就会吐槽说,前后缀式都挺简单的,前 ...
- 6.Java基础_Java自增自减/关系/逻辑/三元运算符
/* 自增自减运算符 关系运算符 逻辑运算符 三元运算符 (同C++) */ public class OperatorDemo01 { public static void main(String[ ...
- Java中的自增问题(i=i++)
也许我这是在较真, 但是我们确实有时候就不小心就错写为这种情况了. 看如下代码: public class Test{ public static void main(String[] args){ ...
- java中的自增问题
运行下面这段代码,其结果是什么呢? package com.test; public class Inc { public static void main(String[] args) { Inc ...
- java的前缀自增自减和后缀自增自减
2.前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算. 3.后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 实例: 实例 public cla ...
- C# 中重载自增自减操作符的具体运算原理 ----从C++程序员的角度看C#自增操作符重载的实质
看了看C#的运算符重载,发现与C++打不相同.刚刚被C#的自增操作符坑了,现在来分享一下. 先定义一个类 class A { public int i; public A(int I) { i = I ...
- java中集合的增删改操作及遍历总结
集合的增删改操作及遍历总结
- java中双向链表的增、删、查操作
import java.util.NoSuchElementException; public class DoublyLinkedListImpl<E> { private Node h ...
随机推荐
- Python应用与实践-转自(吴秦(Tyler))
1. Python是什么? 1.1. Python语言 1.2. Python哲学 2. Python在工作中的应用 2.1. 实例1:文件批量处理 ...
- mysql基础之查询缓存、存储引擎
一.查询缓存 "查询缓存",就是将查询的结果缓存下载,如果查询语句完全相同,则直接返回缓存中的结果. 如果应用程序在某个场景中,需要经常执行大量的相同的查询,而且查询出的数据不会经 ...
- C语言练习题1(关于快速排序,二分查找与运行时间)
刚刚完成师兄给的一道题目: 随机生成10000位数,进行快速排序后,用二分查找法定位到某个要查询的数(键盘输入某个要查询的数), 结果输出查询的时间,以及是否查到 分享下自己的解题思路: 1,要懂得 ...
- 【分布式】-- 基于Nacos、OpenFeign搭建的微服务抽奖系统后台小案例
1.项目介绍 最近入项目之前要求熟悉一下SpringCloud Nacos微服务基于Feign接口调用并整合Swagger2进行接口文档展示给前端,所以自己按照要求来编写并整合了一套基于SpringC ...
- Spring 实例化方式有几种?为什么会用到 Cglib?
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! <Spring 手撸专栏>目录 [x] 第 1 章:开篇介绍,我要带你撸 Spri ...
- php代码审计之命令执行中windows/linux的差异化问题
昨天好基友发来了一段代码,还是挺有趣的,记录下: <?php $a = '\''.str_replace("'","\'",$_GET[1]).'\''; ...
- 视频动作定位的分层自关注网络:ICCV2019论文解析
视频动作定位的分层自关注网络:ICCV2019论文解析 Hierarchical Self-Attention Network for Action Localization in Videos 论文 ...
- 广播 (broadcasting)
广播 (broadcasting) 飞桨(PaddlePaddle,以下简称Paddle)和其他框架一样,提供的一些API支持广播(broadcasting)机制,允许在一些运算时使用不同形状的张量. ...
- 编译器架构Compiler Architecture(下)
编译器架构Compiler Architecture(下) Combining Scanning and Parsing 实际上没有必要将扫描(词法分析/标记化)与解析(语法分析/树生成)分开.基于P ...
- 一、部署监控服务器--安装LNMP环境
1.要求: 本案例要求部署-台Zabbix监控服务器, -台被监控主机,为进一步执行具体的监控任务做准备:1.安装LNMP环境2.源码安装Zabbix3.安装监控端主机,修改基本配置4.初始化Zabb ...