`

Java中基本数据类型和包装器类型的关系

    博客分类:
  • Java
阅读更多
转自
http://www.cnblogs.com/huajiezh/p/5225637.html


    在程序设计中经常用到一系列的数据类型,在Java中也一样包含八中数据类型,这八种数据类型又各自对应一种包装器类型。如下表:

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

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

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

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

    二者可以相互转换:
Character ch = new Character('x');
char c = ch;
char c = 'c';
Character ch = new Character(c);


    二者之间也存在一些区别:
    1.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
    2.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
    3.初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
    4.使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。
分享到:
评论

相关推荐

    Java的基本数据类型和包装类的关系

    但在Java中不能定义基本类型(primitive type),为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本类型都提供了包装类,这样,我们便可以把这些基本类型转化为对象来处理了。这些包装类有:Boolean...

    Java基本数据类型与对应的包装类(动力节点java学院整理)

    Java是面向对象的编程语言,包装类的出现更好的体现这一思想,Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 下面通过本文给大家详细介绍,感兴趣的朋友...

    死磕Java之Java数据类型的来龙去脉

    (二)基本数据类型与包装类的对应关系(三)包装类的自动拆箱与装箱(四)包装类总结 一、数据类型分类 数据类型可以分为基本数据类型(8个)和引用数据类型(3个)。 具体可以参考如下图所示: 二、基本数据类型 ...

    廖雪峰 Java 教程.doc

    变量和数据类型 整数运算 浮点数运算 布尔运算 字符和字符串 数组类型 流程控制 输入和输出 if判断 switch多重选择 while循环 do while循环 for循环 break和continue 数组操作 遍历数组 数组排序 ...

    疯狂JAVA讲义

    6.1 基本数据类型的包装类 167 6.2 处理对象 170 6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 ...

    JAVA基础课程讲义

    基本数据类型的包装类 117 包装类基本知识 117 包装类的用途 118 自动装箱和拆箱?autoboxing,unboxing 119 字符串相关类(String、 StringBuffer 、 StringBuilder) 120 String类的常用方法(已讲过,不再讲!) ...

    Java语言基础下载

    基本数据类型 506 常量 507 表达式和运算符 509 实例 511 JavaScript程序构成 513 事件驱动及事件处理 516 内容总结 519 独立实践 520 第二十七章:JavaScript进阶 521 学习目标 521 基于对象的JavaScript语言 522 ...

    java基础案例与开发详解案例源码全

    3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 ...

    AIC的Java课程1-6章

    第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...

    数据结构与算法分析Java语言描述(第二版)

    表、栈和队列3.1 抽象数据类型3.2 表ADT3.2.1 表的简单数组实现3.2.2 简单链表3.3 JavaCollectionsAPI中的表3.3.1 Collection接口3.3.2 Iterator接口3.3.3 List接口、ArrayList类和LinkedList类3.3.4 例:remove...

    Java开发详解.zip

    010301_【第3章:Java基础程序设计】_Java数据类型笔记.pdf 010302_【第3章:Java基础程序设计】_运算符、表达式与语句笔记.pdf 010303_【第3章:Java基础程序设计】_判断与循环语句笔记.pdf 010401_【第4章:数组与...

    Java入门教程(微学苑)-part1

    2.1 Java数据类型以及变量的定义 24 2.2 对布尔型的说明 25 2.3 Java数据类型转换 26 2.4 自动数据类型转换 26 2.5 强制数据类型转换 26 2.6 Java运算符 27 2.6.1.1 数学运算符 27 2.6.1.2 关系运算符 27 2.6.1.3 位...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     5.1.1 基本类型属性和包装类型属性  5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  5.1.5 控制insert和update语句  5.2 处理SQL引用标识符  5.3 ...

    数据结构与算法分析_Java语言描述(第2版)]

    表、栈和队列3.1 抽象数据类型3.2 表ADT3.2.1 表的简单数组实现3.2.2 简单链表3.3 JavaCollectionsAPI中的表3.3.1 Collection接口3.3.2 Iterator接口3.3.3 List接口、ArrayList类和LinkedList类3.3.4 例:remove...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    在程序设计语言中,把定义数据类型的能 力作为一种很重要的能力来对待。在面向对象的语言中,类的功能更强大,这是因为类不仅 含有定义数据类型的功能,而且还包含了对方法的定义。 对象实际是类中的一个实例。生成...

    Java2核心技术.part5

    第3章Java基本的程序设计结构 3.1一个简单的Java应用程序 3.2注释 3.3数据类型 3.3.1整型 3.3.2浮点型 3.3.3 char类型 3.3.4 boolean类型 3.4变量 3.4.1初始化变量 3.4.2常量 3.5运算符...

Global site tag (gtag.js) - Google Analytics