网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JAVA如何实现Integer类型自加

这篇文章主要为大家展示了JAVA如何实现Integer类型自加,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

在玉泉街道等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、做网站 网站设计制作按需设计网站,公司网站建设,企业网站建设,品牌网站制作,全网整合营销推广,成都外贸网站建设公司,玉泉街道网站建设费用合理。

JAVA语言中有一些基本数据类型,比如int,long,double...

这些数据类型可以支持一些运算操作符,其中对于int类型的++/--操作符

Integer类型是一个对象类型,居然也可以支持++运算,那么问题来了

一个Integer对象执行++操作之后还是原来那个对象吗?

测试代码

public class IntegerTest {

  @Test
  public void test() {
    Integer a = 1;
    System.out.println(System.identityHashCode(a));
    a++;
    System.out.println(System.identityHashCode(a));
  }
}

输出

105704967
392292416

对象的内存地址不一致,说明Integer对象执行++操作之后是返回一个新的Integer对象
可以通过查看汇编代码分析一下原因

简化代码

public class IntegerTest {
  public void test() {
    Integer a = 1;
    a++;
  }
}

上述代码的字节码

Compiled from "IntegerTest.java"
public class com.migoo.common.IntegerTest {
 public com.migoo.common.IntegerTest();
  Code:
    0: aload_0
    1: invokespecial #1         // Method java/lang/Object."":()V
    4: return

 public void test();
  Code:
    0: iconst_1
    1: invokestatic #2         // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    4: astore_1
    5: aload_1
    6: astore_2
    7: aload_1
    8: invokevirtual #3         // Method java/lang/Integer.intValue:()I
   11: iconst_1
   12: iadd
   13: invokestatic #2         // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   16: dup
   17: astore_1
   18: astore_3
   19: aload_2
   20: pop
   21: return
}

以上就是关于JAVA如何实现Integer类型自加的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。


当前名称:JAVA如何实现Integer类型自加
标题URL:http://bjjierui.cn/article/gghgde.html

其他资讯