昨天遇到个需要改变integer值的问题,找API发现竟然没有相应的函数
今天随便试了下,才发现可以这样改变,呵呵
看代码:
public class IntegerTest {
public static void change(Integer i)
{
i = 8;
} /**
* @param args
*/
public static void main(String[] args) {
Integer a = new Integer(9);
a ++;
System.out.println(a);
change(a);
System.out.println(a);
}}
今天随便试了下,才发现可以这样改变,呵呵
看代码:
public class IntegerTest {
public static void change(Integer i)
{
i = 8;
} /**
* @param args
*/
public static void main(String[] args) {
Integer a = new Integer(9);
a ++;
System.out.println(a);
change(a);
System.out.println(a);
}}
Integer a = new Integer(999);
a ++;
System.out.println(a);
change(a);
System.out.println(a);
}
结果再看看
明显没有改变Integer的值啊
Integer a = new Integer(9);
//a++;
a = a+1;
System.out.println(a);
change(a);
System.out.println(a);
}
public static void change(Integer a){
a = 8;
}
1.
Interger a=new Interger(3);
Interger b=new Interger(3);
System.out.println(a.equals(b))
输出结果为true
2.
Interger a=new Interger(3)
Interger b=new Interger(3);
System.out.println(a==b);
输出结果为false
3.
Interger a=3;
Interger b=3;
System.out.println(a==b);
输出结果为:true;
4.
Interger a=300;
Interger b=300;
System.out.println(a==b);
输出结果为:false
Interger 定义的变量范围为0-127,如果超出了范围值为false
这个基本类型的支持类只是重写过了操作符而已
他改变的只是类内部的值而已还有你没搞清楚引用传递和值传递的区别