static是什么意思:分场景直接套用
static是什么意思,分为英文普通词义与编程关键字两层含义;普通词义为静止不变、静电,编程场景下C语言用来锁定变量生命周期与文件访问权限,Java用来把成员绑定到类而非对象,无对象实例也能直接调用,C语言不能用static修饰函数以外的代码块,Java支持静态代码块,跨语言混用容易出现内存越界或者访问失败的问题。
static普通词义
形容词含义:静止的、长期不发生变动的,反义词为dynamic(动态);名词含义包含静电、无线电静电杂音。
静态网页就是static网页,页面内容固定,不会随访客操作实时变更。
static在C语言里的含义
static在C语言有两层作用,一是改变内存生命周期,二是限制作用域,二者可以分开使用。
函数内部的static局部变量,只会在程序第一次执行时初始化一次,函数执行结束后变量值不会被销毁,下次调用会保留上一次的结果,内存一直持续到程序结束。
全局变量与函数加上static后,作用域被锁定在当前.c源文件,其他代码文件无法调用该变量与函数,能够减少同名冲突问题。
static在Java里的含义
被static修饰的变量、方法、代码块都属于类本身,不属于任意一个实例对象,内存仅分配一份,所有对象共用同一份数据。
你可以直接用类名.静态成员完成调用,不需要new创建对象;静态方法不能直接调用实例变量与实例方法,缺少this对象引用。
| 使用场景 | C语言static | Javastatic |
|---|---|---|
| 修饰变量 | 延长生命周期,或限制文件访问范围 | 成为类变量,全实例共享同一份内存 |
| 修饰函数/方法 | 仅当前源文件可调用 | 变成静态方法,支持类名直接调用 |
| 代码块支持 | 不支持静态代码块 | 支持静态代码块,类加载时自动执行 |
static使用边界限制
Java里static关键字不能用来修饰局部变量,只可以作用在类成员层级;C语言不允许在函数内部使用static限制访问范围,仅能修改存储周期。
大量滥用静态变量会长期占用堆内存,容易造成内存占用偏高,适合存放全局配置,不适合存储频繁创建销毁的临时数据。

想要了解更多关于static是什么意思的文章欢迎访问:百科