这里有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是个很重要的类,需要好好去理解。。。。
我花了很长时间去理解这个类,但是我还是不能完全肯定上面的解说是正确的。。。
希望下面的高手点评点评。。。