对象和类的内存分析
栈内存(stack)和堆内存(heap)和方法区(method area)
栈
表示方法执行的内存模型,JVM为每一个线程创建一个栈帧,用于存放该线程执行方法信息。栈线程私有不能实现线程间的共享!
堆
用于存放创建好的对象和数组(数组也是对象)
不同于栈JVM只有一个堆,因此他是线程共享的
堆是一个不连续的内存空间,分配灵活,但速度较慢
方法区(静态区)
方法区实际上也是堆,只是用于存储类和常量相关的信息
存储程序中永远是不变或者唯一的内容。比如类信息, class对象, 静态变量, 字符串常量等等