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()等。

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

  • 相关阅读:
    function to_timestamp(timestamp without time zone, unknown) does not exist
    Xshell连接不上Ubuntu解决方式
    怎样使用MobaXterm上传文件到远程Linux系统 MobaXterm怎么使用连接远程服务器?
    notepad++怎样删除空行
    思维脑图在线制作工具网址
    @ApiImplicitParams
    .bat批出处理文件
    主题模型及其在文本情感分析中的应用
    表达式求职JAVA(转)
    2013华为校园招聘java实现(大家水个回复啊)
  • 原文地址:https://www.cnblogs.com/zhousysu/p/5483799.html
Copyright © 2011-2022 走看看