• 【JAVA SE基础篇】34.包装类


    1.包装类是什么?

    java中我们经常将基本数据类型转换为对象,例:将基本数据类型存储到object[]数组或集合中进行操作

    为了解决这个问题,Java在设计类的时候为每个基本数据类型设计了一个对应的类进行代表

    这八个和基本数据类型对应的类统称包装类

    包装类位于java.lang包下

    以下是八种数据类型对应的包装类

    byte--Byte

    boolean--Boolean

    short--Short

    char--Character

    int--Integer(常用)

    long--Long

    float--Float

    double--Double

    这八个包装类,只有int和char对应的包装类有比较大的差别

    2.包装类的用法

    包装类的主要用途有两种:

    1.作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作

    2.包含每种基本数据类型的相关属性,如最大值和最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化)

    例:(Interger类的使用,其他包装类用法类似)

     3.自动装箱和拆箱

    自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的相互转换。(JDK1.5后,java才有自动装箱和拆箱)

    1.自动装箱

    基本数据类型处于需要对象的环境中时,就会自动转换为“对象”。

    例:在JDK1.5之前,Integer i=5是错误的,必须写成Integer i=new Integer(5),这样实现了基本数据类型转换为包装类。

    而JDK1.5之后,Integer i=5这样的语句就可以实现将基本数据类型转换为包装类。

    这是因为JVM帮我们执行了Integer i=Ingeter.valueOf(5)这句话。这就是自动装箱。

    2.自动拆箱

    每当需要一个值的时候,对象回自动转成基本数据类型,没必要再去显示调用intValue()、doubleValue()等转型方法。

    例:Integer i=5;int j=1;这样的过程就是自动拆箱

    总结:

    自动装箱的过程是通过调用包装了的valueOf()方法实现的,而自动拆箱过程是通过调用包装类的xxxValue()方法实现的

    例:

     4.包装类缓存问题

    整形、char型所对应的包装类,在自动装箱时,对于-128~127这个区间的值会进行缓存处理,其目的是提高效率

    缓存处理原理:

    如果数据在-128~127之间,那么在类的加载时就已经为该区间的每个数值创建了对象,并将这256个对象存放到一个名为cache的数组中

    。每当自动装箱过程发生时,或者手动调用valurOf()时,就会先判断数据是否在该区间,如果在,则直接获取数组中对应的包装类对象引用

    ,如果不在则会通过new调用包装类的构造方法来创建对象。

    例:

  • 相关阅读:
    RTP时间戳
    FAT,FAT32,NTFS单目录文件数量限制
    SWT将系统图标保存为本地文件
    HttpClient+jsoup登录+解析 163邮箱
    RTP协议分析
    Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof)
    YUV转为RGB24及IplImage格式(I420和YV12)及Java版实现
    Using a long as ArrayList index in java
    详解 SWT 中的 Browser.setUrl(String url, String postData, String[] headers) 的用法
    swt生成、jar可执行包生成.exe可执行文件(giter)
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13192598.html
Copyright © 2020-2023  润新知