今天在看 被人代码的时候,发现有使用到 String的intern()方法 。。。 懵逼了,,,我开发这么久,还是第一次看到有人用这个 方法,我还以为 这个方法不存在呢!! 查看了 api 解析也是 有点不太明白。 百度了一下,
证明了intern()节省内存的结论。 细心的同学会发现使用了intern()方法后程序运行时间有所增加。这是因为程序中每次都是用了new String后又进行intern()操作的耗时时间,但是不使用intern()占用内存空间导致GC的时间是要远远大于这点时间的。
总之就是 String的intern()方法 就是 为了节省 内存空间的。。。而现在一般的 程序电脑内存和资源很足,几乎不会用到这个方法的。。。
可是 确实也有 用到它的地方,,比如 同步锁 方法块里面:
String p = "xxx"; synchronized(p.intern()) { //同步方法。。。}
好吧!为了更好的控制同步执行, 使用了String的intern()方法 。 也算涨姿势了!!!