基本数据列包装类

为了便于操作基本数据列值,将那个包装成了目标,在目标被定义了性能和行事,丰富了拖欠数据的操作。

包装类

Java提供了一致组包装类,来包装所有的着力数据类

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

上述包装类又分为两实品种:

  • 目标型包装类(Object直接子类):Character、Boolean
  • 数值型包装类(Number直接子类):Byte、Short、Integer、Float、Double、Long.
    Number是一个抽象类,里面一共定义了六个操作方法:intValue()、doubleValue()、floatValue()、byteValue()、shortValue()、longValue().

用以描述该对象的切近manbetx手机网页版,就称为基本数据对象包装类。

装箱与拆箱操作

主导数据列和包装类之间的转换:

  1. 装箱操作:将着力数据列变为包装类的款式:

  2. 每个包装类的构造方法都得以收各自数据类型的变量;

  3. 拆箱操作:从包装类之中取出被包裹的数量:

  4. 以Number类中提供的:xxxValue()方法成功。

范例:int与Integer非自动拆、装箱

public class Integer2intDemo {
    public static void main(String[] args) {
        Integer obj = new Integer(10);      //将基本数据类型装箱
        int temp = obj.intValue();          //将包装后的数据拆箱
        System.out.println(temp);
    }
}

范例:自动拆、装箱

public class Integer2intDemo {
    public static void main(String[] args) {
        Integer obj2 = 10;      //自动装箱
        int temp2 = obj;        //自动装箱
        obj++;                  //包装类直接进行数学计算
        System.out.println(temp * obj);
    }
}

注意

public class Integer2intDemo {
    public static void main(String[] args) {
        Integer obja = 10;
        Integer objb = 10;
        Integer objc = new Integer(10);
        System.out.println(obja == objb);   //true
        System.out.println(obja == objc);   //false
        System.out.println(objb == objc);   //false
        System.out.println(obja.equals(objc));  //true
    }
}

下包装类的上怪少会动构造方法完成,几乎都是一直赋值,但是以认清内容是否等的时候自然要是使用equals()方法。

提示:此刻Object可以接受一切的援数据类型,因为是活动装箱机制,所以Object也堪存放基本项目了。

  • 流程: 基本数据类 → 自动装箱(变成对象) → 向上转型也Object

public class Integer2intDemo {
    public static void main(String[] args) {
        Object obj3 = 10;   //先包装再转换
        //Object 不可能直接向下转型为int
        int temp3 = (Integer)obj3;  //向下转型为Integer后,自动拆箱
        System.out.println(temp3 * 2);
    }
}

byte    Byte

数据类型转换(核心)

下包装类最多之就算是数据类型转换,在卷入类里提供有以String型数据易为中心数据列的不二法门,使用几独象征的接近证:

  • Integer类:public static int parseInt(String s)
  • Double类:public static double parseDouble(String s)
  • Boolean类:public static boolean parseBoolean(String s)
    欲注意的凡Character类里面未有字符串变为字符的办法,因为String类有一个charAt()的点子好依据索引取出字符内容。

范例:以字符串变为int型数据

public class Integer2intDemo {
    public static void main(String[] args) {
        String str = "123";     //字符串
        int temp4 = Integer.parseInt(str);
        System.out.println(temp4);
    }
}

这兑现了字符串变为基本数据类的操作,但是这样的变过程中:深受换的字符串一定是由数字构成
范例:错误代码

public class Integer2intDemo {
    public static void main(String[] args) {
        String str = "123a";        //字符串
        int temp4 = Integer.parseInt(str);
        System.out.println(temp4);
    }
}

Exception in thread "main" java.lang.NumberFormatException: For input string: "123a"
范例:观察boolean转换

        String str2 = "true";   //字符串
        boolean flag = Boolean.parseBoolean(str2);
        if (flag) {
            System.out.println("** 满足条件!");
        } else {
            System.out.println("** 不满足条件!");
        }

于Boolean进行转移的进程中,如果如换的字符串不是true或者false,那么以联合按false处理。
本既实现了字符串变为基本数据类的操作,那么也得以兑现基本数据类型转换为字符串的操作:

  • 操作一:任何基本数据类以及字符串使用了”+”操作后还代表变为字符串:

        int num = 100;
        String str3 = num + "";     //变为String
        System.out.println(str3.replaceAll("0","9"));   //199

然的操作虽然可以概括的到位,但是会存在垃圾问题。

  • 操作二:public static String valueOf(数据类型 变量)

        int num = 100;
        String str4 = String.valueOf(num);
        System.out.println(str4.replaceAll("0","9"));   //199

这样的操作不会见起垃圾,所以当支付的常反复会利用操作二。

short   Short

总结

  1. JDK1.5后才提供自动装箱与拆箱的操作;
  2. 字符串与中心数据列的相互转换:

  3. 字符串转换为核心数据列,依靠包装类的parseXxx()方法;

  4. 着力数据类型转换为字符串,依靠String.valueOf(数据类型)方法。

int     Inreger 

long    Long

float    Float

double  Double

char   Character

boolean  Boolean

主导数据列—>字符串

1.中心数据类值+””

2.因此String类中之静态方法valueof(基本数据类型值)

字符串—>基本数据列

1.用包装类吃之静态方法xxx parseXxx(xxx类型的字符串)

    例如:int parseInt(“intString”);

               boolean parseBoolean(“booleanString”);

    只有character没有parse方法

2.要是字符串被Integer进行对象的包,那么可以使用一个不静态方法inValue,将一个Integer对象转成中心数据类的值

int inValue();
long longValue();
.
.
.
等等

平头具备不同之进制体现

十进制—>其他进制

二 

static String toBinaryString(int i)  

static String toOctalString(int i)  

十六

static String toHexString(int i)  

任意

static String toString(int i, int radix)  

 

外进制—>十进制

static int parseInt(String s, int radix)  

 

于单薄独目标的数值返回-1 0 1

int compareTo(Integer anotherInteger)  

 

机动装箱

public class Text {
    public static void main(String[] args){
        Integer a=127; //自动装箱
        Integer b=127;    
        System.out.println(a==b);//true
        System.out.print(a.equals(b));\\true
    }
}

jdk升级到1.5后 自动装箱 简化书写
如果装箱的是一个字节,那么数量会吃共享,不会见开发新的空中(最小值-128,最老价值127)

机关拆箱

i=i+6—–>i=new Integer(i.inValue()+6)   
  i.inValue()可以理解也电动拆箱

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图