Integer对象类可以赋值给int代码如下
int j=Integer wi
此语句正确?????

解决方案 »

  1.   

    JDK 1.5以后的自动拆箱功能,上面语句等同于int j = wi.intValue();
      

  2.   

    嗯,正确,autoboxing and unboxing
      

  3.   


    int a=1;
    Integer bInteger=3;
    a=bInteger;
    System.out.println(a);
    可以的
      

  4.   

    主要jdk版本
    新版有许多新功能 可以上网搜搜
      

  5.   

    不是 int j = Integer.valueOf(wi); 么?
      

  6.   

    这是拆箱的过程,是jVM自动执行的e
      

  7.   

    java功能正在逐步增强。。期待中
      

  8.   

    jdk1.5的新特性:
    类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean
    J2se将自动装箱/拆箱引入了.
    自动装箱:每当需要上述类型的一种对象的时候,这种基本类型就自动的封装到
    与它相同类型的包装中.只需要将值赋给一个类型包装器的引用,Java就会自动创建一个
    对象.例如:Integer i = 2;
    自动拆箱:每当需要一种基本类型的值的时候,被装箱对象中的值就被自动的提取
    出来,没必要去调用xxxValue()方法.
    自动装箱和拆箱的功能实际上是编译器做的,在编译时期它依据您写的语法,决定是否进行.
    Integer i = 100; ==> Integer i = new Integer(100);
    但是在运行阶段,您必须了解Java的语义:
    Integer i = null;
    int j = i;
    这段代码,在编译阶段是合法的.
    但是在运行阶段会抛出NullPointerException异常.
    因为它相当于:
    Integer i = nul;
    int j = i.intValue();
    null表示i是没有任何参考对象的实体,不能调用intValue()方法.
      

  9.   


    我个人有个问题:
    Integer i=100;
    我打开class文件查看字节码后发现编译器调用了Integer.valueOf(int)方法来打包int,而并不是直接new一个Integer对象出来。
    虽然Integer.valueOf(int)方法最后返回的也是new Integer();但是还是有很大不同的,这个方法在-128—127之间建立了一个Integer cache[]数组用于重复使用-128—127范围内的Integer对象。所以我认为:
    Integer i = 100; ==> Integer i = new Integer(100);
    并不是直接new Integer(100)的。