1. 因为 String类是final 修饰的char[] 数组; 而 final 涉及到java内存管理的final域,final域拥有内存屏障,可以保证对java指令重排序的限制。保证多线程的安全。 具体请看:老马啸西风 的 java 内存模型 final 关键字-08 文章