您的位置:首页 > 其它

基本数据类型及其对应的包装类存在的意义

2019-04-17 17:20 134 查看

Java--基本数据类型及其对应的包装类存在的意义

  • 存储
  • 数据加载
  • 八种基本数据类型的包装类
  • 两者比较
  • 八种基本数据类型

    1.整数

    1. byte 字节型1个字节
    8位,最大存储数据量是255,存放的数据范围是-128~127之间。
    1. short 短整型2个字节
    16位,最大数据存储量是65536,数据范围是-32768~32767之间。
    1. int 整形4个字节(默认整数类型)
    32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
    1. long 长整形8个字节
    64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

    2.浮点数

    1. float 浮点数4个字节
    数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上F(f)。
    1. double 双精度 8个字节(默认小数数据类型)
    64位,数据范围在4.9e-324~1.8e308

    3.字符型

    1. char 一个字符两个字节(单引号)

    4.布尔型

    1. boolean 只有两种读取true 和 false 一个字节 但是只占一位

    数据类型之间的相互转换

    1. 自动类型 转换 精度小的数据类型可以转化为精度大的数据类型
    //short(2个字节)转int(4个字节)
    short s = 122;
    int i = s;
    1. 强类型转换 精度大的数据类型转化精度小的数据类型
    long l = 5613265346;
    int i = (int) l;
    1. 字符和整形之间的转换
    char ch = 'a';
    System.out.println((int)a);      //结果为97
    char ch = 48;
    System.out.println(ch);          //结果为 0
    ASCLL表的转换
    字符 a-z ~ 97-122
    字符 A-Z ~ 65-90
    字符0 - 9 为48 - 57

    看到这儿很简单,我感觉每个人都会。BUT请继续向下看

    基本数据类型为什么存在?

    意义
    • 首先ava是强类型语言,Java对于数据类型的规范会相对严格。java供了八种基本类型都有如上的八种。
    • Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。
    • 数据类型在计算机语言里面,是对程序所处理数据的抽象,它存在的意义是为了方便虚拟机为不同的数据分配更合适的空间。
    • 实例对象存储在堆中,通过栈的引用来使用这些对象,对于经常用到的一系列类型如int等简单的小的变量时,运用基本类型直接存储带栈中就非常方便。

    存储

    • 首先基本数据类型存储在栈中
    • Java 虚拟机每调用一个 Java 方法,便会创建一个栈帧。这种栈帧有两个主要的组成部分,分别是局部变量区,以及字节码的操作数栈。
    • 局部变量区等价于一个数组,并且可以用正整数作为索引且占用一个数组单元。 long、double例外值需要用两个数组单元来存储。boolean、byte、char、short 这四种类型,在栈上占用的空间和 int 是一样的,和引用类型也是一样的。
    • 当我们将一个 int 类型的值,存储到这些类型的字段或数组时,相当于做了一次隐式的掩码操作。
      -
      当我们把 0xFFFFFFFF(-1)存储到一个声明为 char 类型的字段里时,由于该字段仅占两字节,所以高两位的字节便会被截取掉,最终存入“\uFFFF”。

    数据加载

    • Java 虚拟机的算数运算几乎全部依赖于操作数栈
    • 需要将堆中的数据加载到栈中当作成int数据类型进行运算

    八种基本数据类型的包装类

    1.对应表

    byte         Byte
    int         Integer
    short         Short
    long         Long
    float         Float
    double         Double
    boolean       Boolean
    char         Character

    2.包装类型为什么存在?

    • Java是一个面向对象的语言,基本类型并不具有对象的性质。将基本类型包装成对象以后,扩大了基本类型所具有的操作,更是JAVA面向对象的体现
    使用集合类型Collection时使用包装类型而非基本类型,使得它具有了对象的性质,添加了属性和方法
    • 所有的基本类型都有一个与之对应的类,这些类称为包装器类。对象包装器类是不可改变的,即一旦构造类包装器类,就不允许更改包装在其中的值。同时,对象包装器类还是final,因此不能定义它们的子类。
    • 每个包装器类都有两个构造函数

    3.特点

    • 自动装箱:可以直接将基本类型数据赋值给其对应的包装器类型。
      自动装箱一定要类型严格匹配,包装器类型没有基本类型从小到大的转换。 在赋值的地方,都可以发生自动拆箱与装箱。
    • 自动拆箱:和自动装箱的过程相反,可以将包装器类对象赋值给一个基本类型。
      在自动拆箱的过程中,赋值号左边是基本类型,因此自动拆箱可以类型不严格匹配。

    两者比较

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: