A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 say_NO! 于 2013-8-26 21:52 编辑

现在学的东西多了,用到静态和非静态的时候脑袋反应不过来了,究竟怎么回事?静态是不是不能变?

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
1·、static应用范围:可用于内部类、方法和变量。
2、标记一个方法为static,意味着这个方法,被所在类的所有实例公用,在类装载时被首先执行,执行一次即被所有改类的实例共享,同时意味着:
A、static方法内部不能引用非static变量。
B、static方法不能被子类重写为非static方法。
C、父类的非static方法不能被子类重写为static方法。
D、static代码块可以用static {}来完成,在类被第一次装载时执行初始化,先于静态方法和其他方法的执行。
3、标记一个变量为static,则该变量在内存中有不变的位置,相当于全局变量,所有类的实例都访问同一个存储变量区域。对其修改对于所有类的实例来说都是可见和一致的。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
加了 static 就是类变量或类方法,类加载的时候就加载到了栈内存,并且拥有唯一的地址,多以不用创建对象可以直接被类名调用,静态也表示是共有的属性,假设大家都是黑马的学生 黑马这个名字对大家来说就是个静态,黑马如果改成白马,那么大家就都是白马的学生了,就是大家共享的 ,如果改变 大家都跟着改变,   非静态的就相当于是对象的属性了 必须建立对象才能调用

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
静态就相当于共享数据,当你想要把这些数据让其他都可以用的话,你就把他标注为静态,举个例子:比如我们都是中国国籍的,
回复 使用道具 举报
静态就相当于共享数据,当你想要把这些数据让其他都可以用的话,你就把他标注为静态,举个例子:比如我们都是中国国籍的,你就可以把china这个变量设为静态的,你自己也有名字,年龄,把这些变量设为非静态的,因为你的名字和别人的不一样,实际上static就相当于共享数据
回复 使用道具 举报
static 修饰的变量或者是方法是和类一起加载的,也也会随着类的消失而消失,是通过类名直接调用的,一般情况下,是共享的信息定义为静态的,但是他是可以改变的,但是如果是用final修饰的是基本基本类型的话,是不可以改变的,如果是final修饰的引用类型,其内容是可以改变的,(可以查看final修饰成员知识点)

非static 修饰成员变量,是和类的对象一起加载和生成的,也会随着对象的消失而消失,调用的话,也是用对象来调用,它是专属于表示对象的特征的,
希望对你有帮助!
回复 使用道具 举报
静态随着类的加载而加载,非静态成员变量在new
回复 使用道具 举报
べPNヤ 发表于 2013-8-26 18:55
加了 static 就是类变量或类方法,类加载的时候就加载到了栈内存,并且拥有唯一的地址,多以不用创建对象可 ...

谢谢o,有那么点意思了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马