Java新人之路 -- Java内存图解

一. 前提基本概念

  1. 成员变量:直接在类中定义的变量,称为成员变量。(和定义在方法外的引用数据一起存储在堆中)

  2. 局部变量:定义在方法中的变量,成为局部变量(在栈中储存)

  3. 引用数据类型是因为只是一个地址,是引用的别人的数据,所以叫引用数据类型

  4. 不同的数据类型对应的默认值分别是什么?

​ 引用数据类型的默认值都是null;

​ 基本数据类型:byte short int long默认值都是0,float、double默认值都是0.0,boolean默认值是false

二. 内存图景运行流程
以以下代码为例

package cn.yunhe.classtest;

public class Shop {
	// 商品分类和价格
	public String name;
	public String list;
	private double price;

	public void Setprice(int REprice) {
		price = REprice;
	}
	
	// 这是小件武器的描述
	public void Little() {
		System.out.println(price + "元的" + name + "是" + list + "类的武器,是散件武器");
	}
    //主程序
    public static void main(String[] args) {
		//创建装备(epuip)对象
		/**
		* 1号装备
		*/
		Shop EQ1 = new Shop();
		EQ1.name="暴风大剑";
		EQ1.list="攻击";
		EQ1.Setprice(1300);
		EQ1.Little();
		/**
		* 2号装备
		*/
		Shop EQ2 = new Shop();
		EQ2.Setprice(850);
		EQ2.name="爆裂魔棒";
		EQ2.list="魔法";
		EQ2.Little();
	}
}

内存运行图

  1. 首先,主程序main进栈开始运行程序。
  2. 然后创建一个对象EQ1并调用构造方法Shop()从而在堆中开辟出一个区域存放该对象的属性。
  3. 随后开始运行EQ1.name和EQ1.list,在堆中为成员变量name和list赋值。
  4. 随后调用方法Setprice()进栈,并在堆中为变量price赋值。随后出栈
  5. 再之后调用方法Little()进栈运行。随后出栈
  6. 最后,主程序main出栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值