Java的内存划分

Java运行的内存一共分为五个部分:
  1. 栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在堆栈中运行。
  2. 堆(Heap):凡是new出来的东西都在堆中。
  3. 方法区(Method Area):存储.class相关的信息,包含方法的信息。
  4. 本地存储栈(Native Method Stack):与操作系统相关。
  5. 寄存器(pc Register):与CPU相关。
概念解读
栈相关

1、局部变量:方法的参数,或者是方法{}内不的变量。
2、作用域:当程序的执行一旦离开方法的作用域,作用域中的局部变量就会立即从栈内存中消失。

堆相关

1、堆内存里面的东西都有一个16进制的地址值。
2、堆内存里面的数据(比如数组),都有默认值。规则:

  • 整数------------------------0
  • 浮点数---------------------0.0
  • 字符------------------------’\u0000’
  • 布尔------------------------false
  • 引用类型------------------null

3、.class的相关信息,比如:方法的名字、方法的返回值类型、方法的参数。

方法的执行在内存中的过程

首先是执行方法区里面记录的main方法,当执行main方法的时候,操作系统就会再栈内存中为main方法开辟一块栈空间,这块内存空间里面存储的就是main方法的参数以及作用域里面的局部变量。假如说作用域内正好有一个局部变量是一个数组,数组的变量名就是一个变量,里面存储的是数组在内存中存储的16进制地址值,这个地址值就是指向存储在堆中的这个数组的数据。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值