Java学习-内存解析之栈内存与堆内存

2/22/2017来源:ASP.NET技巧人气:1422

java中的内存分为两种,一种叫做栈内存,由编译器自动分配和释放;一种叫做堆内存,程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。

栈内存:

局部变量 函数中的参数

堆内存:

new出来的对象

请看下面这张马老师的课件截图:

马老师内存解析示例图

例如:当程序执行test.change1(date)这条语句时,栈内存会自动分配一个内存–>i :9(date=9),然后给i进行赋值,i=1234;而当方法执行完成后,栈内存中的i被释放。(栈内存中就不存在了)但date还存在栈内存中。