总结:
1 栈:为编译器自动分配和释放,如函数参数、局部变量、临时变量等等
在方法返回的时候 尽量 return 对象.方法();
2 堆:为成员分配和释放,由程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
3 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
值传递和引用传递的区别:
值传递:实参会把它的值传递给形参
引用传递:传递的是对象,形参和实参指向同个存储单元(同一个地址)。
总结:
1 栈:为编译器自动分配和释放,如函数参数、局部变量、临时变量等等
在方法返回的时候 尽量 return 对象.方法();
2 堆:为成员分配和释放,由程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
3 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
值传递和引用传递的区别:
值传递:实参会把它的值传递给形参
引用传递:传递的是对象,形参和实参指向同个存储单元(同一个地址)。