首页 > 编程语言 >【JAVA】详解在JAVA中int与Integer的区别以及背后的原因。

【JAVA】详解在JAVA中int与Integer的区别以及背后的原因。

时间:2022-11-12 15:00:11浏览次数:36  
标签:JAVA int 数据类型 包装 内存 Integer

区别

首先我们要明确,这两点之间有什么区别?

主要有以下几点:

  • 数据类型不同:int是基础数据类型,而 Integer是包装数据类型;
  • 默认值不同:int的默认值是 0,而 Integer的默认值是 null;
  • 内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象;
  • 实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要;
  • 变量的比较方式不同:int 可以使用 == 来对比两个变量是否相等,而 Integer一定要使用 equals 来比较两个变量是否相等。

接下来,我们要详细解释一下和为基础数据类型?

基本数据类型

在JAVA中,主要有八种基本数据类型:

1、 整型:byte、short、int、long

2、 字符型:char

3、 浮点型:float、double

4、 布尔型:boolean
基本数据类型是指不可再分的原子数据类型,内存中直接存储此类型的值,通过内存地址即可直接访问到数据,并且此内存区域只能存放这种类型的值。
对于涉及到这些数据类型的运算,JAVA会对其进行自动类型转换。其实我们在写代码的时候经常使用到,比如 short a = 1; int b = a;

而本文中将到的int就是基本数据类型的一种。而Integer是包装数据类型。

包装数据类型

因为 Java的设计理念是一切皆是对象,在很多情况下,需要以对象的形式操作,比如 hashCode()获取哈希值,或者 getClass()获取类、toString()转为字符串等等。在这种情况下,基本数据类型并不符合我们JAVA一切皆为对象的思想,因此我们引入了包装数据类型。
在Java中每个基本数据类型都对应了一个包装类,而 int对应的包装类就是 Integer,包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。

image

标签:JAVA,int,数据类型,包装,内存,Integer
From: https://www.cnblogs.com/virtualman/p/16883778.html

相关文章

  • 【JAVA】如何在宝塔面板中运行java springboot项目?手把手教程
    1、安装Tomcat选择网站之后,点击Tomcat管理,直接选择版本安装即可。可以选择安装7、8、9这三个版本都可以。2、将JAVA项目打包在IDEA中,右击项目,选择构建package,等待打......
  • Java8中那些方便又实用的Map函数
    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。简介java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读......
  • java实现抽奖功能
    importjava.util.ArrayList;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){Mainm=newMain();m.d......
  • 【Java复健指南12】OOP高级03-抽象类与接口
    抽象类引出问题:​ 父类方法有时候具有不确定性小结:当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类例子:publicclas......
  • Java Lambda 表达式
    (目录)一、说明Lambda表达式是什么Lambda表达式也称为闭包,是Java8发布的新特性Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)为什么要使用Lamb......
  • 原生 HTML + CSS + JavaScript 写时钟
    时钟效果目录结构HTML代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge">......
  • Java多线程中锁的理解与使用
    参考:https://blog.csdn.net/tyyj90/article/details/782360531.简介锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如synchronized和ReentrantLock等)......
  • Java环境变量配置
    1常用的Windows快捷键Ctrl+C:复制Ctrl+V:粘贴Ctrl+A:全选Ctrl+X:剪切Ctrl+Z:撤销Ctrl+S:保存Alt+F4:关闭窗口Ctrl+D:删除Shift+Delete:永久删除Win+R:运行窗口Win+E:我的......
  • java的位运算
    本文主要阐明java中的位运算规则首先介绍原码,反码,补码的概念 下面介绍位运算符 具体代码如下:System.out.println(4>>2);//(4/2)/2System.out.println(4<<......
  • 数据一致性离不开的checkpoint机制
    checkpoint如果系统每次收到写入请求后,等待数据完全写入持久化存储再返回结果,这样数据丢失的可能性大大减少,但是一般持久化操作都是磁盘IO操作(甚至网络IO操作),处理的耗时比......