【Java】int和Integer的区别?为什么有包装类?

简介: 【Java】int和Integer的区别?为什么有包装类?

1. int和Integer的区别?为什么有包装类?

java是一种强类型的语言,所以所有的属性都必须要有一个数据类型。

PS:java10有了局部变量类型推导,可以使用var来代替某个具体的数据类型,但是在字节码阶段,java的变量仍然有明确的数据类型,并且局部变量类型推导有许多限制和不完善的地方,所以不是目前主流的应用版本。

要说intInteger的区别,要从java的基本数据类型说起。

1.1 基本数据类型

java当中,一共有8种数据类型,其中有4种整形,2种浮点型,1中用于表示Unicode编码的字符类型char,和一种用于表示真假的boolean类型

  • 4种整型:int、short、long、byte
  • 2种浮点型:float、double
  • 字符类型:char
  • 真假类型:boolean

1.2 包装类型及其作用

因为java的设计理念是一切皆对象,在很多情况下,需要以对象的形式操作。比如getClass()获取类。

1.2.1 包装类的作用

java当中,每个基本数据类型都对应了一个包装类,包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。

基础类型 包装类型
int Integer
short Short
byte Byte
long Long
float Float
double Double
char Character
boolean Boolean

1.3 int和Integer的区别

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

可能存在不足地方,希望大家提出。我们一起更正!!!

1.4 总结

Integerint的包装类,它们区别主要体现在5个方面:数据类型不同、默认值不同、内存中的存储方式不同、实例化方式不同、变量比较的方式不同。包装类的存在解决了基本数据类型无法做到的事情。(泛型参数、序列化、类型转换、高频区间数据缓存等)

相关文章
|
16天前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
1月前
|
Java
Java isBlank和isEmpty的区别
JavaisBlank和isEmpty的区别
17 0
C4.
|
1月前
|
缓存 Java
Java的Integer对象
Java的Integer对象
C4.
13 0
|
1月前
|
存储 Java 数据库
java包装类的作用、基本类型和包装类型的区别
java包装类的作用、基本类型和包装类型的区别
31 0
java包装类的作用、基本类型和包装类型的区别
|
1月前
|
Java 关系型数据库 MySQL
在Java的反射中,Class.forName和ClassLoader的区别
在Java的反射中,Class.forName和ClassLoader的区别
36 3
|
1月前
|
Java Spring 容器
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
|
1月前
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
25 0
|
2天前
|
JavaScript 前端开发 Oracle
java和JavaScript的区别
java和JavaScript的区别
6 3
|
19天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0
|
29天前
|
Java
java的 isEmpty 和 isBlank 区别?
java的 isEmpty 和 isBlank 区别?
8 0

热门文章

最新文章