,不是类的引用.在栈中有个”数据共享”的特性,比如,定义一个int a=3,栈会定义一个变量为a的引用,如果栈中一开始没有3,则栈会开辟一个存放字面值为3的地址.当再定义一个int b=3,栈会创建变量为...,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。...而堆内存是用来存储new创建的对象和数组,其内存分配是由java虚拟机的自动垃圾回收器管理,在堆中产生了一个数组或对象之后,可以在栈中定义一个特殊的变量,让这个变量的值是数组或对象在堆内存的首地址,栈的这个变量变成了堆中的数组或对象的引用变量...4:在堆内存的垃圾自动回收机制是:当创建的堆内存空间没有栈引用指向它的时候,系统会认为这个块区域变为垃圾,JAVA的自动垃圾回收机制会在适当的时候释放这块空间
下面我们具体说下值传递,首先是基本类型:为了加快程序运行速度...因为string用的比较多,因此它在堆内存中有常量池的概念。
最明显的是我们创建string变量的方式大都是:String a=”aa”;咋一看不是基础类型创建的方式吗?