iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么
  • 686
分享到

Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么

2023-06-25 13:06:46 686人浏览 独家记忆
摘要

本篇内容主要讲解“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Int、

本篇内容主要讲解“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”吧!

Int

Int是Java八种基本数据类型之一,一般大小为4字节32位,取值范围为2-31—231。两个Int类型变量用“==”比较的是值的大小。

package com.company.alGorithm;public class Main {    public static void main(String[] args) {        int a = 100;        int b = 100;        System.out.println(a == b);//true    }}

Integer和Integer.valueOf()

将Int值赋给Integer变量,系统会自动将这个Int值封装成一个Integer对象。
比如:Integer a = 100;实际上的操作是:Integer a = Integer.valueOf(100);
以下是valueOf()的源码

Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么

注意:这里Integer.valueOf(),当Int值的范围在-128-127之间时,会通过一个IntegerCache缓存来创建Integer对象;当Int值不在该范围时,直接调用new Integer()来创建对象,因此会出现以下的情况
(1)Integer a = 100; Integer b = 100; a==b结果为true,因为这两个Integer变量引用的是缓存中的同一个Integer对象 ;
(2)Integer c = 200; Integer d = 200; a==b结果为false,因为a和b是通过new Integer() 创建的两个不同对象。

package com.company.algorithm;public class Main {    public static void main(String[] args) {        Integer a = 100;        Integer b = 100;        Integer c = 200;        Integer d = 200;        System.out.println(a == b);//true        System.out.println(c == d);//false    }}

new Integer()

new Integer()每次都会创建新的对象,==比较的是两个对象的内存地址

package com.company.algorithm;public class Main {    public static void main(String[] args) {        Integer a = new Integer(100);        Integer b = new Integer(100);        System.out.println(a == b);//false    }}

三者之间的比较

(1)不管是new创建的Integer对象,还是通过直接赋值Int值创建的Integer对象,它们与Int类型变量通过“==”进行比较时都会自动拆箱变成Int类型,所以Integer对象和Int变量比较的是内容大小。

package com.company.algorithm;public class Main {    public static void main(String[] args) {        int a = 100;        Integer b = 100;//等价于b=Integer.valueOf(100);        Integer c = new Integer(100);        System.out.println(a == b);//true        System.out.println(a == c);//true    }}

(2)new创建的Integer对象和直接赋Int值创建的Integer对象使用==比较的是它们的内存地址。

package com.company.algorithm;public class Main {    public static void main(String[] args) {        Integer b = 100;//等价于b=Integer.valueOf(100);        Integer c = new Integer(100);        System.out.println(b == c);//false    }}

(3)赋Int值创建的Integer对象比较:
当Int值在-128-127之间时,两个Integer变量引用的是IntegerCache中的同一个对象,内存地址相同,因此==的结果为true;
当Int值不在以上范围时,两个Integer对象都是通过new创建的,内存地址不同,因此==的结果为false

package com.company.algorithm;public class Main {    public static void main(String[] args) {        Integer a = 100;        Integer b = 100;        Integer c = 200;        Integer d = 200;        Integer f = new Integer(100);        System.out.println(a == b);//true        System.out.println(c == d);//false        System.out.println(a == f);//false    }}

一个金典面试题

package com.company.algorithm;public class Main {    public static void main(String[] args) {        Integer a = 49;        int b = 49;        Integer c = Integer.valueOf(49);        Integer d = new Integer(49);        System.out.println(a == b);//true        System.out.println(a == c);//true        System.out.println(b == c);//true        System.out.println(c == d);//false    }}

到此,相信大家对“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么

本文链接: https://www.lsjlt.com/news/305048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么
    本篇内容主要讲解“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Int、...
    99+
    2023-06-25
  • 浅谈Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别
    目录IntInteger和Integer.valueOf()new Integer()三者之间的比较Int Int是Java八种基本数据类型之一,一般大小为4字节32位,取值范围为2...
    99+
    2022-11-12
  • java中int和integer的区别是什么?
    java中int和integer的区别 ● int是基本数据类型,int变量存储的是数值;Integer是引用数据类型,实际是一个对象,Integer存储的是引用对象的地址。 ● int默认值是0,Integer默认值是null; ● in...
    99+
    2021-09-17
    java教程 java int integer
  • Java中Integer和int的区别是什么
    这篇文章主要介绍Java中Integer和int的区别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基本概念(重要)Integer 是 int 的包装类,int 则是 java 的一种基本数据类型;Inte...
    99+
    2023-06-15
  • Java中int与Integer的区别是什么
    这篇文章主要讲解了“Java中int与Integer的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中int与Integer的区别是什么”吧!nJava 是一种强数据类型的...
    99+
    2023-06-21
  • Java和JavaScript:它们之间的区别是什么?
    Java和JavaScript是两种非常常见的编程语言,它们都经常被用于开发Web应用程序和其他应用程序。虽然它们的名称相似,但它们实际上是两种截然不同的语言。在本文中,我们将讨论Java和JavaScript之间的区别。 Java和Jav...
    99+
    2023-06-18
    javascript 关键字 学习笔记
  • CSS中id和class之间的区别是什么
    这篇文章给大家分享的是有关CSS中id和class之间的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   id和class之间的区别   id具有唯一性,clas...
    99+
    2022-10-19
  • iptables中SNAT和MASQUERADE之间的区别是什么
    本篇内容主要讲解“iptables中SNAT和MASQUERADE之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“iptables中SNAT和MASQUERADE之间的区别是什么”...
    99+
    2023-06-12
  • CSS3中的 transition,transform,translate之间区别是什么
    这篇文章主要介绍了CSS3中的 transition,transform,translate之间区别是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。transform 和...
    99+
    2023-06-08
  • Python中的json和pickle之间的区别是什么?
    Python中的json和pickle之间的区别是什么?在Python中,我们经常需要将数据从程序中保存到文件或从文件中读取出来。JSON和pickle是常用的两种数据序列化和反序列化的方法。它们都可以将Python的数据结构转化为字符串或...
    99+
    2023-10-24
    Python中的json与pickle的区别 json和pickle的差异与联系 Python编程中的json和pick
  • DBMS中主键和外键之间的区别是什么
    这篇文章主要介绍了DBMS中主键和外键之间的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。DBMS中的主键主键可以唯一地定义关系中的元...
    99+
    2022-10-18
  • Linux开发中sudo与su之间的区别是什么
    Linux开发中sudo与su之间的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在Linux开发中我们一般都是以普通用户就行工作,有时会因为个别原因...
    99+
    2023-06-28
  • CSS中px、em、rem、%、vw、vh单位之间的区别是什么
    这篇文章将为大家详细讲解有关CSS中px、em、rem、%、vw、vh单位之间的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 、pxpx就是pixel(像素)的缩写,相对长度单位,相对于屏幕...
    99+
    2023-06-08
  • 编程语言中URL、URI和URN三者之间的区别是什么
    本篇内容主要讲解“编程语言中URL、URI和URN三者之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编程语言中URL、URI和URN三者之间的区...
    99+
    2022-10-19
  • html中<strong>和<b>标签之间的区别是什么
    这篇文章给大家分享的是有关html中<strong>和<b>标签之间的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 默认情况下,<st...
    99+
    2022-10-19
  • Spring中@Service注解的作用与@Controller和@RestController之间区别是什么
    本篇内容介绍了“Spring中@Service注解的作用与@Controller和@RestController之间区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作