1700440563
编写高质量代码:改善Java程序的151个建议 建议28:优先使用整型池
1700440564
1700440565
上一建议我们解释了包装对象的比较问题,本建议将继续深入讨论相关问题,首先看如下代码:
1700440566
1700440567
public static void main(String[]args){
1700440568
1700440569
Scanner input=new Scanner(System.in);
1700440570
1700440571
while(input.hasNextInt()){
1700440572
1700440573
int ii=input.nextInt();
1700440574
1700440575
System.out.println(”\n====”+ii+“的相等判断======”);
1700440576
1700440577
//两个通过new产生的Integer对象
1700440578
1700440579
Integer i=new Integer(ii);
1700440580
1700440581
Integer j=new Integer(ii);
1700440582
1700440583
System.out.println(“new产生的对象:”+(i==j));
1700440584
1700440585
//基本类型转为包装类型后比较
1700440586
1700440587
i=ii;
1700440588
1700440589
j=ii;
1700440590
1700440591
System.out.println(“基本类型转换的对象:”+(i==j));
1700440592
1700440593
//通过静态方法生成一个实例
1700440594
1700440595
i=Integer.valueOf(ii);
1700440596
1700440597
j=Integer.valueOf(ii);
1700440598
1700440599
System.out.println(“valueOf产生的对象:”+(i==j));
1700440600
1700440601
}
1700440602
1700440603
}
1700440604
1700440605
输入多个数字,然后按照3种不同的方式产生Integer对象,判断其是否相等,注意这里使用了“==”,这说明判断的不是同一个对象。我们输入三个数字127、128、555,结果如下:
1700440606
1700440607
====127的相等判断======
1700440608
1700440609
new产生的对象:false
1700440610
1700440611
基本类型转换的对象:true
[
上一页 ]
[ :1.700440562e+09 ]
[
下一页 ]