首页 > 代码库 > Integer ==与Equals【原创】
Integer ==与Equals【原创】
package Equals;public class IntegerEquals { public static void main(String[] args) { printLine(128); Integer a=128; Integer b=128; System.out.println(a==b); System.out.println(a.equals(b)); printLine(127); a=127; b=127; System.out.println(a==b); System.out.println(a.equals(b)); printLine(-128); a=-128; b=-128; System.out.println(a==b); System.out.println(a.equals(b)); printLine(-129); a=-129; b=-129; System.out.println(a==b); System.out.println(a.equals(b)); } private static void printLine(int flag) { System.out.println("========"+flag+"========"); }}
Output:
========128========falsetrue========127========truetrue========-128========truetrue========-129========falsetrue
原因:
基于减少对象创建次数和节省内存的考虑,[-128,127]之间的数字会被缓存。
[-128,127]这个范围取决于java.lang.Integer.IntegerCache.high参数的设置。
private static class IntegerCache { private IntegerCache(){} static final Integer cache[] = new Integer[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Integer(i - 128); } }
Integer ==与Equals【原创】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。