参考: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 未被采纳的那条回答
方法中的局部变量,在方法结束后被回收,但是如果在方法中被外部变量引用,则方法结束后,仍旧会存活