2012-03-20 71 views
0

我总是在网上看到全局变量是坏的,我明白它们是坏的,因为每个函数都可以访问它们,并且如果应用程序中的每个函数都修改全局变量在大型应用程序中,在代码中的特定点处跟踪此变量的状态可能变得非常困难。全局变量javascript,java,php,all languages

但我的问题是,如果我有一个变量,每个函数都需要使用反正,是不是更好地宣布它是全球?而不必每次都在每个函数内实例化我的变量?

另外,什么时候应该使用全局变量而不是局部变量?

+0

GV的主要问题是一旦您使用或不使用天气,它会不必要地保留内存。 – 2012-03-20 12:23:05

+0

如果全局变量适合您的情况,请使用它们。如果你喜欢,你可以使它们成为“命名空间”对象的属性,但有些更喜欢这种方法,因为它方便而整洁,但全局(内存使用,性能等)本质上没有任何错误。如果与不同的团队或贡献者一起开展大型开发,他们可能难以管理。 – RobG 2012-03-20 12:58:19

回答

0

每个变量都代表一些真实或可想象的实体。如果您确定该实体是唯一的,那么可以为它设置静态变量。例如,屏幕/键盘/鼠标设备用类型为java.awt.Toolkit的静态变量(可通过getter访问)表示。 但这种情况很少见。通常,程序员会考虑实体的单个实例,并为其声明一个静态变量,然后出现对另一个类似实体的需求,这会以费力重构结束。

0

这是关于代码运行时的内存使用情况。 在代码运行时,您总是尝试将更少的对象数量保存到内存中。对象的范围更小(方法范围),您的对象在内存中的活性会更少,因此内存利用率更高。所以需要保持变量的范围更小,因为它是必要的。 但是你的语句对于全局变量并不完全正确,因为在java中我们有访问修饰符(public,private,default等),并且如果任何全局变量(类变量)具有私有修饰符,那么它不能在类之外修改。