黑马程序员技术交流社区

标题: static 关键怎么用。有什么限制。 [打印本页]

作者: See_the_sun    时间: 2014-6-16 23:47
标题: static 关键怎么用。有什么限制。
本帖最后由 See_the_sun 于 2014-6-20 21:14 编辑

static 关键怎么用。有什么限制。最好别纯文字的  格式类似于  一行代码//注解  。如果没办法,那纯文字也行
作者: 墓____夜    时间: 2014-6-17 08:54
static 可以修饰成员变量 成员方法  还可以构造静态代码块。
static 不可以修饰和abstract 修饰的方法,static修饰的方法 可以被类名.方法名 直接调用, 二者共存的话,调用抽象方法没有意义

作者: Crystal静新    时间: 2014-6-17 09:41
static 定义静态的东东,基本语法规范,你楼上说了。
什么时候用,那你就要深入理解它的优势和缺陷。
优点就是无须实例化对象,加载即可用。
缺陷肯定就是占资源了,毕竟它一加载后就始终存在。不像其它的,要你自己实例化后才存在。
作者: 云的牧羊人    时间: 2014-6-17 10:17
默认的都是动态,句柄不指向它时就成了废弃的量,等待垃圾回收器回收,而static修饰东西会一直存在于内存中,除非static所在的这个类被程序注销从内存清除了,否则一直占据内存。前者可以节约资源占有,但是效率会低点,适用于需要频繁变更的量,后者占据资源多,不过效率高点,适用于很长一段时间不用变更的量
作者: pengyu    时间: 2014-6-17 10:25
上面说的很对啊,学习下了
作者: See_the_sun    时间: 2014-6-18 20:57
墓____夜 发表于 2014-6-17 08:54
static 可以修饰成员变量 成员方法  还可以构造静态代码块。
static 不可以修饰和abstract 修饰的方法,sta ...

谢谢。还有个问题。为什么static的方法只能调用static 的方法。
作者: 墓____夜    时间: 2014-6-18 23:36
See_the_sun 发表于 2014-6-18 20:57
谢谢。还有个问题。为什么static的方法只能调用static 的方法。

因为static 是静态。 静态是随着类的加载而加载。
如果调用普通方法,在类加载时 普通方法是没有加载的,也就是说有静态的时候是没有普通方法的。你调用一个空的方法 跟定不行。
故 静态调用普通方法 是不行的。
作者: See_the_sun    时间: 2014-6-19 20:43
墓____夜 发表于 2014-6-18 23:36
因为static 是静态。 静态是随着类的加载而加载。
如果调用普通方法,在类加载时 普通方法是没有加载的, ...

谢谢,我明白了。。。。




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