【Java心得总结一】Java基本类型和包装类型解析
2014-03-06 13:50
411 查看
说到数据类型这个问题是一个基本的不能再基本的问题,我们当初编程入门第一课一般就是讲数据类型,而今天我想记录的是一个在Java中容易忽略的问题,即基本类型和包装类型。
一、基本类型出现的原因
我们都知道在Java语言中,new一个对象存储在堆里,我们通过堆栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。(如下图所示为内存空间示意图)
所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在堆栈中,因此更加高效。
Java共有9中基本类型,同别的语言有重要区别的是这9中类型所占存储空间大小与机器硬件架构无关,这使得Java程序有很强的可移植性,如下图:
二、包装类型产生的原因
有了这9中基本类型,按理说应该够用了啊,但是Java还提供了相应的包装类型,如int对应Integer,char对应Character。为什么要有包装类型?
是因为Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
这里大家可能会担心一个问题,那岂不是我们在使用二者时要来回转换?这点Java的自动包装功能将会自动为我们完成,如下代码显示Character和char之间的相互转换:
三、包装类型与基本类型异同
最后总结一下:
1.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
2.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
3.初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null
4.使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到
一、基本类型出现的原因
我们都知道在Java语言中,new一个对象存储在堆里,我们通过堆栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。(如下图所示为内存空间示意图)
所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在堆栈中,因此更加高效。
Java共有9中基本类型,同别的语言有重要区别的是这9中类型所占存储空间大小与机器硬件架构无关,这使得Java程序有很强的可移植性,如下图:
二、包装类型产生的原因
有了这9中基本类型,按理说应该够用了啊,但是Java还提供了相应的包装类型,如int对应Integer,char对应Character。为什么要有包装类型?
是因为Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。
这里大家可能会担心一个问题,那岂不是我们在使用二者时要来回转换?这点Java的自动包装功能将会自动为我们完成,如下代码显示Character和char之间的相互转换:
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基本类型和包装类型解析
- Java基础学习总结(122)——Java八种基本数据类型的包装类及其装箱拆箱详解
- Java基本类型和包装类型总结
- java基本数据类型对象包装类总结
- JAVA 基本类型 primitive主数据类型的包装类型
- java基本类型与包装类型
- Java基本类型用法总结
- 黑马程序员_String和基本类型对象包装类总结
- 黑马程序员-java基本数据类型对象包装类
- Java基本数据类型总结
- Java基本数据类型总结
- Java学习总结--字符串String类和基本的数据类型有什么区别
- Java 基本类型优先于包装类型,以及二者之间的选择
- 黑马程序员 Java自学总结十二 String类和基本数据类型包装类
- Java中基本数据类型的包装类
- Java基本数据类型小总结
- java基础之基本数据类型的总结
- java中的常用类、Date和SimpleDateFormat类表示时间、java中基本类型和包装之间的转换
- Java中八种基本数据类型占用字节空间总结
- Java基本数据类型总结