• Java包装类


    包装类是比较容易被人忽视的一个东西
     
    1、JAVA为什么会有这个东西
    Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。
     
    2、它是啥
    包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:
    基本类型 包装类
    boolean  Boolean
    char       Character
    byte       Byte
    short      Short
    int          Integer
    long       Long
    float       Float
    double   Double
    在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。
     
    3、区别:
    基本类型一般都是把值放在栈空间的,而包装类是栈空间放地址,值放在这个地址指向的堆空间:
    int i = 5;//直接在栈中分配空间
    Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中
     
    比如: Integer 的默认值是 null,int的默认值0 
     
    4、它有哪些主要功能
    这些类的用途主要包含两种:
    1. 作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
    2. 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
    3. (其他后文提到的一些特性其实也属于这两种)
     
    5、一般人会在什么时候注意、用到它
    1. 当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。
    2. 面试题里考你自动拆装箱的时候
     
    6、它的一大特点、难点:自动拆装箱
    用不着先不管,暂时跳过,(好像也不难)。。
    可以参考:
     
    7、一个诡异
    1. 没有方法可以直接改变一个Integer对象的值,只能重新初始化一个新的
      1. 这个其实是我这次研究这个东西的主要目的,后来发现真的不可以
      2. 网上直接提这个的很少,有一些评论里提到了,然后我确实在JAVA7的API里找不到接口
  • 相关阅读:
    四十一.redis主从复制 RDB/AOF持久化 数据类型
    四十.创建Redis集群 管理集群
    三十九.NoSQL概述 部署Redis服务 、 部署LNMP+Redis
    三十八. 分库分表概述 配置mycat
    520D
    442C
    LA4788
    LA3276
    LA4122
    zoj3478
  • 原文地址:https://www.cnblogs.com/bellkosmos/p/5341739.html
Copyright © 2020-2023  润新知