商城式网站具备哪些功能吗,wordpress 捐赠插件,最近高清中文在线国语字幕,dedecms做电商网站Java的引用(包括基本类型#xff0c;对象引用类型)在声明、方法调用等时候都会产生新的引用#xff0c;复制等号右侧的引用。分为下面3种情况#xff1a;基本类型代表的值存储在引用里面#xff0c;引用中专门有个区域存储这个值#xff0c;所以在复制的时候#xff0c;值…Java的引用(包括基本类型对象引用类型)在声明、方法调用等时候都会产生新的引用复制等号右侧的引用。分为下面3种情况基本类型代表的值存储在引用里面引用中专门有个区域存储这个值所以在复制的时候值也同时被复制了。引用类型这个区域存储的是对象在堆内存中的内存地址引用复制的时候指向的内存地址却是同一份所以不会涉及值(也就是对象)的复制数组里面都是存储的引用(包括基本类型对象引用类型)要弄清楚这个问题首先要清楚在JAVA中有四类八种基本类型除了基本类型全都是引用类型。比如你写 int i 1; 那么它在内存里的分配是这样的内存里分配了一块空间这块空间的名字是i,里面的内容是1.当你使用i的时候就可以访问这块空间里的内容。而引用类型不同引用类型在内存中占两块内存。比如你写String s;或者String s null;这时候在内存里分配一块内存。这块内存装的是空值null,也就是什么也没有装。因为还没有进行初始化。上个图至于具体这个s分配在哪要看他被声明的位置。如果s被声明为局部变量那s就在栈空间。如果不是局部变量那就不在栈上分配。而当你用s指向一个String类型的对象的时候就发生了变化。也就是接着写s new String(zhihu);的时候。上个图原来的s里面就会有一个值根据s这块空间里的这个值就可以找到在堆上找到另一块内存。所有new出来的东西都在堆内存里。堆上的这块内存里对String的属性进行分配。堆内存是动态分配内存的。所以既然是分配在堆上其实也就说明了new出来的对象占多大内存并不能确定只能在运行期间才能分配才能明白这个对象分配多大。 而且占用内存不能确定的原因还有一个就是方法在执行的时候才分配内存。如果没有调用方法那方法只是一堆代码而已并不占用内存。