static变量有啥作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static变量有啥作用相关的知识,希望对你有一定的参考价值。

C语言中的static变量,可称为静态本地变量。一般来说,一个函数内部定义的变量的作用域和生存周期只限于这个函数。但是如果加了static在它前面,他的生存周期就会变大。也就是说离开这个函数后,这个静态变量不会被回收,会一直存在,保持着上一次的值,这点性质类似于全局变量。但是与全局变量不同的是,静态本地变量的作用域还是仅限于该函数内。希望能够对你有所帮助! 参考技术A static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。

static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。

java中的static和protected有啥区别?

【中文标题】java中的static和protected有啥区别?【英文标题】:What is the difference between static and protected in java?java中的static和protected有什么区别? 【发布时间】:2020-06-12 02:16:10 【问题描述】:

您好,我目前正在学习 Java 编程考试,我想了解静态方法和受保护方法之间的区别。在此先感谢

【问题讨论】:

发布问题前请使用谷歌搜索或***搜索。 【参考方案1】:

静态类和受保护类可以共存于一个变量,所以它们是非常不同的东西。如果您对面向对象编程没有很好的掌握,我强烈建议您在 YouTube 上查找教程,因为有一些非常好的教程! :)

静态变量 是属于 的变量,而不是类创建的每个单独的对象。这意味着,如果变量发生了变化,那么一切都会发生变化。

受保护的变量 是只能对其子类访问的变量。子类将拥有该变量,但没有其他类可以访问它。如果您知道公共变量和私有变量之间的区别,protected 有点像中间立场。

这是一个教程系列,我建议您了解更多信息。 https://www.youtube.com/playlist?list=PLAF3anQEEkzQPQv3FAhIuSWrepTayQJpL

【讨论】:

【参考方案2】:

这两个是不同的概念。

static defines whether a field or method belongs to the class or its instances.

protected influences the visibility of a field or method。当字段或方法设置为protected 可见性时,只有继承自该类的类才能访问该字段或方法。

请注意,这两个关键字是正交的:一个字段或方法可以同时用staticprotected 修饰。

【讨论】:

【参考方案3】:

既然您似乎是 java 语言的新手,简而言之:

protected:访问修饰符(成员变量+方法)。你可以在网上找到一大堆解释。

静态:非访问修饰符(块、变量、方法、嵌套类)

您可能需要检查 SIB/IIB(静态和实例初始化块以获得清晰的静态概念)

【讨论】:

是的,我对 java 还是很陌生,谢谢你的信息 :)

以上是关于static变量有啥作用的主要内容,如果未能解决你的问题,请参考以下文章

JAVA语言中,被static关键字修饰的成员变量和类变量有啥区别?

Clojure 中的 "^:static" 有啥作用?

C语言这两道题加了static跟没加的有什么区别?

静态存储变量STATIC有啥用举个例吧,好像和全局变量还有些联系啊

在c语言中给变量赋初值有啥作用

static关键字的作用