关于方法前加 static 的精确定义
请问一下,java中,把static说成“在编译时就确定的东西”是不是很准确?
因为我觉得这个说法没多大实际意义,首先,不知道static到底确定了什么,是方法字段的存在性,还是不变性?
其次,不用static修饰的方法字段难道就没有被“确定”下来?
我觉得把“在编译时就确定的东西”改成“在类初始化时就确定的东西”是不是会更准确一点?
理由如下:
1、类在初始化后各种static修饰的字段方法才有其物理内存,而没有用static修饰的方法则没有物理内存(也就是指还没有被确定下来)
2、我觉得在编译时就能被确定下来的东西应该是指:至少用final修饰的字段,且该字段应该为直接量,
这样在编译时其它类引用的这个字段就直接用直接量表示了
以上只是我个人的一些观点,只是觉得自己说得还有几分道理,想让大家帮我找找碴,以便能改变自己的错误观念