首页 > 编程知识 正文

全局static和局部static,javaweb全局变量

时间:2023-05-04 02:00:47 阅读:132739 作者:2323

静态变量static,全局变量global

静态变量在java中也称为类变量,从名称中可以看出它属于类,而不是类的实例。 当静态存储在静态存储中、运行程序并将类的代码加载到内存中时,该关键字会为类的静态变量分配内存空间。 他之所以属于类(即没有实例对象),是因为他知道它是静态变量,静态变量的内存空间只有在程序结束后才能释放出占用的内存空间。 静态变量直接从类名访问。 java也可以通过对象名称访问。

有人将其分为全局静态变量、局部静态变量; 全局变量失去了“全局”的普遍含义,作用域仅限于此文件。 静态变量的声明应该出现在类中不是类的函数中。

全局变量关键字global也以静态存储方式存储在静态存储中。 全局变量只需在一个源文件中定义,即可应用于所有源文件。 当然,在不包含全局变量定义的其他源文件中,必须使用extern关键字再次声明全局变量。

全局变量和静态变量的区别:

全局变量在整个项目文件中有效; 静态全局变量仅在定义它的文件中有效。 静态局部变量仅在定义它的函数内有效。 但是,程序只分配一次内存,即使函数返回,该变量也不会消失。 局部变量在定义它的函数内有效,但在函数返回时无效。 在说明全局变量(外部变量)之前加上static,即可构成静态全局变量。 全局变量本身是静态存储方法,静态全局变量当然也是静态存储方法。 两者的保存方法都没有区别。 这种差异在于,非静态全局变量的范围是整个源程序,但如果一个源程序由多个源文件组成,则非静态全局变量对每个源文件都有效。 静态全局变量限制作用域。 这意味着它只在定义变量的源文件中有效,不能在同一源程序的其他源文件中使用。 静态全局变量的范围仅限于一个源文件中,并且仅对该源文件中的函数通用,从而可以防止其他源文件中发生错误。

也可以这样看:

a .如果全局变量只能在单个文件中访问,则可以将此变量更改为静态全局变量以降低模块之间的耦合度。

b .如果全局变量仅由单个函数访问,则可以将该变量更改为该函数的静态局部变量,以降低模块之间的耦合度。

在设计和使用访问动态全局变量、静态全局变量和静态局部变量的函数时,必须考虑重新输入问题:

d .如果需要可重新输入的函数,则必须避免在函数中使用静态变量。 这样的函数称为具有“内部内存”功能的函数。

e .如果函数必须使用static变量,例如:其中一个函数的返回值是指针类型,则返回值必须是static的本地变量的地址,而如果是auto类型,则作为错误的指针返回。

根据以上分析可知,将局部变量变更为静态变量后,变更其存储方法会变更生存期。 将全局变量更改为静态变量会改变范围,限制使用范围。 因此,静态这个说明符所起的作用因地点而异。 应该注意。

变量的六个作用:全局范围、文件范围、命名空间范围、类范围、本地范围和语句范围。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。