String s1 = new String();
String s2 = "";
int x = 99;
=======================================
为什么
s1 = s1 + x;会报错而 
s2 = s2 + x;就不会报错?如果写成s1 = "" + s1 + x;就不会报错了有人能解释一下么?============================================
============================================
第二个问题
Set<String> st = new TreeSet<String>();
String result = “”;
blablabla//假设现在随机将若干string加入st中
for (String each : st){
   if(满足某些条件,假设至少有一个满足){
       result = each;
   }
}
S.O.P(result);//(控制台输出result)问题是result会返回一组乱码,也就是说,"result = each;"只是赋了个索引,并没有把实际的数据复制给result。我的解决方法是:把foreach loop拿出来单独写一个方法。请问,除此之外,有没有别的方法可以是result接收到each的真实值。谢谢。