Java中的内存分为两种,一种叫做栈内存,由编译器自动分配和释放;一种叫做堆内存,程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
栈内存:
- 局部变量
- 函数中的参数
堆内存:
- new出来的对象
请看下面这张马老师的课件截图:
例如:当程序执行test.change1(date)这条语句时,栈内存会自动分配一个内存–>i :9(date=9),然后给i进行赋值,i=1234;而当方法执行完成后,栈内存中的i被释放。(栈内存中就不存在了)但date还存在栈内存中。
Java中的内存分为两种,一种叫做栈内存,由编译器自动分配和释放;一种叫做堆内存,程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
栈内存:
堆内存:
请看下面这张马老师的课件截图:
例如:当程序执行test.change1(date)这条语句时,栈内存会自动分配一个内存–>i :9(date=9),然后给i进行赋值,i=1234;而当方法执行完成后,栈内存中的i被释放。(栈内存中就不存在了)但date还存在栈内存中。