Java中基本数据类型与包装类型有:

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

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

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

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

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

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

3、二者相互转换:

  1. int转Integer

    int i = 0;
    Integer ii = new Integer(i);

  2. Integer转int

    Integer ii = new Integer(0);
    int i = ii.intValue();

4、二者的区别:

  1. 声明方式不同:

基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

  1. 存储方式及位置不同:

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

  1. 初始值不同:

基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;

  1. 使用方式不同:

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

Java中有了基本类型为什么还要有包装类型(封装类型)相关推荐

  1. 基本数据类型和封装类型的区别

    基本数据类型和封装类型的区别 基本数据类型 基本数据类型介绍 封装数据类型 基本数据类型对应的封装类介绍 基本数据类型与封装类对应关系对照表 String类 他们的区别 总结 基本数据类型 首先,我们 ...

  2. Java中有几种类型的流?以及常见的实现类都有哪些?

    首先应该从两个角度来看: 从输入输出方面来讲:       Java中有输入流和输出流 从流的编码方式上来讲:    Java中有字节流和字符流 下面主要讲解从编码方式来看java几种常见的类型的流. ...

  3. 请回答一下Java中有几种线程池及实现过程?

    请回答一下Java中有几种线程池及实现过程? 1.newFixedThreadPool创建一个指定工作线程数量的线程池.每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将 ...

  4. java私有表示标识_java里面的标识符、关键字和类型

    1. 注释 Java中有三种注释: (1) // -单行注释,注释从"//"开始,终止于行尾: (2)  -多行注释,注释从""结束: (3)  -是Java特 ...

  5. Java中有指针么?

    指针的概念对于没有学过C语言的朋友是很陌生的.因为JAVA中没有学过指针.那么什么是指针呢? 指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(Pointed to)存在电脑存储 ...

  6. java什么是类型擦除_Java 泛型,你了解类型擦除吗?

    泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇.泛型是 Java 中一个很小巧的概念,但 ...

  7. java的强类型语言与JavaScript(js)的弱类型语言

    强类型 java语言是一种强类型语言,强类型怎么理解? java语言存在编译阶段,假设有代码:int i; 那么在Java中有一个特点是:java程序编译阶段就已经确定了 i变量的数据类型,该i变量的 ...

  8. Java 中有 goto 吗?

    goto 是 Java 中的关键字, 但还处于保留状态, 在实际的开发中并不能使用. 本文列举了 Java 中的关键字以及引入时间, 同时讨论了和 goto 效果类似的 break label 的语法 ...

  9. es java 删除索引_使用java中的elasticSearch 2.3.3按索引名称和类型删除索引

    我在java中有一个项目,我使用弹性搜索2.3.3索引数据.索引有两种类型. 我的索引文档看起来像: { "took": 10,"timed_out": fal ...

最新文章

  1. 数据结构学不会?视频+项目+网站大全,还有独家学习方法
  2. 使用栈将递归函数转化为非递归函数_栈(Stack)及其应用-Python实现
  3. EventBus BackgroundPoster原理解析
  4. 冒险岛079服务端_linux版(ubuntu,CentOS)下载
  5. 好用的Android抓包神器 VNET
  6. FLUKE 754过程校准器带HART协议
  7. 全图各省市乡镇数据交流
  8. 佛系前端面试题记录--第六周
  9. IRQL深入解析--IRQL级别
  10. postman替换快捷键ctrl加什么_你会用 Ctrl + ~ 键吗?
  11. 计算机系统时间的修复,电脑时间总是不对,小编教你如何恢复正常
  12. 记录一个被自己蠢到的事——解决Potplay等播放器播放视频异常打不开故障
  13. 【论文解读】FA-GANs: 面部吸引力增强、面部美容、几何与外观双分支GAN一致性增强
  14. 用MATLAB画误差对比图
  15. PS通过模板批量替换数据转换为PDF
  16. 报名 | 2022年 Ansys 全球仿真大会中国站启动报名
  17. 嗷嗷加班,如何保持学习能力~
  18. ABBYYFineReader15免费电脑pdf文档文字识别软件
  19. Task 4: Contextual Word Embeddings (附代码)(Stanford CS224N NLP with Deep Learning Winter 2019)
  20. MATLAB工具箱大全

热门文章

  1. python 通过邮件控制电脑 实现远程控制
  2. #Python3中判断是不是回文数
  3. Android自定义监听回调
  4. Python Max retries exceeded with url错误
  5. 照片视频字体音频配色简历ppt免费素材
  6. RTMPose关键点检测实战——笔记3
  7. PLSA的理解及推导
  8. Echarts:在series里配置如下itemStyle,即可实现值大于0时为红色,小于0时为绿色
  9. 介绍python库的书籍_《介》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  10. php获取当月工作日天数,2018年每月工作日天数多少天?2018年工作日总天数有多少天...