黑马程序员技术交流社区

标题: Static 和Final有什么区别? [打印本页]

作者: 闫玉泉    时间: 2012-2-27 15:05
标题: Static 和Final有什么区别?
本帖最后由 闫玉泉 于 2012-2-27 17:55 编辑

Static 和Final有什么区别?
作者: Treasureと情    时间: 2012-2-27 15:15
static是静态修饰关键字,可以修饰变量和程序块以及类方法:当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存;修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主要用于系统初始化;当修饰一个类方法时候你就可以直接通过类来调用而不需要新建对象。
final可以修饰变量、方法及类,当你定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值;当你定义一个方法时,改方法在子类中将不能被重写;当你修饰一个类时,该类不能被继承。
作者: 刘泰    时间: 2012-2-27 15:16
调用static中的方法和属性,可以直接用类名来调用,而不必使用任何的对象,Final是“终态的”,“不可改变的”,可以用来修饰累,属性,方法。final类,不能被继承,  final类不能被继承,没有子类,final类中的方法默认是final的。   final方法不能被子类的方法覆盖,但可以被继承。   final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final不能用于修饰构造方法。具体的可以查一下API




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2