zoukankan      html  css  js  c++  java
  • Integer的intValue()方法

    Integer n1 = 123;
    Integer n2 = 123;
    Integer n3 = 128;
    Integer n4 = 128;
    System.out.println(n1 == n2);// true
    System.out.println(n3 == n4);// false
    System.out.println(n3.intValue()==n4.intValue());// true
    System.out.println(128==n3);// true
    System.out.println(128==n4);// true
    // 对象的hashcode值
    System.out.println(System.identityHashCode(n1));// 366712642
    System.out.println(System.identityHashCode(n2));// 366712642
    System.out.println(System.identityHashCode(n3));// 1829164700
    System.out.println(System.identityHashCode(n4));// 2018699554

    为什么 n3==n4  是false呢,因为Integer 对象是在 Integer.IntegerCache 中产生的 ,而 -128- 127的值已经被缓存了,当新的Integer对象在此区间时,会被复用;不在此区间时会在堆上产生新的对象。所以,n1  n2  的hashcode一样的,而n3 、n4  的hashcode 是不一样的

     
  • 相关阅读:
    HDU 3709 Balanced Number
    HDU 3652 B-number
    HDU 3555 Bomb
    全局和局部内存管理
    [转]
    [转]
    [转]
    The Stable Marriage Problem
    STL各种容器的使用时机详解
    Qt中图像的显示与基本操作
  • 原文地址:https://www.cnblogs.com/yrjns/p/12531398.html
Copyright © 2011-2022 走看看