这里有5个值 ae ad ac ab aa
假设地址分别为 01 02 03 04 05
args[0]~~[4] 是String类型的引用,这5个args分别有自己的地址,这个地址里面存放的是上
面5个对象的地址值的副本,也就是说这些引用指向对象.排序前args[0]存放01,args[1]
存放02,args[2]存放03,args[3]存放04,args[4]存放05,开始排序。。。
for (i=0;i<args.length-1;i++) {
for (j=i+1;j<args.length;j++) {
if ( (args[i].compareTo(args[j]))>0 ) {
temp=args[i];
args[i]=args[j]; 注意这里是把地址的值赋给左边,例如args[5]和args[4]比较后,
args[j]=temp; 发现args[3]大于args[4],于是把交换数组中的地址值,这时
} args[3]里面保存的是05(原来是04),所指向的对象是aa,args[4]里面
} 保存的 是04,所指向的对象是ab,于是交换完成,其他同理
}
String是个很重要的类,需要好好去理解。。。。
我花了很长时间去理解这个类,但是我还是不能完全肯定上面的解说是正确的。。。
希望下面的高手点评点评。。。