Java基础类型及其包装类

1、Java基础数据类型及其包装类的对应关系
     Java基础数据类型都有其对应的包装类,除了int和char的包装类写法特殊外,其他数据类型的包装类均是将其对应的基础数据类型的首字母大写即可。
基本类型 大小 数值范围 默认值 包装类性
byte 8bit -2^7 to 2^7-1 0 Byte
short 16bit -2^15 to 2^15-1 0 Short
int 32bit -2^31 to 2^31-1 0 Integer
long 64bit -2^63 to 2^63-1 0 Long
char 16bit '\u000' to '\uFFFF' '\u0000' Character
float 32bit   0.0F或0.0f Float
double 64bit   0.0 Double
boolean 1bit true or false false Boolean
2、Java基础数据类型及其包装类的显式转换
     基础数据类型转成相应的包装类使用new关键字,调用了对应包装类的构造器来实现的,传入的构造器参数是响应的基础数据类型,(除了Character之外,还可以通过传入一个字符串参数来构建包装类对象)。包装类型转成基础数据类型则使用包装类对象的XXXValue()方法,其中XXX是该包装类型对应的基础数据类型。
  // 基础数据类型转换成包装类( int 转换成Integer)
  Integer intObject0 = new Integer(10);
  // 基础数据类型转换成包装类( int转换成Integer)
  Integer intObject1 = new Integer( "11" ); // 除了Character之外,还可以通过传入一个字符串参数来构建包装类对象
     // 包装类转换成基础数据类型(Integer转换成 int)
   int intData0 = intObject0 .intValue();
  System. out .println( "intData0=" + intData0 );
  System. out .println( "intObject0=" + intObject0 );
  System. out .println( "intObject1=" + intObject1 );
            
  // 基础数据类型转换成包装类(boolean转换成Boolean)
  Boolean booleanObject0 = new Boolean( true );
  Boolean booleanObject1 = new Boolean( "true" ); // 除了Character之外,还可以通过传入一个字符串参数来构建包装类对象
  // 包装类转换成基础数据类型(Boolean转换成boolean)
  boolean booleanData0 = booleanObject0 .booleanValue();
  System. out .println( "booleanObject0=" + booleanObject0 );
  System. out .println( "booleanObject1=" + booleanObject1 );
  System. out .println( "booleanData0=" + booleanData0 );
            
  // 基础数据类型转换成包装类(char转换成Character)
    Character charObject0 = new Character( '\u0041' );
  // 包装类转换成基础数据类型(Character转换成char)
  char charData0 = charObject0 .charValue();
  System. out .println( "charObject0=" + charObject0 );
  System. out .println( "charData0=" + charData0 );
 输出:
  intData0=10
  intObject0=10
  intObject1=11
  booleanObject0=true
  booleanObject1=true
  booleanData0=true
  charObject0=A
  charData0=A
3、Java自动装箱和拆箱
 Java自动装箱和拆箱特性是在Java SE 5才添加的特性.简单的说装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
 // 自动装箱(将基础数据类型赋给包装类对象)
 Integer intObject1 = 20;
   // 自动装箱等价于编译器进行了下面的操作
 Integer intObject2 = Integer.valueOf(21);
   // 自动拆箱(将包装类对象赋给基础类型)
 int intData1 = new Integer(20);
   // 自动拆箱等价于编译器进行了下面的操作
 int intData2 = new Integer(20).intValue();
附:自动装箱和拆箱都是由编译器来完成的。自动装箱相当于编译器调用了static Integer valueOf(int i);自动拆箱相当于编译器调用了 intValue()方法。
附:进行自动装箱和自动拆箱时必须注意类型匹配。
4、包装类可进行基本数据类型和字符串之间的转换
     包装类还提供了基本数据类型和字符串之间的转换,除了Character之外的所有包装类都提供了一个static parseXxx(String s)静态方法,用于将一个特定字符串转换成基本数据类型变量。同时String类里也提供了多个重载的valueOf()方法,用于将基本数据类型变量转换成字符串。
     附:也就是字符串转基本数据类型用包装类的 static parseXxx(String s),基本数据类型转字符串用String的valueOf()方法。
 // 整形和字符串类型互转
 int intData3 = Integer.parseInt ( "30" );
 int intData4 = Integer.parseInt ( "40" , 8);
 String intString3 = String.valueOf(30);
            
 // 浮点型和字符串类型互转
 float floatData1 = Float.parseFloat ( "3.14" );
 String floatString1 = String.valueOf(3.14);
            
   // 布尔型和字符串类型互转
   boolean booleanData1 = Boolean.valueOf ( true );
 String booleanString1 = String.valueOf( "true" );
附:基本数据类型转字符串的另一种简单方法是使用基本数据类型和""进行连接运算即可完成转换。

附:最后附上该部分的程序的源码:
package javabase;

public class WrapperClass {
       public static void main(String[] args ) {
             // 基础数据类型转换成包装类( int转换成Integer)
            Integer intObject0 = new Integer(10);
             // 基础数据类型转换成包装类( int转换成Integer)
            Integer intObject1 = new Integer( "11" ); // 除了Character之外,还可以通过传入一个字符串参数来构建包装类对象
             // 包装类转换成基础数据类型(Integer转换成 int)
             int intData0 = intObject0 .intValue();
            System. out .println( "intData0=" + intData0 );
            System. out .println( "intObject0=" + intObject0 );
            System. out .println( "intObject1=" + intObject1 );
            
             // 基础数据类型转换成包装类(boolean转换成Boolean)
            Boolean booleanObject0 = new Boolean( true );
            Boolean booleanObject1 = new Boolean( "true" ); // 除了Character之外,还可以通过传入一个字符串参数来构建包装类对象
             // 包装类转换成基础数据类型(Boolean转换成boolean)
             boolean booleanData0 = booleanObject0 .booleanValue();
            System. out .println( "booleanObject0=" + booleanObject0 );
            System. out .println( "booleanObject1=" + booleanObject1 );
            System. out .println( "booleanData0=" + booleanData0 );
            
             // 基础数据类型转换成包装类(char转换成Character)
            Character charObject0 = new Character( '\u0041' );
             // 包装类转换成基础数据类型(Character转换成char)
             char charData0 = charObject0 .charValue();
            System. out .println( "charObject0=" + charObject0 );
            System. out .println( "charData0=" + charData0 );
            
             // 自动装箱(将基础数据类型赋给包装类对象)
            Integer intObject2 = 20;
             // 自动装箱等价于编译器进行了下面的操作
            Integer intObject3 = Integer.valueOf(21);
             // 自动拆箱(将包装类对象赋给基础类型)
             int intData1 = new Integer(20);
             // 自动拆箱等价于编译器进行了下面的操作
             int intData2 = new Integer(20).intValue();
            
             // 字符串转基础数据类型
             int intData3 = Integer.parseInt ( "30" );
             int intData4 = Integer.parseInt ( "40" , 8);
             // 基础数据类型转字符串
            String intString3 = String.valueOf(30);
            
             // 浮点型和字符串互转
             float floatData1 = Float.parseFloat ( "3.14" );
            String floatString1 = String.valueOf(3.14);
            
             // 布尔型和字符串互转
             boolean booleanData1 = Boolean.valueOf ( true );
            String booleanString1 = String.valueOf( "true" );
            
             floatString1 .equals( booleanString1 );
            System. out .println( "intData3=" + intData3 );
            System. out .println( "intData4=" + intData4 );
      }
}

你可能感兴趣的:(深入理解Java基础)