33、把一个基本数据类型转为字符串,基本数据类型.toString()是快的方式、String.valueOf(数据)次之、数据+”"慢
  把一个基本数据类型转为一般有三种方式,我有一个Integer型数据i,可以使用i.toString()、String.valueOf(i)、i+”"三种方式,三种方式的效率如何,看一个测试:
  public static void main(String[] args)
  {
  int loopTime = 50000;
  Integer i = 0; long startTime = System.currentTimeMillis(); for (int j = 0; j < loopTime; j++)
  {
  String str = String.valueOf(i);
  }
  System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");
  startTime = System.currentTimeMillis(); for (int j = 0; j < loopTime; j++)
  {
  String str = i.toString();
  }
  System.out.println("Integer.toString():" + (System.currentTimeMillis() - startTime) + "ms");
  startTime = System.currentTimeMillis(); for (int j = 0; j < loopTime; j++)
  {
  String str = i + "";
  }
  System.out.println("i + "":" + (System.currentTimeMillis() - startTime) + "ms");
  }
  运行结果为:
  String.valueOf():11ms Integer.toString():5ms i + "":25ms
  所以以后遇到把一个基本数据类型转为String的时候,优先考虑使用toString()方法。至于为什么,很简单:
  1、String.valueOf()方法底层调用了Integer.toString()方法,但是会在调用前做空判断
  2、Integer.toString()方法不说了,直接调用了
  3、i + “”底层使用了StringBuilder实现,先用append方法拼接,再用toString()方法获取字符串
  三者对比下来,明显是2快、1次之、3慢
  34、使用有效率的方式去遍历Map
  遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的、效率高的方式是:
  public static void main(String[] args)
  {
  HashMap<String, String> hm = new HashMap<String, String>();
  hm.put("111", "222");
  Set<Map.Entry<String, String>> entrySet = hm.entrySet();
  Iterator<Map.Entry<String, String>> iter = entrySet.iterator(); while (iter.hasNext())
  {
  Map.Entry<String, String> entry = iter.next();
  System.out.println(entry.getKey() + " " + entry.getValue());
  }
  }
  如果你只是想遍历一下这个Map的key值,那用”Set<String> keySet = hm.keySet();”会比较合适一些
  35、对资源的close()建议分开操作
  意思是,比如我有这么一段代码:
  try{
  XXX.close();
  YYY.close();
  }catch (Exception e)
  {
  ...
  }
  建议修改为:
  try{ XXX.close(); }catch (Exception e) { ... }try{ YYY.close(); }catch (Exception e) { ... }
  虽然有些麻烦,却能避免资源泄露。我们想,如果没有修改过的代码,万一XXX.close()抛异常了,那么进入了cath块中了,YYY.close()不会执行,YYY这块资源不会回收了,一直占用着,这样的代码一多,是可能引起资源句柄泄露的。而改为下面的写法之后,保证了无论如何XXX和YYY都会被close掉。