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<score; i++){
   sum += i;
   }
   //可以打印sum
  System.out.println(sum);
   不可以打印i
  System.out.println(i);
 }

标题名称:Java中的栈和堆,进而衍生到值传递-创新互联
分享地址:https://www.cdcxhl.com/article32/dsdgpc.html

成都网站建设公司_创新互联,为您提供Google外贸建站服务器托管网页设计公司做网站App开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化