`
elitesunry
  • 浏览: 37703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中 = 和 += 的区别

阅读更多

由上一篇面试32问的问题:

  第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

引出一下讨论。

★ =: 赋值运算符,在编译器将右边的表达式结果计算出来后,和左边的变量类型比较精度,如果左边的变量精度低于右边的结果的精度,编译器会显式的报错,告诉程序员去强制转型。(所以s1 = s1 + 1出错)最后将表达式的结果复制到变量所在的内存区。

★ +=:暂且称之为**运算符,编译器自动隐式直接将+=运算符后面的操作数强制装换为前面变量的类型,然后在变量所在的内存区上直接根据右边的操作数修改左边变量内存存储的二进制数值(所以 s += 1不报错)最后达到和赋值运算符相同的目的。与前者相比,由于后者是位操作,效率也较前者高。

自己的理解,如果您认为这样的说法部分或者全部不正确,欢迎指正。mail:rysun@qq.com

分享到:
评论

相关推荐

    i = i++ 代码分析

    i = i++ 代码分析 ...在 Java 中,反编译是一个非常重要的技术,它可以帮助我们了解 Java 程序的执行过程和机理。通过反编译,我们可以了解 Java 程序的内部工作机理,从而更好地理解和优化 Java 程序。

    += 和 ++ 操作符区别简单介绍

    在编程语言中,`+=` 和 `++` 是两种常见的操作符,它们在处理变量时有不同的功能和行为。本文将详细介绍这两个操作符的区别,并通过示例进行解释。 首先,`+=` 是复合赋值操作符,它将右侧的值与左侧的变量相加,...

    浅谈c i++与java i++的区别

    但是,c语言和java语言在使用increment运算符时存在着一些区别,这篇文章将深入探讨c语言和java语言中i++的区别。 首先,让我们来看一下c语言中的i++。在c语言中,i++是后缀自增运算符,也就是说,它会先返回变量的...

    趣谈C语言和JAVA中的++和--

    ### 趣谈C语言和JAVA中的++和-- #### 引言 在计算机编程语言的学习过程中,`++`(自增)和`--`(自减)运算符是非常基础且重要的概念之一。无论是在C语言还是Java语言中,这两种运算符都有着广泛的用途,并且能够...

    java中equals和==的区别

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的概念,很多开发者容易混淆它们。理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java ...

    学习Java基本语法的仓库 存放学习Java的md文件和Java代码.rar

    3. java虚拟机屏蔽了底层运行平台的差别,实现一次编译,到处运行 JDK JDK的全称(java Development Kit java开发工具包) JDK=JRE+java的开发工具(java,javac,javadoc,javap等) JDK给java开发人员使用包含JRE...

    Java中的==和equals区别

    ### Java中的`==`与`equals`方法的区别详解 在Java编程中,比较对象的相等性是一个常见的需求,但很多初学者对于`==`运算符与`equals`方法的区别容易混淆。本文将深入探讨两者之间的差异,以及它们在不同场景下的...

    java中equals和==的区别.doc

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的运算符,它们之间的区别是非常重要的。 首先,我们需要了解 Java 中的内存模型。在 Java 中,变量可以分为两种:基本类型(primitive type)和...

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

    "java中的i++和++i的区别详解" Java中的i++和++i是两个非常重要的运算符,它们都是对变量进行自加操作,但是它们的执行顺序和结果却有所不同。 首先, let's 看一下它们的定义: * i++:后加加,先使用变量的当前...

    专题资料(2021-2022年收藏)关于java中i=i的解释.doc

    在 Java 中,`i++` 和 `++i` 两者的主要区别在于操作顺序:`i++` 是先使用当前值,然后增加;而 `++i` 是先增加,再使用新值。这个问题在 Java 中特别重要,因为它的行为可能会让人感到意外。 首先,让我们回顾一下...

    自测试卷5.doc1.简述C#、Java和C++的比较。 2.已知变量x的初值为24,则表达式x+=x--+=x%=17运算的结果值为( )。

    2. **表达式x+=x--+=x%=17的结果值** 这是一个包含算术运算符和自增自减运算符的复杂表达式。根据运算符的优先级,先执行x%=17(x等于24,结果为6,x变为6),然后是x--(x变为5),最后是x+=x(x变为10)。因此,...

    java中==与equal()区别

    Java 中的 == 和 equals() 是两个不同的比较方法,它们之间有着很大的区别。== 操作符专门用来比较两个变量的值是否相等,也就是比较变量所对应的内存中所存储的数值是否相同。用于比较两个基本类型的数据或两个引用...

    Java语言中参数值传递和引用传递比较.pdf

    Java 语言中参数值传递和引用传递比较 Java 语言中参数值传递和引用传递是两种不同的参数传递...因此,在 Java 编程中,理解参数值传递和引用传递的区别是非常重要的,以便正确地使用参数传递方式,避免参数传递错误。

    Java中i++与++i的区别和使用

    Java中i++与++i的区别和使用 Java 中的 i++ 和 ++i 是两个常用的操作符,它们都是对变量进行加 1 或减 1 的操作,但是它们的执行顺序和结果却有着很大的区别。 首先,让我们来了解一下 i++ 和 ++i 的定义。i++ 是...

    java中==和equals的区别

    对于开发的程序员小伙伴,大家肯定对于==和equals不陌生,而且会经常用到他,那么又有几个能够说清楚了==和equals是怎么回事呢?他了呢两个有什么区别呢? 比较 == 比较的是栈中的值,基本数据类型是变量值,引用...

    浅谈java 中equals和==的区别

    在Java编程语言中,`equals()` 和 `==` 运算符经常被用来比较对象,但它们之间存在着显著的区别。理解这些差异对于编写正确、健壮的代码至关重要。以下是关于 `equals()` 和 `==` 在Java中的详细解释。 首先,`==` ...

    3 Java中关于==和equal的区别 以及equals()方法重写

    Java 中关于 == 和 equal 的区别 及其 equals() 方法重写 Java 语言是 Sun 公司的开发成果,其主要特点是可以执行强,与平台的无关性使其实用性更强。但是 Java 中的 == 与 equal 是有区别的。 == 操作符是 Java ...

    深入理解java中i++和++i的区别

    在Java编程语言中,`i++` 和 `++i` 是两种常见的自增操作符,它们在处理变量的自增时表现出不同的行为。这两个操作符都用于将整型变量的值增加1,但在某些特定情况下,它们的区别可能导致程序执行的结果不同。 首先...

Global site tag (gtag.js) - Google Analytics