ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Java内存分配

2020-08-24 18:03:35  阅读:168  来源: 互联网

标签:存储 Java nums int 数据类型 内存 new 分配


Java内存分配
程序运行时,内存可以分成四块
一块用来装代码,就是编译后的内容
一块用来装静态的内容static
一块是,stack,用来装变量的,就是我们声明的各种类型的变量,也就是赋值号左边的内容
一块是,heap,装的是new出来的内容
基本数据类型:变量和值存储在栈中
引用数据类型:变量是存储在栈中,真正的值是存储在堆中,也就是通过new关键字创建出的内容都存储在堆中
栈中变量存储的是堆中内存的地址
Java参数
java形参看做是方法的局部变量,每次方法被调用时,都会针对形参在内存中申请空间,方法执行结束后,该内存空间被回收
不管是基本数据类型作为参数还是引用数据类型作为参数,都是将栈中变量所存储的内容复制一份,传递给方法中的形参
int num= 1;
object.show(num);//

Student s = new Student();
object.show(s); //将s中存储的地址传递给方法中的形参,s和方法中的形参指向同一个堆内存
如果在方法内改变基本数据类型的值,当方法结束后,不会影响传参之前的变量值
如果改变引用数据类型的属性值,当方法结束后,会影响传参之前的对象的属性值

public class Test02 {
public int[] show(int[] nums){
nums[1] =2;

nums = new int[2]; //new 重新申请堆内存空间,方法结束被回收
nums[0]=3;
nums[1]=4;

return nums;
}

public static void main(String[] args) {
Test02 test02 =new Test02();
int[] nums =new int[2];
nums[0] = 1;
int[] nums1=test02.show(nums);
System.out.println(nums[1]);
System.out.println(nums1[1]);
}

}

标签:存储,Java,nums,int,数据类型,内存,new,分配
来源: https://www.cnblogs.com/longmo666/p/13555296.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有