• java包装类简析


    对于8个基本类型,java提供了他们相应的包装类:

    基本类型 包装类

    byte java.lang.Byte

    short java.lang.Short

    int java.lang.Integer

    long java.lang.Long

    float java.lang.Float

    double java.lang.Double

    char java.lang.Character

    boolean java.lang.Boolean

    其中除了Character与Boolean的父类是Object之外,其余的都是继承自:java.lang.Number

    在Java中,抽象类 Number 是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的超类。该类提供了六个方法,如图-1所示。

    图- 1

    以上六个方法中,floatValue方法和doubleValue方法在使用时,可能涉及到舍入;其它四个方法可能涉及到舍入或者取整。

    例如  Number a = 123;

        Number b = 123.123;

        int c = a.intValue();

        double d = b.doubleValue();//此时可以通过某一类型Value()方法,把Number类型的对象转成基本类型。

    )2包装类和基本类型之间的转化

      )2.1 基本类型转为包装类 : 包装类.ValueOf();方法

        例如 :int a = 20;

            Integer b = Integer.valueOf(a); //可以把基本类型转化为包装类。 当然这个方法的参数还可以为可以表达为数字的string对象。读api

      )2.2包装类转基本类型:包装类的 基本类型Value()方法。且一个包装类是可以被转化为多个基本类型的,例如Integer中就有intValue();doubleValue();longValue();等等

        例如

          Integer a = 123;

          int b = a.intValue();

          double c = a.doubleValue();

    )3.包装类中将可以转化为该类的字符串对象进行转化的静态方法():继承Number的包装类的6个数字子类,都有将字符串转为自身对象的方法

        包装类  parse包装类(字符串);

    随便一提,把其他包装类的对象转化为字符串的方法,一般用String中定义的valueOf;

    )4.那么java是如何实现的自动拆装箱呢?

    事实上JVM不支持该特性,自动拆装箱只是编译器在编译过程中的"预处理"操作。编译器在看到需要在包装类与基本类型之间转换时,会在编译为字节码时进行改变:

    源代码中 编译后的字节码中

    Integer a = 100 => Integer a = Integer.valueOf(100);

    Integer b = 200 => Integer b = Integer.valueOf(200);

    Integer c = a+b => Integer c = Integer.valueOf (a.intValue( ) + b.intValue( ));

    double d = c => double d = c . doubleValue( );

  • 相关阅读:
    Redux其实很简单(原理篇)
    基于Docker的UI自动化初探
    视觉设计师的进化
    浅谈容器监控和网易云计算基础服务实践
    微服务实践沙龙-上海站
    知物由学 | 见招拆招,Android应用破解及防护秘籍
    6本互联网技术畅销书免费送(数据分析、深度学习、编程语言)!
    Lily-一个埋点管理工具
    ArcGIS 10 许可配置
    How to Programmatically Add/Delete Custom Options in Magento?
  • 原文地址:https://www.cnblogs.com/exceptionblog/p/7980261.html
Copyright © 2020-2023  润新知