zoukankan      html  css  js  c++  java
  • [Js-Java SE]对象包装器与自动装箱

    有时需要需要将基本数据类型转换为对象,所以就需要包装器(wrapper)的存在,所有的基本类型对应都有一个包装器类

    int——Integer

    long——Long

    float——Float

    double——Double

    short——Short

    byte——Byte

    (注:以上六个类派生于公共的超类Number)

    character——Character

    void——Void

    boolean——Boolean

    在Java SE 5.0之后开始出现自动装箱(autoboxing)(boxing这种说法源自C#),如下:

    ArrayList<Integer> list = new ArrayList<>();

    list.add(3);

    将被自动装箱为

    list.add(Integer.valueOf(3));

    这就是自动装箱(autoboxing)

    相反地,当将一个Integer对象赋给一个int值,将会自动拆箱

    ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

    · 自动装箱的规范要求boolean、byte、char≤127,介于-128~127之间的short和int被包装到固定的对象中,例如:

    Integer a = 1000;

    Integer b = 1000;

    System.out.println(a == b);   // false

    然而

    Integer a = 100;

    Integer b = 100;

    System.out.println(a == b);   // true

    · 装箱和拆箱操作是编译器认可的,而不是JVM,编译器会在生成字节码文件的时候插入必要的方法调用

    · 包装器类是不可变的,包含在包装器中的内容不会改变

    ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

  • 相关阅读:
    error: gnu/stubs32.h: 没有那个文件或目录
    vim配色方案
    Linux文件合并、去除重复
    Debian网络安装中的驱动问题
    汽油、柴油标号
    Debian SSH登录慢的解决办法
    Debian下的时间和时区问题
    解决vim、gvim在windows下中文乱码
    使用本地Debian ISO镜像作为网络安装源
    Debian如何永久添加静态路由
  • 原文地址:https://www.cnblogs.com/jiasq/p/8516070.html
Copyright © 2011-2022 走看看