java 包装类 数据类型转换

  • 作用为将八大基本类型包装为引用类型

byte short int long float double char boolean
Byte Short Integer Long Float Double Character Boolean

基本类型与包装类型

基转包
  1. 利用构造

    包装类型 引用名=new 包装类名(基本类型);
  2. 利用valueOf

    包装类型 引用名=包装类名.valueOf(基本类型);
包转基
  1. 利用xxxValue

    基本类型 变量名=包装类型引用名.xxxValue();
    注:xxx对应的是基本类型名
自动转换
int a1=10;
        //1.构造
        Integer i1 = new Integer(a1);
        //2. valueOf
        Integer i2 = Integer.valueOf(a1);
        //包转基
        int a2 = i2.intValue();
        //自动转换
        Integer i3 = a1;
        int a3 = i3;

### 基本类型与String

#### 基转String

### 基本类型与String

#### 基转String

1. 字符串拼接

   ~~~java
   String 引用名=基本类型+"";
   String 引用名=""+基本类型;
   ~~~

2. 利用valueOf

   ~~~java
   String 引用名=String.valueOf(基本类型);
   ~~~

#### String转基

1. 利用parseXxx方法

   ~~~java
   基本类型 变量名=对应的包装类名.parseXxx(String类型);
   注:Xxx对应的是基本类型名,首字母大写
   ~~~

> 必须包装String中的数据是基本类型能够盛放的数据,否则执行时会触发NumberFormatException数据类型转换异常

~~~java
		int a1 = 100;
        //字符串拼接
        String s1 = a1 + "abc";
        String s2 = "" + a1;
		String s3=String.valueOf(a1);
        //String转基
        int a2 = Integer.parseInt(s2);
       // int a3 = Integer.parseInt(s1);//100abc 报错
~~~

### 包装类型与String



#### 包转String

1. 字符串拼接

   ~~~java
   String 引用名=包装类型+"";
   String 引用名=""+包装类型;
   ~~~

2. 利用toString

   ~~~java
   String 引用名=包装类型引用名.toString();
   ~~~

#### String转包

与基转包一致

> 必须保证String的值为包装类型能够盛放的值

~~~java
Integer i1 = 100;
        //字符串拼接
        String s1 = i1 + "qwe";
        String s2 = "" + i1;
        //toString
        String s3 = i1.toString();
        //String转包
        Integer i2 = new Integer(s2);
        Integer i3 = Integer.valueOf(s3);

       // Integer i4 = new Integer(s1); 报错
~~~

### 整数缓冲区

官方认定-128至127是最常用的256个数字,为了减少包装类型使用反复数字带来的空间浪费,所以在方法区中设立了整数缓冲区,用来存放这256个数字,当包装类型使用的数字在此范围内,则直接引用缓冲区地址,不再额外开辟对象空间,以此达到节省空间的目的

> ==比较引用类型地址时,优先使用堆中的对象地址

~~~java
		Integer i1 = 200;
        Integer i2 = 200;
        System.out.println(i1 == i2);//f

        Integer i3 = 100;
        Integer i4 = 100;
        System.out.println(i3 == i4);//t

        Integer i5 = new Integer(100);
        Integer i6 = new Integer(100);
        System.out.println(i5 == i6);//f


        System.out.println(i3 == i5);//f
~~~



//        int a1=10;
//        //1 构造   低版本彩可以使用
//        //Integer i1= new Integer(a1);
//        //2 valueOf
//        Integer i2=Integer.valueOf(a1);
//        //包转基
//        int a2=i2.intValue();
//        Integer i3=a2;
//        int a3=i3;

//        int a1=100;
//        //字符串拼接
//        String s1=a1+"abc";
//        String s2=""+a1;
//        String S3=String.valueOf(a1);
//        //string 转基本类型
//        int a2 =Integer.parseInt(s2);

        Integer i1=100;
        //字符串拼接
        String S1=i1+"qwe";
        String S2=""+i1;
        //toString
        String S3=i1.toString();
        //String转包
        Integer I2=new Integer(S2);
        Integer I3=Integer.valueOf(S3);

你可能感兴趣的:(java,开发语言)