在C语言中的static使用可以分为以下三种:
1, 静态局部变量
2, 静态全局变量
3, 静态函数
其中1只在函数内使用,而且初始值只对第一次调用该函数时有效,以后的使用过程中该变量值都是上次调用后的值
2只在模块内有效
3 静态函数也是只在本模块或者是本文件内有效
1, 和2都存在静态存储区,如果没有初始化值,那么默认出示化值为0
Java中static的使用:
1, 修饰类中的静态变量
2, 修饰类中的静态方法
3, 修饰静态类,通常为静态私有类,如用于加密机制的类,只用一次,不需要实例化,也不需要外部类或方法调用
类中静态变量在程序中只有一份拷贝,而普通变量在类的每个实例中都有一份拷贝
静态方法中只能调用静态变量或其他静态方法,而不能调用非静态方法;因为静态方法只针对类,类实例存在不存在都没关系,而普通变量和普通方法是依赖于类实例的,所以静态方法不能引用普通变量和普通函数
反之,普通方法里可以引用静态变量和静态方法。
静态方法和c中全局方法很类似,由于java中没有全局变量和全局函数这样的规则,但可以通过静态方法和静态函数实现类似的功能。