日期:2014-05-20  浏览次数:20735 次

基本数据类型 和 包装类 的区别
看书没明白他所讲的,尽量用些通俗易懂的例子,谢谢!

------解决方案--------------------
int 是基本类型,直接存数值 
Integer是类,产生对象时用一个引用指向这个对象 
Java把内存划分成两种:一种是栈内存,另一种是堆内存 
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 
而实际的对象是在存储堆内存中 
即 
int i = 5;//直接在栈中分配空间 
Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中 
在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理. 
因为在堆中分配空间所需的时间远大于从栈中分配存储空间,所以JAVA速度比C 慢
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。

------解决方案--------------------
探讨

int 是基本类型,直接存数值
Integer是类,产生对象时用一个引用指向这个对象
Java把内存划分成两种:一种是栈内存,另一种是堆内存
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
而实际的对象是在存储堆内存中

int i = 5;//直接在栈中分配空间
Integer i = new Integr(5);//对象是在堆内存中,而……

------解决方案--------------------
我觉得吧,基本类型就是直接能用的,比如int,string等,包装类,就是经过你自己封装的吧,比如自己封装的对象。
------解决方案--------------------
顶2楼,简单清晰。
回4楼
基本类型即使包装了在方法传递的时候也是值传递吧
------解决方案--------------------
java 中方法用到的都是值传递,即使是引用,传递的也是原来引用的一个拷贝值

方法只能让参数引用中的属性改变,而不能改变参数的引用地址
------解决方案--------------------
探讨

包装类是引用传递的话,为什么输出还是1

Java code
public class test{
public static void change(Integer n){
n=100;
}
public static void main(String[] args) {
Integer i=new Integer(1);
……

------解决方案--------------------
四类八种都有包装类!
基本数据进栈,包装类进堆!
------解决方案--------------------
很难用现实中的例子比喻、~~~~(>_<)~~~~