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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王琪 中级黑马   /  2013-12-17 20:50  /  1042 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王琪 于 2013-12-22 01:54 编辑

class deom{
    static int a=90;
}
class java {
  demo a1=new demo();
  demo a2=new demo();
   demo a3=new demo();
}
它们的变量是共享的?static就行吗?不还产生新的对象吗?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
被static修饰的变量,叫静态变量或类变量。对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
静态的特点:       A:随着类的加载而加载         B:优先于对象存在          C:被类的所有对象共享           D:可以通过类名调用

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
为什么先于对象存在?常量池与静态有关系吗?关于jvm拷贝new String ("nihao"); new String ("nihao");他们共用一个"nihao"常量?老师说String类特别?
回复 使用道具 举报
变量是存放在栈内存中的,独一份,后面new出来的a1 a2 a3存放在堆内存中,三个对象的引用地址不一样,但里面的a的值一样
回复 使用道具 举报
哦...明白了谢谢你..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马