RT
不太明白 这两个概念
比如 int和 Integer  ,
int a, 和Integer a, 的区别是什么
在内存中 怎么分配内存的?
什么时候应该用 int 定义变量 ,什么时候用 Integer 定义
我新手,表达的可能不是很清楚, 希望大家棒棒我
谢谢

解决方案 »

  1.   

    Integer是包装类...
    int是基本数据类型...int n = 1;
    Integer m = new Integer(1);Integer 类在对象中包装了一个基本类型 int 的值对象是在heap里创建,引用m指向该对象...变量直接存储在stack中...基本类型通常用于运算...至于什么时候用到包装类...应该是使用容器的时候...
      

  2.   

    谢谢2楼.....
    我的确是字啊 HashSet 那里遇到一个 Integer 所以才这么一问
      

  3.   

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

    int i = 5;//直接在栈中分配空间
    Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中
    在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理.因为在堆中分配空间所需的时间远大于从栈中分配存储空间,所以JAVA速度比C++慢(C++是在栈在分配空间)至于什么时候用基本类型什么时候用外覆类(Integer等)???
    能用基本类型的就用基本类型,用不了才用外覆类
    如:当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。以上为我的一点理解
      

  4.   

    简单的说Integer是包装类,int是基本数据类型;
    Integer创建的对象是存储在堆内存的;
    而int定义的数据是存储在栈内存的。