Java中的栈和堆,进而衍生到值传递-创新互联

这期内容当中小编将会给大家带来有关Java中的栈和堆,进而衍生到值传递,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联公司专注于东河网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供东河营销型网站建设,东河网站制作、东河网页设计、东河网站官网定制、成都小程序开发服务,打造东河网络公司原创品牌,更为您提供东河网站排名全网营销落地服务。

首先记住结论:

基本数据类型、局部变量、String类型的直接赋值都是存放在栈内存中的,用完就消失。

new创建的实例化对象、String类型的构造方法new出来的对象及数组,是存放在堆内存中的,用完之后靠垃圾回收机制不定期自动消除。

地址是栈,就是静态绑定机制,执行完值不变化;地址是堆(对象在堆内储存,一般也会在栈里分配一个空间,去指向堆里的对象的地址)就是动态绑定机制,执行完值变化。

栈和堆

栈:基本类型变量,String类型的直接赋值变量,对象的实例变量都在函数的栈内存中分配。栈内存特点,数据一执行完毕,变量会立即释放,节约内存空间;并且必须初始化变量的值。

堆:堆内存用来存放new创建的对象、String类型的构造方法new出来的对象和数组。堆内存中所有的实体都有内存地址值,系统会自动初始化变量的值;当堆内存中的实体不再被指向时,JVM启动垃圾回收机制,自动清除。

举例1:

 public static void main(String[] args) {
   int sum = 0;
   String str = "abc";
   for(int i =1 ; i                
当前标题:Java中的栈和堆,进而衍生到值传递-创新互联
文章起源:http://scyanting.com/article/dsdgpc.html