堆区,方法区?

首先,栈和堆是数据结构里面的叫法,栈:先进后出,堆:优先队列可采用二叉树实现;在这里插入图片描述

调用方法 print()方法!叫入栈! 产生栈帧
print()方法执行完毕,就弹出!也叫出栈(弹出去以后就被销毁了)
当我们new对象的时候,

被native修饰的,都是本地方法栈!!!
Object底层 native修饰在这里插入图片描述
cmd查看
javac xxx.java --------javap -c xxx命令
下面就是:

程序计数器

在这里插入图片描述

创建对象然后我们就要给属性赋初始值,因为构造方法是默认的!执行完构造方法以后!他就会在堆区产生一个地址! 堆区里面赋值 0x111,栈区就开始调用!!!当执行完以后 Student构造方法就弹出去了!

在这里插入图片描述

在这里插入图片描述
加载类的结构!方法区 通过地址 在传送到堆区!!!堆区获得地址!
常量池 张三0x333 堆区name=0x333 栈区,调用set! 执行完成就弹出去

调用方法的时候,就会入栈!!每一条数据跟 setName入栈一样!赋完值以后!执行完了,
他就一次弹出去了
在这里插入图片描述

String的常量池,有且只有一个值!但是会被多个变量或者对象引用!
堆区:当多个线程进来,会被多个对象引用.


	private int id;
	private String name;
	private String addr;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	private int age;
	
	public void print(){
		System.out.println(this.getId()+"\t"+this.getName()+"\t"+this.getAge()+"\t"+this.getAddr());		
	}

创建另一个类

  package com.pb.demo;

public class Test {
	public static void main(String[] args) {
		int a = 10;
        Student stu = new Student();
        stu.setName("张三");        
        stu.setId(10);
        stu.setAge(20);
        stu.setAddr("北京");
        stu.print();
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值