• Java--包装类型


    一。Java中八种基本数据类型对应的包装类型

      基本数据类型      包装类型

        bytes          java.lang.Bytes;

        short          java.lang.Short;

        int            java.lang.Integer;

        long          java.lang.Long;

        float          java.lang.Float;

        double         java.lang.Double;

        boolean        java.lang.Boolean;

        char          java.lang.Character;

    二,为什么java要提供这种包类型呢?

      方便。举个例子,当创建一个方法时,我们想调用的时候往里面可以传入所有类型的参数,那我们形式参数就设置为object类型。可是基本数据类型的基类又不是object,那使用相应的包装类型就可以了。

    三,包装类型的常用方法(以Integer为例,其余同理)

      主要就是:int  Integer  String类型之间的相互转换

    1.  int-->Integer

      Integer  i1  =  Integer . valueOf ( 10 );

    2.  String-->Integer

      Integer  i2  =  Integer . valueOf ( "10" );

    3.  Integer-->int

      int  i3 = i1. intValue( );

    4.  String-->int

      int  i4 = Interger . parseInt ( "123" );

    5.  int-->String

      String  s2 = 10 + "";

    6.  Integer-->String

      String  s1 =  i1 . toString ()

    注:比较两个Integer类型的数据是否相等,不能用“==”,得用Object中的equals方法(Integer已将其重写)

    四,JDK5.0(及以后)新特性:自动装箱(auto_boxing),自动拆箱(auto_unboxing)

    繁琐写法:

      //int-->Integer(装箱)

      Integer  i1  =  new  Integer ( 10 ) ;

      //Integer-->int(拆箱)

      int  i2  =  i1 . intValue();

      自动装箱:

      Integer  i3  =  10 ;

      自动拆箱:

      int  i4  =  i3; 

    *深入理解自动装箱和自动拆箱:

      &1.自动装箱和自动拆箱是程序编译运行阶段的一个概念,与程序执行无关

      &2.自动装箱和自动拆箱的目的是为了方便程序员编码

    五,自动装箱和自动拆箱的内存分析(以Integer类型为例)

    1,java在 方法区内存 中引入了一个“整形常量池”(一块内存空间),该整形常量池只存储了-128~127之间的数据。当变量在相应的范围内的时候,程序并不会在堆内存中创建对象,而是会直接创建一个引用,指向整形常量池中所需要的数据

    例如:

    Integer  i5 = 127 ;

    Integer  i6 = 127;

    System.out.println (i5 == i6);//结果为true

    Integer  i9 = -129 ;

    Integer  i10 = -129;

    System.out.println (i9 == i10);//结果为false

  • 相关阅读:
    Eclipse修改背景颜色(豆沙绿)
    项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
    jdk1.7 环境变量配置
    Maven的安装、配置及使用入门
    tomcat端口作用
    《Maven实战》
    Maven 详解
    遍历Map的四种方法
    遍历properties文件
    题库终结
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/13199409.html
Copyright © 2020-2023  润新知