zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/13199409.html
Copyright © 2011-2022 走看看