今天再看java毕向东老师的java基础课程的时候,IO操作(对象序列化),老师讲到static的成员变量在方法区里,非静态的普通成员变量在堆当中,当时不明白啥意思,特地的查阅了一下,与大家共享。
java程序运行时,数据会分区存放,heap、stack、method。
堆(heap): Java的堆是一个运行时数据区,类的对象从中分配空间。堆内存用于存放由new创建的对象和数组的引用(内存地址)。 栈(stack): stack的区域很小,只有1M,特点是存取速度很快,所以在stack中存放的都是快速执行的任务,比如static变量,static方法,基本数据类型的数据,和对象的引用(reference).
方法区:(method)又叫静态区,存放所有的class和静态变量,方法区存放的是整个程序中唯一的元素,如class和static变量。 file:///c:/users/lishu_000/appdata/roaming/360se6/User Data/temp/132739_LCK9_4877.jpg
|