如题:为什么不能合并?
合并有何坏处?
分开有何好处?

解决方案 »

  1.   

    int是基本数据类型,Integer是他的包装类包装类主要用在类型转换上例如 int转String,int转double等
      

  2.   

    Int是基本数据类型,Integer是Int的引用类型,定义集合的时候不能使用基本数据类型,需要使用对应的引用类型
      

  3.   

    一个是基本数据类型,另一个是“class",int,Integer不是同类的东西,一个是数据的类型,数据类型和class怎么能够等价
      

  4.   

    毫无疑问,合并肯定是可以的。c#就没有两个int类型。而且合并的好处是显而易见的。
    真正的问题是,为什么java不合并? 有什么不显而易见的好处吗?
      

  5.   

    一个基本类型,一个包装类...
    感觉为了兼容以前版本的代码是一个原因..
    c#就不能建个类里面有个int属性么...
    什么叫做毫无疑问合并肯定是可以的?
    那弱类型不是更方便....
      

  6.   

    java基本类型分配是在堆栈区的,使用基本类型的好处之一就是操作基本类型的速度较快。
    包装类则是java中一切都是对象的原则下的具体体现,方便于泛型、集合使用,也就是一切可以当做对象处理。
      

  7.   

    为什么要合并?照你这么说,js里面全是var类型,其他语言的数据类型也都合并了么?
      

  8.   

    java中一切皆对象嘛,基本数据类型却不是对象,所有就有了包装类。
    通过Java的包装类,基本数据类型的变量或者值能包装成包装类的实例来使用。比如有个方法需要传进去Object类型的参数,实际需要的是1,2,3这样的值,这个时候就可以用将比如int转换成Integer。
      

  9.   

    c#当中不管是int还是Int32都被解析为一种,并且是结构体,是一种值类型,而结构体可以有方法,而java中没有结构体的概念,因此定义int是基本类型,是存储在栈中的,而Int是引用类型,是对int的包装,目的肯定是添加一些方法,存储在堆中的,面对不同场景,选择不同
      

  10.   

    c#当中不管是int还是Int32都被解析为一种,并且是结构体,是一种值类型,而结构体可以有方法,而java中没有结构体的概念,因此定义int是基本类型,是存储在栈中的,而Int是引用类型,是对int的包装,目的肯定是添加一些方法,存储在堆中的,面对不同场景,选择不同
    你说的很好。
    问你个问题, 如果你是一个语言的设计者,设计一个强类型面向对象的语言,对于整数,你是设计成一个int类型,还是两个int类型?
      

  11.   

    为什么要有Integer,这个没什么好说的,java就是面向对象语言,
    至于为什么保留int,因为性能,
    Integer 也是Object , 也要垃圾回收,
    基本类型不需要垃圾回收。
      

  12.   

    int不需要实例化,不用担心空指针异常,integer的话必须赋值,所以也就必须人为赋值了
      

  13.   

    拿byte来说,我读一个文件,读到内存中一一大堆一大堆的byte,你说这是用Byte好还是用byte好?byte没Byte类这么多属性和方法,可以节省很多空间
      

  14.   

    我觉得楼主应该好好去研究Java基础,看看类型应用场景、区别及运行机制,就知道Java为什么要这么做了。基础也是一门学问。。
      

  15.   

    Byte类的属性方法是不占用每个实例的空间的。Byte类的对象只是多了一个类型对象指针而已。
      

  16.   

    为什么c#只有一个int类?
      

  17.   

    Java的设计都是最优的吗?没有改进的余地了吗?
      

  18.   

    感觉应该是Java出现的比较早,当初为了兼容汇编语言,可以直接存储数据到寄存器之类的。这种读取和定义确实快很多。而C#是后面才出现的语言,他们可能觉得这种优化(对象和简单数据类型)提升空间已经很低了。所以没必要用简单数据类型和对象去处理。
      

  19.   

    你去用jdk1.5之前的版本吧~没有包装类
    别纠结蛋疼了
      

  20.   

    留下int类型等其他基本类型,是历史的沿用,也为了和其他语言有很好的兼容,但基本类型不是对象,不是Object的子类,
    java是完全面相对象的语言,一切皆对象,所以为了将基本类型变成对象,java弄出了包装类的概念。
    如果完全把int等基本类型删除,在对数字进行操作的时候,都要写一大堆,变成各自包装类才能操作的话,那程序看过去就不简洁了,在jdk1.5之后,引进了自动拆装箱的概念,就可以直接用基本类型,省去了繁琐的拆装箱过程,对每一个程序员来说都是一大福音。
      

  21.   

    c#当中不管是int还是Int32都被解析为一种,并且是结构体,是一种值类型,而结构体可以有方法,而java中没有结构体的概念,因此定义int是基本类型,是存储在栈中的,而Int是引用类型,是对int的包装,目的肯定是添加一些方法,存储在堆中的,面对不同场景,选择不同
    你说的很好。
    问你个问题, 如果你是一个语言的设计者,设计一个强类型面向对象的语言,对于整数,你是设计成一个int类型,还是两个int类型?
    还是像C#那样设计成结构体比较好一些,毕竟操作整数不会面临太多的对象引用,值类型就足够了
      

  22.   

    因为Java是面向对象开发
      

  23.   

    int 是基本类型的;Integer是包装类,可以面向对象
      

  24.   

    int在栈中,Integer在堆中,这也是为了更纯净的面向对象
      

  25.   

    根据最后一个回复的时间来给帖子排序。这个简直太low了。 这很容易让10年前的未结帖子再次出现在头条。浪费大家时间。
      

  26.   


    int是值类型,Integer是int的封装类,是引用类型
      

  27.   

    java 集合类不接受基本数据类型
      

  28.   

    java的设计者有什么苦衷不让它接受基本类型?
      

  29.   

    java的设计者有什么苦衷不让它接受基本类型?
    你可以去问下 James Gosling