为什么要包装类?

来源:百度知道 编辑:UC知道 时间:2024/06/19 10:40:44
java是把基本数据类型进行包装,在JDK里面准备了‘包装类’;C#是 用所谓的 ‘装箱、拆箱’操作。。

类似 int i =5;这样的‘非对象’的赋值语句。。这个 i 变量是保存在内存中的哪里的呢?

这个看情况了下面写一个程序来说明,这个程序是我的网吧里写的没有测试是不是可以运行的哦。只是为了说明问题:
public calss Test {
//这个i1是放在代码区,因为它是成员变量。也就是放在这个类的代码里面的
//它与i3的区别是,不会因为它在方法里执行完就会消失。它是类的一部分。
int i1 = 5
//这i2是放在堆栈的静态存储区的。因为它是静态变量,在一个类的所有实体中
//都供享一个。与i2的区别是,i2是类的每个实例中都会有一个i2变量。之所以
//是这样的,就是因为他们两存放的地方法不同
static int i2 = 5;
public static void main (String []args}{
//这i3是放在栈里面的。因为它是一个方法内部的局部变量
//当方法执行完了后,它就会消失。但再一次调用这个方法时,又会在栈在分
//配这个变量的空间,方法执行完后,变量又消失
int i3 = 5;

System.out.println("only test");
}
}

ok!,再说为什么Java要包装类:
把一个基本类型包装成一个类,一个是可以使这个类型具有很多可以调用的方法。二个是Java向面像对象语言的靠近。其实Java还不算是很纯的面向对象的语言。真正的面向对象,是没有基本数据类型的。它只有一种类型,就是对象。三个是在泛型中,基本类型是不可以做泛型参数的。如:List <int> list = new ArrayList<int> ();这是不合法的。你只能这个样写List<Integer> list = new ArrayList<Integer> ();也就是要用int型的包装类类型来解决基本类型不可以做泛型参数的问题

当然可能还有其它的用,偶就知道这么多

对象的引用是一个地址,按照这个丝路int i=5;就是那对象地址那部分的内存直接改成保存5这个数字了。展示你就只能这么理解了。