java中运算符很多,但是能深入讨论的不算太多。这里我仅仅以++,*=为例做讨论。

例:++

i=0;

i=i++ + ++i;//i=1

i=++i+i++;//i=2

i=i++ -++i;//i=-2

因为++运算符遵循的规则:++在前是先计算,后使用;++在后是后计算,先使用;

以i=++i+i++;详解:

先++i,结果是先i加1,再产生i的一份拷贝做为下一步运算的值,假设拷贝为i_copy1,那么++i以后i_copy1的值为1,i值为1.
再i++,结果是产生一份i的拷贝做为下一步运算的值,然后i加1,假设拷贝为i_copy2,那么i++以后i_copy2的值为1,i值为2.

最后"+"运算符的作用是i_copy1+i_copy2,根据上面推论结果为1+1=2;

==========================================================

--运算同++;

==========================================================

关于拓展运算符;

首先:

char a;

a+=b~a=a+b

a+=b == (char)(a+b);

拓展运算符不改变数据类型

byte i=10;
i=i+10;//错误,右边是int型
i+=1000;//仍然是byte型,但是精度严重损失;

另一个要注意的是拓展运算符的运算顺序;

例:

int x=5;
int b=x*=x/=x+x;//拓展赋值运算同一个算式中,x的值不会变;//如果是同一个算式中从左往右++,--,x的值每一步都会改变;
System.out.println(b);
这题输出为0;因为计算机中,赋值是从右往左赋值的;所以多个拓展运算在一个算式中的时候,从右往左计算 x+x=10;5/10=0;5*=0--->0;

关于java中自增,自减,和拓展运算符的小讨论的更多相关文章

  1. JAVA中自增自减运算符(i++与++i的区别)

    注意: 自增运算符和自减运算符只能用于变量,而不能用于常亮或表达式 运算符 运算 范例 结果 ++ 自增(前):先运算后取值 a=2;b=++a; a=3;b=3; ++ 自增(后):先取值后运算 a ...

  2. Java中Calendar.DAY_OF_WEEK需要减一的原因

    http://blog.sina.com.cn/s/blog_45c06e600100pm77.html ——————————————————————————————————————————————— ...

  3. c中自增自减的妙用

    #include <stdio.h> int main() { ; printf("%d,%d,%d,%d",i++;i--;++i;--i); /*运算从右往左运算 ...

  4. Java基础——自增自减及初识Math类

    自增自减及初识Math类  public class Demon05 {     public static void main(String[] args) {         // ++ -- 自 ...

  5. 2017年9月22日作业 c++算术运算符 自增 自减 逻辑运算符 位运算符 条件运算符(三元运算符)

    作业1: c++算术运算符试题,分析下面程序的输出结果是什么 //第一个: int x=8999;int value=x*1000/1000; //第二个 int x=8999;int value=x ...

  6. Java SE --- 自增自减

    关于变量的自增与自减运算.   1) int b = a++,作用是将a的值先赋给b,然后再让a自增1.   2) int b = ++a,作用是将a的值先自增1,然后将自增后的结果赋给b. 直接上例 ...

  7. Java中自增(++)和赋值(=)运算效率比较

    前言   将一个int型数组x[]从初值0变成1.有两种做法: // 只考虑后自增 int length = x.length; for (int i = 0; i < length; i++) ...

  8. Java基础-自增自减运算符练习题

    我们用一个简单的例子分析下边的运行结果: package demo; public class ZiZeng { int i = 0; test(i); // i = i++; i = ++i; Sy ...

  9. Java——变量自增(++)自减(--)

    //运算符在操作数之后,称为“后增量”.i变量自增,返回自增之前的值;//运算符在操作数之前,称为“前增量”.i变量自增,返回自增之后的值.//自减同理 public static void test ...

随机推荐

  1. [笔记]linux磁盘管理

    sudo mount -r /dev/sda3 /mnt/vista 只读挂载 sudo umount sudo umount -r 无法卸载时只读重新挂载 mount -t(指明设备类型) 可用参数 ...

  2. 禁用Windows重复数据删除

    重复数据删除,可以减少磁盘占用,但使用不当也有可能增加IO,另外,也为此功能会将硬盘分块,所以当硬盘占用较高时,进行碎片整理也比较困难,所以有时需要禁用掉重复数据删除功能,并解除重复数据的优化,可以通 ...

  3. CANopen学习——PDO

    查找资料时,发现一个很好的博客,博主剖析的通俗易懂 http://www.cnblogs.com/winshton/p/4897556.html   PDO定义: 过程数据对象,用来传输实时数据.因为 ...

  4. Hemodynamic response function (HRF) - FAQ

    Source: MIT - Mindhive What is the 'canonical' HRF? The very simplest design matrix for a given expe ...

  5. LA 3231 - Fair Share

    You are given N processors and M jobs to be processed. Two processors are specified to each job. To ...

  6. PHP 原创视频教程-网站开发新手视频教程

    PHP 原创视频教程-网站开发新手视频教程 有偿招徒弟,,视频免费提供. 本视频教程,面向的是毫无经验的新手,快速上手的. 第一次做视频做的不好的,请各位看官多多包含. 第一部分,HTML 视频教程 ...

  7. [LeetCode] Power of Two 判断2的次方数

    Given an integer, write a function to determine if it is a power of two. Hint: Could you solve it in ...

  8. 基于C/S架构的3D对战网络游戏C++框架 _01服务器端与客户端需求分析

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  9. linux基础-磁盘阵列(RAID)实例详解

    磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 R ...

  10. 给空签名包进行签名以及找不到keystore证书链问题的解决方案

    转 http://blog.csdn.net/u011106842/article/details/49683865