美文网首页
static内存方面...

static内存方面...

作者: 远o_O | 来源:发表于2017-05-26 19:11 被阅读8次

    Filed和Method

    • 被static修饰的成员变量和方法,存放在方法区,这在内存方面和普通的成员变量的不同表现在:
    • 1.对于成员变量,在堆中为对象开辟空间时,静态成员变量所在的空间,存放的是指向方法区的地址,而普通的是直接存放值or指向堆中的地址。(某老师说的,应该不对,根本和this不兼容
    • 2.对于方法,在堆中为对象开辟空间时,不会为静态方法开辟空间,但是会为普通方法开辟空间,存放指向方法区的地址(方法地址)。
    • 静态成员变量存放在方法区,同一个类的多个对象通过在堆区存放地址,来共享静态成员变量。
    • 因此静态成员变量可能在某些情况下会造成:过高的耦合,因为是多个对象共享的,只要有一个对象修改了该“静态成员变量”,相当于修改了所有对象中的该静态成员变量。因此将静态成员变量声明为final是一个不错的选择。
      Paste_Image.png

    相关文章

      网友评论

          本文标题:static内存方面...

          本文链接:https://www.haomeiwen.com/subject/wtbxfxtx.html