[size=medium]jvm内存模型:
栈(stake):每个线程都有私有栈内存
主要存储:执行方法,局部变量(基本数据类型局部变量直接存储在栈,引用类型的引用存在栈中,引用的对象在堆中)
堆(heap):每一个实例对象都存在堆中,堆属于共享区域,
计算机模型:CPU寄存器,缓存区,主存,
JAVA的堆和栈都对应的是主存,但也可能临时存储在寄存器,缓存区。
jvm调优:一分配合适的堆内存,设置适合的栈大小,代码中避免深度递归,及内存泄露。在大量实例化局部对象时,使用完及时主动调用垃圾回收(system.gc().或system.GC.collect())。
监控内存情况:jdk自带的:jconsole或[/size]
栈(stake):每个线程都有私有栈内存
主要存储:执行方法,局部变量(基本数据类型局部变量直接存储在栈,引用类型的引用存在栈中,引用的对象在堆中)
堆(heap):每一个实例对象都存在堆中,堆属于共享区域,
计算机模型:CPU寄存器,缓存区,主存,
JAVA的堆和栈都对应的是主存,但也可能临时存储在寄存器,缓存区。
jvm调优:一分配合适的堆内存,设置适合的栈大小,代码中避免深度递归,及内存泄露。在大量实例化局部对象时,使用完及时主动调用垃圾回收(system.gc().或system.GC.collect())。
监控内存情况:jdk自带的:jconsole或[/size]