参考:http://blog.sina.com.cn/s/blog_6b8b431d0100y8s0.html

int a = 1;
Integer b = 1;
Integer c = new Integer(1);
Integer d = Integer.valueOf(1);   //Integer.valueOf(int i) 源码上是 进行范围判断后 采用 new Integer(i)方法
System.out.println(a==b);     // true
System.out.println(a==c);     // true
System.out.println(a==d);     // true
System.out.println(b == c);   // false
System.out.println(b == d);   // true
System.out.println(c == d);   // false   
如果
Integer e = c;
System.out.println(e==c);   //  true 所指对象与c一致;

System.out.println(c.equals(b));  // true 因为值相等  

 

当和包装类对比的对象是其对应的基本类型时,包装类会自动拆箱成基本数据类型与之对比

java 函数形参:

参考:http://blog.csdn.net/tianlincao/article/details/6875593

第一:java方法基本数据类型是传值,对象类型传引用,这是千真万确的。  不会修改基本数据类型本身

第二:当参数是对象时,无论方法体内进行了何种操作,都不会改变实参对象的引用。

第三:当参数是对象时,只有在方法内部改变了对象的内容时,才会改变实参对象内容。

个人认为: java中形参都是传递的复制对象,形参为基本数据类型时,传递的是复本的值。

                形参为对象时,传递的是该引用的复本,你只能修改引用所指向对象(类似C/C++里面指针的思考),但是不能修改这个引用(或参数本身)

 

另外,如果形参中的对象没有初始化,即只是一个对象引用没有指向对象,则会报错。

         在函数中将参数对象置为null,对原对象无影响   ps:传递的是引用的复本

 

参考:http://zhidao.baidu.com/question/137268222.html 未被采纳的那条回答

       方法中的局部变量,在方法结束后被回收,但是如果在方法中被外部变量引用,则方法结束后,仍旧会存活

posted on 2013-03-22 18:10  nkxyf  阅读(2054)  评论(0编辑  收藏  举报