和C类似,java提供了丰富的快捷运算方式。这些快捷运算可使代码更清爽,更易录入,也更易读者辨读。

两种很不错的快捷运算方式是递增和递减运算符(常称作“自动递增”和“自动递减”运算符)。其中,递减运算符是“--”,意为“减少一个单位”;递增运算符是“++”,意为“增加一个单位”。举个例子来说,假设A是一个int(整数)值,则表达式++A就等价于(A = A + 1)。递增和递减运算符结果生成的是变量的值。

对每种类型的运算符,都有两个版本可供选用;通常将其称为“前缀版”和“后缀版”。“前递增”表示++运算符位于变量或表达式的前面;而“后递增”表示++运算符位于变量或表达式的后面。类似地,“前递减”意味着--运算符位于变量或表达式的前面;而“后递减”意味着--运算符位于变量或表达式的后面。对于前递增和前递减(如++A或--A),会先执行运算,再生成值。而对于后递增和后递减(如A++或A--),会先生成值,再执行运算。下面是一个例子:

//: AutoInc.java

// Demonstrates the ++ and -- operators

public class AutoInc {

public static void main(String[] args) {

int i = 1;

prt("i : " + i);

prt("++i : " + ++i); // Pre-increment

prt("i++ : " + i++); // Post-increment

prt("i : " + i);

prt("--i : " + --i); // Pre-decrement

prt("i-- : " + i--); // Post-decrement

prt("i : " + i);

}

static void prt(String s) {

System.out.println(s);

}

} ///:~

该程序的输出如下:

i : 1

++i : 2

i++ : 2

i : 3

--i : 2

i-- : 2

i : 1

从中可以看到,对于前缀形式,我们在执行完运算后才得到值。但对于后缀形式,则是在运算执行之前就得到值。它们是唯一具有“副作用”的运算符(除那些涉及赋值的以外)。也就是说,它们会改变运算对象,而不仅仅是使用自己的值。

递增运算符正是对“C++”这个名字的一种解释,暗示着“超载C的一步”。在早期的一次Java演讲中,Bill Joy(始创人之一)声称“Java=C++--”(C加加减减),意味着Java已去除了C++一些没来由折磨人的地方,形成一种更精简的语言。正如大家会在这本书中学到的那样,Java的许多地方都得到了简化,所以Java的学习比C++更容易。

java递减_浅谈java的自动递增和递减运算符的使用方法_java运算符_java_课课家相关推荐

  1. scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别

    这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...

  2. java 虚拟机_浅谈Java虚拟机内存区

    1. Java 虚拟机内存区概述 我们在编写程序时,经常会遇到OOM(out of Memory)以及内存泄漏等问题.为了避免出现这些问题,我们首先必须对JVM的内存划分有个具体的认识.JVM将内存主 ...

  3. c java多态_浅谈Java多态

    什么是Java中的多态?又是一个纸老虎的概念,老套路,把它具体化,细分化,先想三个问题(注意,这里不是简单的化整为零,而是要建立在学习一个新概念时的思考框架): 1.这个东西有什么用?用来干什么的?它 ...

  4. java 异步_浅谈Java异步编程

    本文来自网易云社区. Java异步编程引言 Java的异步编程其实是一个充分利用计算机CPU资源,不想让主程序阻塞在某个长时间运行的任务上,这类耗时的任务可以是IO操作.远程调用以及高密度计算任务.如 ...

  5. java 转义_浅谈Java转义符\\|

    看一段程序 String t = "a||b||c||d"; String[] temp = t.split("\\|\\|"); System.out.pri ...

  6. java 递归函数_浅谈java递归函数

    递归函数的定义:递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身. 打个生动的比喻:我们可以把" 递归 "比喻成 "查字典 ",当你 ...

  7. 猿来小课Java视频教程讲师浅谈JAVA体系结构

    猿来小课Java视频教程讲师:Java体系结构中不仅定义了Java的开发编译环境,也定义了Java的运行环境.为运行Java应用程序和applet,计算机上应安装JVM和Java运行时解释器,这两个部 ...

  8. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  9. java方法区对象类型_浅谈Java内存区域与对象创建过程

    一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...

最新文章

  1. python3手机版下载-Python3中文版下载
  2. vue如何获取年月日_vue 学习笔记第二弹
  3. 【招聘(北京成都)】北森 招聘.NET 架构师工程师
  4. 浅析 record 使用场景
  5. mysql表空间权限_MySQL InnoDB表空间加密示例详解
  6. 深度学习 | Why and How:神经网络中的权重初始化
  7. ARCore-Unity3d教程2 - 基本概念
  8. MAC 终端打开sublime3
  9. 6. wordpress plug-in
  10. 邮箱是互联网的个人中心
  11. Android Binder实战开发指南之开篇
  12. 【java期末复习题】第15章 JDBC数据库编程
  13. HDFS 纠删码 EC
  14. 通过IMAP方式迁移U-Mail邮件到Exchange 2013之Exchange 2007 升级到Exchange 2013!
  15. clamav的unrar解压模块加载
  16. 磁盘smart错误日志重点关注信息
  17. Java下载文件时文件名出现乱码(但文件内容正常)
  18. 基于 MySQL Binlog 的 Elasticsearch 数据同步实践 原
  19. 统计学习方法 学习笔记(1)统计学习方法及监督学习理论
  20. 京东2018校园招聘 数据开发

热门文章

  1. 威联通科技QNAP QTS4.0北京发布会落幕
  2. 【推荐算法课程】CS246 大数据挖掘
  3. RationalDMIS2020小测针测量
  4. 脑机接口专栏 | 如何分析静息状态的fMRI数据?(三)
  5. 城市查询-汉字转拼音、拼音、全拼、简拼、混拼、卷舌音、前后鼻音、兼容查询C#与nodejs+redis应用---笔记
  6. 让虚拟机使用usb3.0
  7. html中hn是什么标记,html中hn是什么意思
  8. 深圳市社会组织信息平台爬虫获取信息
  9. 交易猫 转转 闲鱼 源码去后门永久授权
  10. WEB安全 kali的常用命令