Java中的静态变量有什么意义?

时间:2017-10-14 07:39:27

标签: java

制作或不制作变量静态的意义是什么?为什么不能从静态方法访问非静态变量?

3 个答案:

答案 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垃圾收集器可以缓存(或重复数据删除)字符串,因此您不必过于担心。