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,编译器会在生成字节码文件的时候插入必要的方法调用

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

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

  • 相关阅读:
    27.全排列与带重复的排列
    ios之自定义UISwitch
    ios之UIAlertView
    ios之UISegmentedcontol
    ios之UISlider
    ios之UITextfield
    ios之UIImageView
    ios之UIButoon
    ios之UILabel
    ios 点餐系统
  • 原文地址:https://www.cnblogs.com/jiasq/p/8516070.html
Copyright © 2011-2022 走看看