我总是在网上看到全局变量是坏的,我知道它们很糟糕,因为每个函数都可以访问它们,如果应用程序中的每个函数都修改了全局变量,那么在大型应用程序中,它会变得很难以在代码中的特定点跟踪此变量的状态。
但我的问题是,如果我有一个变量,每个函数都需要使用,那么将它声明为全局是不是更好?而不是每次在每个函数内部都必须实例化我的变量?
此外,何时应该使用全局变量而不是局部变量?
答案 0 :(得分:0)
每个变量代表一些真实或可想象的实体。如果您确定该实体是唯一的,那么可以使用静态变量。例如,screen / keybord / mouse设备用java.awt.Toolkit类型的静态变量表示(可通过getter访问)。 但这种情况很少见。通常,程序员会想到实体的单个实例,并为它声明一个静态变量,然后就会出现对另一个类似实体的需求,最终会出现费力的重构。
答案 1 :(得分:0)
这是代码运行时的内存利用率。 在代码运行时,您总是尝试将较少数量的对象保留在内存中。具有较小范围(方法范围)的对象将在内存中占用较少的内存,从而获得良好的内存利用率。因此需要将变量保持为必要的范围。 但是你的全局变量语句并不完全正确,因为在java中我们有访问修饰符(public,private,default等),如果任何全局变量(类变量)都有私有修饰符,那么它就不能被类外部修改。