你想问什么? Integer i =new Integer(5);
        Integer j=new Integer(0);
        j=i;
        i++;
i = 5  ; j = 0 ;j=i j=i=5 ;
i++ ;   i = 6 ;

解决方案 »

  1.   


    public static void main(String[] args) {
            // TODO Auto-generated method stub
            Integer i =new Integer(5); //i=5;
            Integer j=new Integer(0); //j=0;
            j=i; //j=5;
            i++; //i=5+1;
            
            String str1 = new String("str1"); //str1 = "str1";
            //String str2 = new String("str2");
            String str2 = str1; //str2 = "str1";
            str1 = "changed"; //str1 = "changed";
            
            Date date = new Date(); //date = "2010-01-20 14:55:01";after simpledateformate.formate(date)
            Date date2 = date; //date2 = "2010-01-20 14:55:01";after simpledateformate.formate(date)
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Long dateL = (date.getTime() / 1000) - 60 * 60;
            date.setTime(dateL * 1000); //now date and date2 both changed becaused the value of them referenced both changed;
            
            //String stateTime = dateFormat.format(date);        System.out.println("date:"+date+"\ndate2:"+date2+"\ni:"+i+"\nj:"+j+"\nstr1:"+str1+"\nstr2:"+str2);
    }
      

  2.   

    int 是基本类型,直接存数值
    integer是对象,用一个引用指向这个对象
      

  3.   

    JDK 1.5 之后,就是这样!
      

  4.   

    因为在项目的同一个类里用了引用传递,一个是string一个data,一个变了一个没变.
    所有来补下基础.哎,薄弱了
      

  5.   

    结果:date:Wed Jan 20 13:54:04 CST 2010  date2:Wed Jan 20 13:54:04 CST 2010 i:6 j:5 str1:changed str2:str1
    解释:date:星期三 一月20号 13点54分04秒 美国中部标准时间 2010年
    剩下的就是传值问题,比如程序里的str1,str2,是先创建的str1并直接赋值为"str1",再将str1的值付给str2,最后str1再次赋值为changed
      

  6.   

    看下debug的结果就明白了,虽然Integer 是对象但是还是当做int来放的(说的有些不严谨)
    结果加上了  Person p1 = new Person();
            p1.setName("p1Name");
            Person p2 = p1; 来比较P1中存的是:  Person@1995d80而Integer i 存的是5 String 类似