制作或不制作变量静态的意义是什么?为什么不能从静态方法访问非静态变量?
答案 0 :(得分:1)
由于字符串始终相同,我应该将其设为静态
YES。具体来说就是这样:
public class A implements ActionListener {
public static final String MY_STRING = "This is a string"; // can be private also
@Override
public void actionPerformed(ActionEvent e){
System.out.println(MY_STRING);
}
}
感谢您的反馈意见,我看到汤姆评论的一个好点:
提取所有内容不是编程惯例 事情必须有意义,而不仅仅是“不会造成伤害 - 汤姆
我想澄清一下,这个答案仅针对OP的情况。然而,正如安迪前面提到的那样,它可能并不好:making the code harder to grok. If there is no "semantic" meaning to the value
。总之,这个答案可能不适合大多数类似的情况。
答案 1 :(得分:0)
如果它是静态的,它就不会被垃圾收集。此外,如果它是一个局部变量,它不应该被其他方法访问。
答案 2 :(得分:-2)
JVM垃圾收集器可以缓存(或重复数据删除)字符串,因此您不必过于担心。