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

static内存方面...

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

Filed和Method

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

相关文章

  • static内存方面...

    Filed和Method 被static修饰的成员变量和方法,存放在方法区,这在内存方面和普通的成员变量的不同表现...

  • 《C++Primer》第十二章 动态内存

    静态内存、栈内存和堆 我们前面只提到了静态内存或栈内存: 静态内存:用来保存局部static、类static数据成...

  • C++---CHAPTER 12 : Dynamic Memor

    静态内存、栈内存、动态内存 静态内存:保存局部static对象;类static对象、已经定义在任何函数之外的变量。...

  • Android static 内存泄漏场景

    内存泄漏: 静态对象内存泄漏 static Object cc=null 在Dalvik虚拟机中,static变量...

  • 智能指针

    内存类型分类 1 静态内存 静态内存用来保存局部static对象,类static数据成员,以及定义在任何函数之外的...

  • 知识点梳理5 Android 疑难杂症

    static 变量丢失 static 存储在 method area 区,不再堆内存中,要是 static 对象也...

  • 05_static

    static 内存图 静态代码块

  • java随笔

    static变量和static方法 static变量 1.static修饰的变量:静态变量,静态变量在内存中只有一...

  • Android Dev 课程作业 - 内存泄漏

    activity的 static 成员 造成的内存泄漏static TestView sTextView 由于要s...

  • 第12章 动态内存

    静态内存:保存局部static对象,类static数据成员以及定义在任何函数之外的变量。 栈内存:用来保存定义在函...

网友评论

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

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