为什么存在这两种类型呢?

我们都知道在Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在栈中,因此更加高效。

有了基本类型为什么还要有包装类型呢?

我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

二者相互转换:(JDK1.5  之后体提供了自动拆装箱)

1、int转Integer

   int i = 0;

2.  Integer ii = new Integer(i);

  Integer转int

1.  Integer ii = new Integer(0);

  int i = ii.intValue();

二者的区别:

1. 声明方式不同:

基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
 2. 存储方式及位置不同:

基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
 3. 初始值不同:

基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
 4. 使用方式不同:

基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。

补充:

1、int 类型不能赋值为null(默认值为0),包装类型Integer可以为null(默认值为null)

2、当int中的数值 与 integer 中的数值一致的时候, 使用 “==”  进行比较,结果为true

3、如果两个都是new的Integer相比较也是相等的

Java 为什么要有包装类相关推荐

  1. java包装类和基本类型谁先谁后_你知道Java中基本类型和包装类的区别吗

    前情提要 上一篇中,通过一道常见的面试题(即:String.StringBuilder.StringBuffer的区别),引申到Java中基本类型和包装类的相关内容.在这一篇中,我们将解决上一篇中引申 ...

  2. java中为什么设计包装类,Java 中为什么要设计包装类

    最近文章更新频率慢了,因为最近在准备暑期实习,之前寻思着一边复习一边写文章,两全其美.后来发现一篇读起来比较舒服的文章写出来加上配图得花上四五个小时甚至更多,但这个知识点我可能半个小时就能复习完了,春 ...

  3. Java基本数据类型及其包装类

    Java基本数据类型及其包装类 正文开始@Assassin 目录 Java基本数据类型及其包装类 1. 基本类型包装类概述: 1.1 基本数据类型和包装类型的区别: 1.2 各包装类的一些基本的属性: ...

  4. Java基础——基本类型和包装类、基本类型和字符串之间的转换

    基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...

  5. java包装类和基本类型_你知道Java中基本类型和包装类的区别吗

    前情提要 上一篇中,通过一道常见的面试题(即:String.StringBuilder.StringBuffer的区别),引申到Java中基本类型和包装类的相关内容.在这一篇中,我们将解决上一篇中引申 ...

  6. Java基本类型及其包装类

    1.Java基本类型及其包装类 基本类型,或者叫做内置类型,是Java中不同于类的特殊类型,是我们编程中使用最频繁的类型.Java是一种强类型语言,第一次声明变量必须说明数据类型,第一次变量赋值称为变 ...

  7. 3.1常用类(java学习笔记)包装类及日期类

    一.包装类 java是一门面向对象的语言,秉承一切皆对象的思想. 可java中有一些基本数据类型并不是对象,有时可能需要将它们变为对象. 这时就需要用到我们的包装类了. 基本数据类型 包装类 int ...

  8. JAVA SE学习day_03:包装类、文件操作——file

    一.包装类 包装类是为了解决基本类型不能直接参与面向对象开发的问题,实际就是将基本类型以"对象"的形式表示 Integer 1.1基本类型转换为对应的包装类(引用类型) int i ...

  9. Java的知识点20——包装类基本知识、包装类的用途、自动装箱和拆箱、包装类的缓存问题

    包装类基本知识 将基本数据类型存储到Object[]数组或集合中的操作 包装类均位于java.lang包 "数字型"都是java.lang.Number的子类.Number类是抽象 ...

  10. 【Java】6.1 Java 8增强的包装类

    Java的基本类型包装 所有的类都是Object的子类,除了8个基本类型,因为8个基本类型不能当做对象使用.但是Java为这8个基本类型提供了相应的包装类:其本质仍然是8个基本类型但是已经被包装过了, ...

最新文章

  1. IOS中打开应用实现检查更新的功能
  2. 蓝桥备赛第四周 同余+并查集
  3. linux命令行怎么播放,如何在在 Linux 命令行中观看彩虹猫
  4. apollo持久化sentinel_Spring Cloud Alibaba基础教程:Sentinel使用Apollo存储规则
  5. 如何低成本实现Flutter富文本,看这一篇就够了!
  6. oracle数据库配置管理,Oracle配置管理
  7. Symfony2博客应用程序教程:第四部分(续)-测试安全页
  8. 【M25】将构造方法和非成员方法虚化
  9. drop out, learning rate in nn
  10. ruby中数组的常用函数
  11. 点石成金:访客至上的网页设计秘笈pdf
  12. 计算机视觉学生论文,计算机视觉方面论文参考文献
  13. 寻址方式(立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址)
  14. 5个酷毙的 Python 神器工具
  15. hdu-4966 GGS-DDU 最小树形图
  16. 北大博士把“计算机底层原理“讲的如此通俗易懂
  17. 中国科学技术大学计算机考研难吗,中国科学技术大学(专业学位)计算机技术考研难吗...
  18. mysql写入一句话木马
  19. Linux常用命令整理—网络
  20. 基于51单片机的超声波避障小车设计(含Proteus仿真)

热门文章

  1. Timeline以及自定义轨道(对话轨道)
  2. Transformer用于超分辨率重建
  3. IP溯源的原理及方法
  4. RK3588 AI 边缘计算智慧交通智能安防工业主板设计方案
  5. 远程控制电脑软件全方位测评,远程控制工具哪家强
  6. 常见的区块链共识机制
  7. int 多少位,long 多少位
  8. Java异常打印输出中常见方法的分析
  9. 【联邦学习】联邦学习算法分类总结
  10. 谷歌插件开发之笔趣阁