static的使用

1.数据共享:

成员变量和静态变量的区别:

(1)生命周期不同:成员变量随着对象的创建而被创建,随对象的被收回而消失。静态变量随着类的加载而被创建,随着类的销毁而消失

(2)调用方式不同:成员变量只能被对象调用,静态变量还可以被类直接调用。

(3)数据的存储位置不同:成员变量->堆内存的对象中,也叫对象的特有属性,静态变量->方法区的静态区,也叫对象的共享区。

2.修饰变量:

每个对象共有的属性可以用static修饰,被修饰的变量可以被所有的对象共享。调用的时候用类名直接调用。

3.修饰方法:

(1)静态方法只能访问静态成员,非静态方法也可以访问静态属性

(2)静态方法中不可以使用this和super关键字

4.修饰代码块:静态代码块

随着类的加载而运行,而且只运行一次

作用:用于类的初始化

当类中的变量全是静态变量的时候,才使用静态代码块去初始化变量。

5.静态内部类:

1.做测试使用,不用在每个类中定义主方法,减少代码的重复

6.静态导包

 静态导包就是java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。

一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个.* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

好处:这种方法的好处就是可以简化一些操作,例如打印操作System.out.println(…);就可以将其写入一个静态方

法print(…),在使用时直接print(…)就可以了。但是这种方法建议在有很多重复调用的时候使用,如果仅有一到两次调用,不如直接写来的方便



`static`关键字在C语言中有多个作用,具体取决于它的使用位置。这里列举了几个常见的`static`用法及其示例: 1. **静态变量(全局或局部)**: - 全局静态变量(外部链接存储类): ``` static int globalVar; // 只有一份拷贝,生命周期从程序开始到结束 ``` - 局部静态变量(内部链接存储类): ``` void func() { static int localVar; // 每次函数调用都会创建一个新的局部静态变量,但只初始化一次 } ``` 2. **静态函数**: - 它们属于特定的类,全局静态函数不能直接访问非静态成员: ``` class MyClass { static void staticFunction(); // 可被类的所有实例共享 }; ``` 3. **静态数组**: - 全局静态数组: ``` static int arr[10]; // 全局范围内的静态数组,所有源文件可见 ``` - 函数内静态数组: ``` void function() { static int localArr[5]; // 在栈上分配空间,每次进入函数时初始化 } ``` 4. **静态局部对象**: 这种情况下,静态局部变量在每次函数调用时会被自动初始化,但其值会在函数退出后保留: ``` void function() { static int result = someComputation(); } ``` 5. **静态成员函数/数据成员**: 对于类,`static`用于表示静态成员,它们不属于特定对象,而是属于整个类的实例: ``` class MyClass { static void staticMethod(); // 类级别的方法,不需要创建对象就能访问 static int staticData; }; ``` 在使用`static`时要考虑到内存管理、作用域以及对性能的影响。了解这些用法后,请告诉我您感兴趣的具体方面,或者有其他疑问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值