Java - 关于性能和内存使用,为什么最好在静态字段中使用字符串而不是每次需要时都声明它?

Java - Regarding performance and memory use, why it's better to use a string into a static field instead of declaring it every time it's needed?

为什么最好在静态字段中使用字符串而不是每次需要时都声明它?

// Old scenario
Person p = new Person("Charles", "Xavier");
Person p = new Person("Charles", "Doe");
Person p = new Person("Charles", "Johnson");

// New scenario
private static String name = "Charles"

Person p = new Person(name, "Xavier");
Person p = new Person(name, "Doe");
Person p = new Person(name, "Johnson");

我有一个很好的做法,就是用静态字段替换 "Charles" 等相同的字符串,但是关于内存使用和性能,这样更好吗?

对于JVM来说,两者是一样的,都进入了String pool。

但是,从代码质量的角度来看,最好将其定义为常量,这样您可以在以后需要时查看和更改一个点。