栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中的内存分配

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中的内存分配

java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,每一片区域都有特定的处理数据方式和内存管理方式
**

java内存分了五块
  • 栈内存
  • 堆内存
  • 方法区
  • 本地方法栈
  • 寄存器

栈内存:方法运行时进入的内存,局部变量都存放于这块内存当中
堆内存:new出来的内容都会进入堆内存,并且会存在地址值
方法区:字节码文件,(.class)加载是进入的内存
本地方法栈:调用操作系统相关资源
寄存器:交给CPU去使用
我们来举个栗子

首先编译代码,(1)字节码文件进入代码区,main方法在在字节码文件中,(2)main方法被虚拟机(JVM)自动调用进入栈内存中,(3)然后代码运行到 int[] arr=new int[3]这句,首先:int[] arr,因为main方法在栈内存中,而数组在main方法中所以数组也在main在栈内存开辟的空间中。数组变量在main方法中声明。(4)然后 new int[3]。因为new都会在堆内存中所以,数组在堆内存中开辟了一块空间,因为我们定义数组大小是3,多以他把开辟的内存空间分成三份,并且产生地址值(假设是001),每个格子都有自己的索引(数组的下标)和默认初始值。(5)System.out.println(arr);将地址付给mian 方法中的arr变量。System.out.println(arr[0]);地址(001)先找空间(堆内存开辟的空间)然后再找位置把值取出来进行打印…….。arr[0]=1地址找空间,索引找位置,然后赋值。
以上就是java内存的分配。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号