Integer

Stella981
• 阅读 385

    相对于String而言,Integer纯洁多了,没有那么多套路,但也并不是没有。看下面代码片段,然后和运行后的结果比对象,如果知道为什么会这样,那说明你的Java基础不错。

    @Test
    public void test2() {
        Integer a1 = 1;
        Integer a2 = 1;
        System.out.println(a1 == a2);
        Integer b1 = 1111;
        Integer b2 = 1111;
        System.out.println(b1==b2);
        Integer c1 = new Integer(1);
        Integer c2 = new Integer(1);
        System.out.println(c1==c2);
    }

      第一个输出:和Integer缓存机制有关系,如果范围在-128至127之间,无论如何,返回true;

      第二个输出:和第一的对照组。因为1111并不在范围内,所以返回了false;

      第三个输出:压根就是出来捣乱的,无论如何new关键字后,建立在heap上面,比较引用地址,当然返回false。

点赞
收藏
评论区
推荐文章
凯特林 凯特林
3年前
如何避免JavaScript类型转换
你是否经历过JavaScript中的某些值比较没有得到预期结果的情况?看下面的情况:即使0结果为真,if条件也没有根据结果执行。有没有想过为什么会这样?本文主要说明这些值比较的工作原理以及影响它们的因素。在深入解释之前,大家要熟悉一个概念:类型转换。什么是JavaScript类型转换?这也称为类型强制。对于不熟悉此概念的人来说,它只是将值从一种
Wesley13 Wesley13
2年前
java8新特性
Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str
Stella981 Stella981
2年前
2020稳拿offer宝典,阿里天猫、蚂蚁、钉钉 java 面试题汇总(附解析)
!(https://oscimg.oschina.net/oscnet/up3fe8daac484fa16296efcca6a78cb7c2cf9.JPEG)Java基础面向对象的特征:继承、封装和多态int和Integer有什么区别;Integer的值缓存范围说说反射的用途及实现Http请求的GET和PO
Wesley13 Wesley13
2年前
JAVA 面试相关
1\.int和Integer有什么区别?答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapperclass),int的包装类就是Integer,从Java5开始引入
Stella981 Stella981
2年前
C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符
前面两节,说明了右值引用和它的作用。下面通过一个string类的编写,来说明右值引用的使用。相对于C98,主要是多了移动构造函数和移动赋值运算符。先给出一个简要的声明:classString{public:String();String(constchars);
Wesley13 Wesley13
2年前
Java Map
publicclassPerson{publicstaticvoidmain(Stringargs){Map<Integer,StringmapnewHashMap<Integer,String();map.put
Stella981 Stella981
2年前
Ruby on Rails 学习笔记(三)
从模型开始,先建立模型而不是建立支架 ruby script/generate model ad name:string description:text price:decimal seller_id:integer email:string img_rul:string从新迁移一下数据库rake db:migrate空模型
可莉 可莉
2年前
2020稳拿offer宝典,阿里天猫、蚂蚁、钉钉 java 面试题汇总(附解析)
!(https://oscimg.oschina.net/oscnet/up3fe8daac484fa16296efcca6a78cb7c2cf9.JPEG)Java基础面向对象的特征:继承、封装和多态int和Integer有什么区别;Integer的值缓存范围说说反射的用途及实现Http请求的GET和PO
Wesley13 Wesley13
2年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Wesley13 Wesley13
2年前
Java设计模式之immutable(不可变)模式
immutable简介不可变对象永远不会发生改变,其字段的值只在构造函数运行时设置一次,其后就不会再改变。例如JDK中常见的两种基本数据类型String和Integer,它们都是不可变对象。为了理解immutable与mutable的区别,可以看看下面的一段代码:packagedate0804.demo2;