广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java面试题:integer通过==比较是什么?_北大青鸟IT学校

作者:邓华发布时间:2021-06-04分类:Java技术浏览:999


导读:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。那么integer通过==比较是什么?下面惠州北大青鸟老师给大家讲解一下这个题目。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。那么integer通过==比较是什么?下面惠州北大青鸟老师给大家讲解一下这个题目。

Integer a=10;

Integer b=10;

Integer c=new Integer(10);

Integer d=new Integer(10);

System.out.println(a==b);

System.out.println(c==d);

System.out.println(a.equals(b));

System.out.println(c.equals(d));

System.out.println(a.equals(c));

结果为

true

false

true

true

true

== 比较的是对象的引用 当且仅当比较的两个引用指向同一对象才返回true

再看一个例子

Integer a = 127;

Integer b = 127;

Integer c = 128;

Integer d = 128;

System.out.println(a == b);

System.out.println(c == d);

结果为

true

false

Integer i = XXX 看看Integer 的源代码就知道了, 其实就是Integer 把-128-127(一个字节的二进制补码) 之间的每个值都建立了一个对应的Integer 对象, 类似一个缓存. 由于Integer 是不可变类, 因此这些缓存的Integer 对象可以安全的重复使用. Integer i = XXX, 就是Integer i = Interger.valueOf(XXX), 首先判断XXX 是否在-128-127 之间, 如果是直接return 已经存在的对象, 所以是同一个引用. 否则就只能 new 一个了, 那就是不同的引用了.

Reference

java - Why does 128==128 return false but 127==127 return true in this code? - Stack Overflow

想了解更多关于Java的知识,联系在线客服,或者来惠州北大青鸟新方舟校区了解一下。

Java13.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表