static的作用

1.  修饰局部变量:放在全局数据区的静态变量区,延长了局部变量的生命周期,直到程序运行结束以后才释放。 

2. 修饰全局变量:修饰的变量只可以在本文件中使用,不能在其他文件中访问,即使用extern也不可以。

3. 修饰函数:此函数只能在本文件中使用,不能在其他文件中使用。

### Java `static` 关键字的功能和用法 #### 类级别的成员定义 在Java中,`static`关键字用于声明类的静态成员(包括属性、方法、代码块和嵌套类),这些成员与类本身相关联而非具体的对象实例[^2]。 #### 静态属性 当使用`static`修饰符来定义字段时,则该字段成为静态字段。这意味着无论创建多少个此类的对象,都只存在一份这样的字段副本,并且可以通过类名直接访问它而无需先实例化任何对象。 ```java public class Example { public static int count = 0; public Example() { count++; } public static void showCount(){ System.out.println("Total objects created: " + count); } } ``` 在这个例子中,每当新创建了一个`Example`类型的对象时,都会使计数器增加;即使没有任何对象被创建也可以调用`showCount()`打印当前总数。 #### 静态方法 同样地,如果一个方法被标记为`static`,那么这个方法就属于整个类而不是某个特定的对象实例。因此可以在不创建类的具体实例的情况下通过类名称直接调用来执行此函数。 需要注意的是,在静态环境中无法直接引用非静态成员因为此时还没有具体化的对象去承载那些非静态的数据项或行为逻辑[^3]。 #### 静态初始化块 除了可以将变量和方法设为静态外,还可以编写一段特殊的代码片段——即静态初始器(static initializer),这段代码仅会在首次加载类到JVM时运行一次,通常用来完成一些必要的前期准备工作,比如读取配置文件等操作。 ```java class NetworkConfig{ private static String serverAddress; static { try { // 假定这里是从外部资源获取服务器地址的过程... serverAddress = fetchServerAddress(); } catch (Exception e){ throw new RuntimeException(e); } } } ``` 在此案例里展示了如何利用静态初始化块来进行某些一次性设置工作,确保每次程序启动都能正确获得所需的参数值。 #### 静态内部类 最后一点值得注意的就是支持定义所谓的“静态内部类”,这是一种特殊形式的嵌套类,其特点是不仅能够像普通顶级类那样独立于外围类之外单独编译,而且还能自由地持有对外围类私有部分的完全访问权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值