Java 八种基本类型包装类

基本数据类型   包装类型
----------------------------------------------
byte     java.lang.Byte(父类Number)
short    java.lang.Short(父类Number)
int      java.lang.Integer(父类Number)
long     java.lang.Long(父类Number)
float     java.lang.Float(父类Number)
double    java.lang.Double(父类Number)
boolean  java.lang.Boolean(父类Object)
char     java.lang.Character(父类Object)

Number类中有这样的方法:
  byte byteValue() 以 byte 形式返回指定的数值。
  abstract double doubleValue()以 double 形式返回指定的数值。
  abstract float floatValue()以 float 形式返回指定的数值。
  abstract int intValue()以 int 形式返回指定的数值。
  abstract long longValue()以 long 形式返回指定的数值。
  short shortValue()以 short 形式返回指定的数值。
  这些方法其实所有的数字包装类的子类都有,这些方法是负责拆箱的。

 

// 基本数据类型 -(转换为)->引用数据类型(装箱)
Integer i = new Integer(123);

// 将引用数据类型--(转换为)-> 基本数据类型
float f = i.floatValue();
System.out.println(f); //123.0

// 将引用数据类型--(转换为)-> 基本数据类型(拆箱)
int retValue = i.intValue();
System.out.println(retValue); //123

java5 之后 自动装箱和拆箱

  [-128到127]之间的数据比较特殊
public class IntegerTest01 {
    public static void main(String[] args) {

        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b); //false

        /*
        java中为了提高程序的执行效率,将[-128到127]之间所有的包装对象提前创建好,
        放到了一个方法区的“整数型常量池”当中了,目的是只要用这个区间的数据不需要
        再new了,直接从整数型常量池当中取出来。

        原理:x变量中保存的对象的内存地址和y变量中保存的对象的内存地址是一样的。
         */
        Integer x = 127;
        Integer y = 127;
        // == 永远判断的都是两个对象的内存地址是否相同。
        System.out.println(x == y); //true
    }
}

  

  总结一下之前所学的经典异常?
    空指针异常:NullPointerException
    类型转换异常:ClassCastException
    数组下标越界异常:ArrayIndexOutOfBoundsException
    数字格式化异常:NumberFormatException

  //网页上文本框中输入的100实际上是"100"字符串。后台数据库中要求存储100数字,此时java程序需要将"100"转换成100数字。
    int retValue = Integer.parseInt("123"); // String -转换-> int
    //int retValue = Integer.parseInt("中文"); // NumberFormatException
    System.out.println(retValue + 100);

// valueOf方法作为了解
//static Integer valueOf(int i)
// 静态的:int-->Integer
Integer i1 = Integer.valueOf(100);
System.out.println(i1);

// static Integer valueOf(String s)
// 静态的:String-->Integer
Integer i2 = Integer.valueOf("100");
System.out.println(i2);

 

三种类型的转换

 

 

 

posted @ 2020-09-08 23:03  一叶扁舟,乘风破浪  阅读(299)  评论(0编辑  收藏  举报