zoukankan      html  css  js  c++  java
  • [Java]基本数据类型及其封装类总结

    九种基本数据类型的大小,以及他们的封装类

    类型 字节 默认值 封装类
    byte 1 0 Byte
    char 2 null Character
    int 4 0 Integer
    long 8 0 Long
    float 4 0.0f Float
    double 8 0L Double
    boolean - false Boolean
    short 2 0.0d Short
    void - - Void
    • 基本类型是放在栈中,直接存储值。

    • 所有数值类型都有正负号,没有无符号的数值类型。

    • int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况。一旦java看到null,就知道这个引用还没有指向某个对象,再任何引用使用前,必须为其指定一个对象,否则会报错。

    • 数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改在另一个数组中也看的见。

    既然提供了基本类型,为什么还要使用封装类呢?

    某些情况下,数据必须作为对象出现,此时必须使用封装类来将简单类型封装成对象。
    比如,如果想使用List来保存数值,由于List中只能添加对象,因此我们需要将数据封装到封装类中再加入List。在JDK5.0以后可以自动封包,可以简写成list.add(1)的形式,但添加的数据依然是封装后的对象。
    另外,有些情况下,我们也会编写诸如func(Object o)的这种方法,它可以接受所有类型的对象数据,但对于简单数据类型,我们则必须使用封装类的对象。
    某些情况下,使用封装类使我们可以更加方便的操作数据。比如封装类具有一些基本类型不具备的方法,比如valueOf(), toString(), 以及方便的返回各种类型数据的方法,如Integer的shortValue(), longValue(), intValue()等。

    同时,两者是有区别的。
    基本数据类型只能按值传递,而封装类按引用传递。
    基本类型在堆栈中创建;而对于对象类型,对象在堆中创建,对象的引用在堆栈中创建。基本类型由于在堆栈中,效率会比较高,但是可能会存在内存泄漏的问题。

  • 相关阅读:
    Educational Codeforces Round 10 C. Foe Pairs 水题
    Educational Codeforces Round 10 B. z-sort 构造
    CDOJ 1048 Bob's vector 三分
    Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
    第14届电子科大初赛民间盗版部分题目题解
    HDU 5654 xiaoxin and his watermelon candy 离线树状数组 区间不同数的个数
    HDU 5653 Bomber Man wants to bomb an Array. dp
    HDU 5652 India and China Origins 二分+并查集
    HDU 5651 xiaoxin juju needs help 数学
    HDU 5650 so easy 数学
  • 原文地址:https://www.cnblogs.com/zhousysu/p/5483799.html
Copyright © 2011-2022 走看看