包装类
问题:int和Integer有什么区别呢?…
答:int是基本数据类型,直接存放数值;而Integer是包装类,是一个类,拥有自己的方法。
一、包装类简介
-
包装类就是把基本数据类型(共有八个:byte,short,int,long,float,double,char,boolean)封装在一个类中。
注:将基本数据类型包装为一个类对象的本质在于方便的使用Object类接收处理。 -
包装类提供了两种类型:
对象型(Object类的直接子类):Boolean,Character;
数值型(Number的直接子类):Byte,Short,Integer,Long,Double,Float。
注:
- Number类是这样定义的:
public abstract class Number extends Object implements Serializable{}
- 在Number类中有六个重要方法:×××Value()方法,其作用将包装类中的基本数据类型取出。
分别为:intValue(),shortValue(),byteValue(),longValue(),doubleValue(),floatValue()。
二、拆箱与装箱操作
包装类与基本数据类型之间存在两个重要的概念:
- 装箱:将基本数据类型变为包装类对象;
利用每个包装类提供的构造方法实现装箱处理。 - 拆箱:将包装类中包装的基本数据类型取出;
利用Number类中有六个重要方法:×××Value()方法。
代码示例:
public class Demo{
public static void main(String[] args) {
Integer num=new Integer(10);//装箱
int x=num.intValue();//拆箱
System.out.println(x);
}
}
三、字符串与基本数据类型的转换
方法:parse×××(String s)方法
- String 变为int类型(Integer类):
public static int parseInt(String s) - String 变为double类型(Double类):
public static double parseDouble(String s) - String 变为boolean类型(Boolean类):
public static boolean parseBoolean(String s)
String str="123";//字符串
int num=Integer.parseInt(str);
System.out.println(num);
四、基本数据类型与字符串的转换
两种方法:
- 任何数据类型使用“+”号连接空白字符串就变为字符串类型。
String str =100+" ";
不足之处就是会产生垃圾。
- 使用String类中提供的valueOf()方法,且被重载多次。
String str= String.valueOf(100);//不会产生垃圾
(欢迎批评指正!)