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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘一阳 中级黑马   /  2014-7-17 19:15  /  1800 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static是优先于对象存在,在内存中怎么表现的
class Person
{
       
          static   int a;
          static int b;
        public Person(int a,int b)
        {
                this.a=a;
                this.b=b;
        }
        public Person(int b)
        {
                this.b=b;
        }
       
        public void show()
        {
                System.out.println(a+","+b);
        }
               
}
class question
{
        public static void main(String[] args)
        {
                Person s=new Person(1,2);
                s.show();//1/2
                s.b=4;
                s.show();//1/4
                Person s2=new Person(2,5);
                s.show();//2/5
                s2.show();//2/5
       


}
S.show() 为啥等于(2,5)

2 个回复

倒序浏览
视频里面说static存在于方法区,而对象存在于堆内存中。被static修饰的变量属于类级变量(类变量)。
回复 使用道具 举报
这里的a和b是静态的变量,是所以对象共享的属性,第二次赋值完后a和b就是2和5,以后如果不重新赋值,他就一直是2和5。详情晚上私聊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马