java关键字final、static,c关键字static总结

有人 习惯static final, 有人习惯final static,这只是个习惯而已。
然而java 中static final很容易滥用,一旦用错会给调试、bug fix带来大麻烦,很难找到问题所在。
本文关键字
java: static final
c :static extern

java final ---特点,保护对象,阻止改变
重要的地方放前面:
final 修饰的变量只能有效赋值一次(List,Map等容器类型除外),需要改变值的地方切记不要乱用。

final 意味终态,拒绝改变,可以修饰 类,方法,变量,参数(抽象的类,方法,变量除外,原因是与其宗旨违背)
final类不能被继承,也就么有子类;
final方法不能被覆盖,保护既有实现,提高效率
final变量只有一次赋值,
final参数保护其不被修改

java static ---特点,节省内存
重要的地方放前面:
static 修饰的变量和方法只有一个,独立于该类的任何对象(List,Map等容器类型除外),多个对象时注意留意static变量值
static方法,static变量,可以在类对象创建之前访问,无需引用任何对象。加上public 修饰就可以用类直接调用(不需要类对象)
static静态块 会在类加载时优先按顺序执行

C static --特点,限制访问权限
static 修饰全局变量,局部变量,方法

static方法限定作用域在本文件内,类似于java的private 方法
static全局变量只限制只在定义它的源文件内可以访问, 存储位置不变(.data段)
static局部变量存储位置改变(.data段),生命周期变长(等同于程序),值会记录(类似于java的static变量)

你可能感兴趣的:(java关键字final、static,c关键字static总结)