Java中的扩展运算符盲区

原创 2015年07月09日 20:31:49

首先看一段代码:

public static void main(String[] args) {
    byte num = 1;
    num = num + 1;
    num += 1;
    System.out.println(num);
}

我们一般都认为 num = num + 1 和 num += 1 这两条语句是等价的,后者是前者的简写。
对于加法操作, num + 1 的结果是int类型的,因此num = num + 1这句话在编译过程中,编译器会提示错误“type mismatch: cannot convert from int to byte”。同理,对于num += 1,编译器也应该提示相同的错误。

但是在实际编译时,发现只有第一个运算会报错,而num+=1可以通过编译,说明 += 运算符不仅仅等同于 num = num + 1,而应该等价于
num = (num的数据类型)(num + 1)。

在 += 运算符中,实际隐含了一个强制类型转换的操作。

版权声明:本文为博主原创文章,随便转载!注明出处即可!

【Java基础知识】扩展的赋值运算符隐含着强转

示例代码一:     short s = 1;     s = s + 1; 以上代码无法编译:提示错误 Type mismatch: cannot convert from int to sh...
  • zhuwenchao90
  • zhuwenchao90
  • 2016年10月11日 16:58
  • 794

Java8新特性 - 虚拟扩展方法

Java8新特性-虚拟扩展方法,为接口中的函数提供了默认实现方法,使得开发者只关注接口中需要的函数和业务需求。...
  • l460133921
  • l460133921
  • 2017年05月07日 21:30
  • 871

java的可扩展性

1,扩展性最低的就是把类都单独拿出来,没有继承什么,都是单个的类来实现作用,这种思维课扩展性最低,2;就是存在继承,利用父类引用指向子类对象,在调用方法的时候在去instance判断,来调用各自的方法...
  • zw1996
  • zw1996
  • 2016年10月29日 12:35
  • 1294

java设计模式学习笔记——扩展型模式1

在扩展对象行为和功能的时候,常常需要遵循两个原则,LSP替换原则和迪米特法则。LSP的主要思想是一个类的实例应该具有父类的所有功能,迪米特法则要求每个方法只能给有限的对象发消息,包括参数变量、this...
  • u011393907
  • u011393907
  • 2016年07月06日 11:29
  • 490

Java中的扩展运算符盲区

首先看一段代码:public static void main(String[] args) { byte num = 1; num = num + 1; num += 1; ...
  • liuweiballack
  • liuweiballack
  • 2015年07月09日 20:31
  • 848

JAVA 入坑教程 | 章节五 运算符合集

Java 运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:算术运算符关系运算符位运算符逻辑运算符赋值运算符...
  • DJY1992
  • DJY1992
  • 2017年02月22日 14:42
  • 944

扩展运算符(...)的用途

1.合并数组 一直以来,有很多方法合并数组,但是扩展运算符给了我们全新的方法去实现合并数组: arr1.push(...arr2) // 把arr2合并到arr1的后面 arr1.unshif...
  • yi_xiuge
  • yi_xiuge
  • 2017年08月02日 13:39
  • 484

JavaScript 扩展运算符

扩展运算符格式扩展运算符格式很简单,就是三个点(…)扩展运算符作用??? 扩展运算符允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置扩展。 ...
  • longzhoufeng
  • longzhoufeng
  • 2017年06月01日 10:53
  • 470

java之运算符&与&&以及|与||

相信大家对于java中的运算符都不陌生,那么今天我们就来说下java里的逻辑运算符&、&&、|、||。 运算符&和&&都表示"与"操作,当且仅当运算符两边的操作数都为true时,其结果才为true,...
  • Mr_fsd
  • Mr_fsd
  • 2016年08月17日 23:29
  • 358

Java运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 Java语言使用运算符讲一个或多个操作数连缀成执行性语句,用以实现特定功能。 Java语言中的运算符可分为如...
  • reflse
  • reflse
  • 2016年05月10日 08:32
  • 842
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的扩展运算符盲区
举报原因:
原因补充:

(最多只允许输入30个字)