您的位置:首页 > 编程语言 > Java开发

java基本数据类型包装类

2016-03-20 13:49 471 查看

1. 概述

JAVA中一共有8种数据类型,分别是byte short int long boolean float double char,与此相对应的,有8个类与它们分别对应:

byte  Byte

short  Short

int  Integer

long  Long

boolean  Boolean

float  Float

double  Double

char  Character


将基本数据类型封装成对象有什么好处?

    基本数据类型包装类中封装了很多属性和方法,使得对数据的操作更加方便和灵活

举例说明:

    想要获得int类型所能表示的最大值,只需要使用静态属性:Integer.MAX_VALUE即可。

    想要将十进制数转换成二进制数,只需要调用静态方法:Integer.toBinaryString()方法即可。

2.基本数据类型和字符串之间的相互转换

1.基本数据类型转换成字符串

方法:

  1.1 基本数据类型+“”

  1.2 使用String类的静态方法valueOf

  1.3 使用基本数据类型包装类的非静态方法valueOf

2.字符串转换成基本数据类型

2.1使用parseXXX方法

  用法示例:int x=Integer.parseInt("123");

  注意,该方法中的参数字符串必须合法,否则会抛出运行时异常NumberFormatException。

  此外,还有Long.parseLong、Double.parseDouble、Float.parseFloat、Boolean.parseBoolean、Byte.parseByte、Short.parseShort方法,但是应当注意,Character类中并没有类似的方法,原因是显而易见的,一个字符串长度一旦超过1,该方法就没有意义了。

2.2使用构造方法创建新对象

  例如:Integer x=new Integer("123");

  其它基本数据类型包装类用法类似。但是仍然要注意Character类的构造方法。

3. 十进制数和其它进制数之间的转换

1.十进制数转换成其它进制数。

1.1使用三个常用方法

   public static String toBinaryString(int i); 该方法将十进制数转换成二进制数的补码表示形式

  public static String toHexString(int i); 该方法将十进制数转换成十六进制数

  public static String toOctalString(int i); 该方法将十进制数转换成八进制数


1.2使用toString方法。

  public static String toString(int i,int radix);该方法能将十进制数转换成任意进制数,前提是基数小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX。


  用法示例:String str=Integer.toString(12,2); 将十进制数12转换成2进制数并返回二进制数的字符串表示形式。

2其它进制数转换成十进制数

使用parseInt方法。

 public static int parseInt(String s,int radix)throws NumberFormatException;
该方法能够将字串x视为radix进制数,并将该数转换为十进制数。如果转换失败,则抛出NumberFormatException异常


4. 自动装箱、拆箱操作

如果基本数据类型已经封装成了对象,该怎么获取该基本数据类型的值?

使用方法:intValue();(针对Integer类)其它方法的使用类似。

Double.doubleValue()、 Float.floatValue() 、Boolean.booleanValue()、Byte.byteValue()、 Character.characterValue ()、 Long.longValue()、

Short.shortValue()

例1:自动装箱示例

public class Demo
{
public static void main(String args[])
{
//Demo1();
//Demo2();
Demo3();
}
public static void Demo3()
{
Integer i=1;
i=i+1;
System.out.println(i);
}
public static void Demo2()
{
for(int i=1;i<=200;i++)
{
Integer x=i;
Integer y=i;
System.out.println(i+":"+(x==y));
}
}
public static void Demo1()
{
Integer i=new Integer(123);
Integer j=123;
System.out.println(i==j);
System.out.println(i.equals(j));
System.out.println(i.compareTo(j));
}
}


View Code
运行结果:2

最关键的一句就是i=i+1;这个操作。

这其中包含着自动拆箱和自动装箱的操作。

分析:i+1,我们知道JAVA中的运算必须是同一种类型数据之间的运算。在这里,一个基本数据类型1,还有一个是基本数据类型包装类的对象,那么他们之间的运算是怎么回事儿呢?首先,JAVA中的运算只能是基本数据类型之间的运算,所以,在这里,基本数据类型包装类的对象会调用intValue方法,返回一个整数,在这里,这个整数是1,然后1+1得出结果2,但是2是基本数据类型,所以如果要赋值给i,还需要有一个自动装箱的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: