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

java包装类及自动拆装箱和自动拆箱

2016-07-24 13:19 405 查看
       Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类

,这样我们就可以像操作对象那样来操作基本数据类型。包装类均位于java.lang包,对应如下表:



图中可以看出 除了integer和charcter类,其他类和基本数据类型差不多。

包装类主要用途

a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。

        b、包含每种基本数据类型的相关属性如最大值(MAX_VALUE)、最小值(MIN_VALUE)、二进制补码表示位数(SIZE)等,以及相关的操作方法。

包装类提供了2大类方法

         1. 将本类型和其他基本类型进行转换的方法

         2. 将字符串和本类型及包装类互相转换的方法 

下面是integer包装类的实例:

integer包装类的构造方法



integer的常用方法



<span style="font-size:12px;">public class HelloWorld {
public static void main(String[] args) {

// 定义int类型变量,值为86
int score1 = 86;

// 创建Integer包装类对象,表示变量score1的值
Integer score2=new Integer(score1);

// 将Integer包装类转换为double类型
double score3=score2.doubleValue();

// 将Integer包装类转换为float类型
float score4=score2.floatValue();

// 将Integer包装类转换为int类型
int score5 =score2.intValue();

System.out.println("Integer包装类:" + score2);
System.out.println("double类型:" + score3);
System.out.println("float类型:" + score4);
System.out.println("int类型:" + score5);

//parseInt方法一
String s="123"; //字符串都是数字,否则出NumberFormatException

异常
int n = Integer.parseInt(s);

//parseInt方法二
//将字符串”120”按照十进制转换为int,则结果为120
int n = Integer.parseInt(“120”,10);
//将字符串”12”按照十六进制转换为int,则结果为18
int n = Integer.parseInt(“12”,16);

//toString方法 与parseInt方法类似
}
}</span>表着急 下面还有一点知识
     在JDK1.5版本之后,引入了自动装箱和自动拆箱,极其方便了程序猿书写代码

自动装箱:基本类型自动转为包装类

自动拆箱:包装类转为基本类型

  //int类型会自动转换为Integer类型

                 int m = 12;

                 Integer in = m;

                 //Integer类型会自动转换为int类型

                 int n = in;

还有一个有趣的例子

public static void main(String[] args)
{
Integer a1 = 200;
Integer a2 = 200;

if (a1 == a2)
{
System.out.println("a1 == a2");

}
else
{
System.out.println("a1 != a2");

}
}当两个数都是100的时候==判断相等,当两个数都是200的时候判断不相等。

原因:Integer类有一个缓存,它会缓存-128~127之间的整数。

当调用valueOf的时候,不会生成新的对象,而是从缓存中取出对象。这样可以提高性能。

使用构造方法的时候就会生成新的对象。

自动装箱、自动拆箱参考:
http://www.cnblogs.com/danne823/archive/2011/04/22/2025332.html http://www.importnew.com/15712.html http://blog.csdn.net/jackiehff/article/details/8509056
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: