java基础---创建对象内存分析及小结

创建对象内存分析

我们先定义一个Application类,并在里面实例化一个dog对象,对属性进行赋值,调用Pet类中shout方法,并输出。

package oop.demo08;

public class Application {

    public static void main(String[] args) {

        Pet dog = new Pet();
        dog.name = "旺财";
        dog.age = 3;

        dog.shout();

        System.out.println(dog.name);
        System.out.println(dog.age);
    }
}

我们再定义一个Pet类,在里面定义两个属性name与age,定义一个无返回值的方法。

package oop.demo08;

public class Pet {

    public String name;
    public int age;

    public void shout() {
        System.out.println("叫了一声");
    }
}

内存分析:
  1、首先加载Application类,里面有一个main()方法,与一个常量池:旺财。
  2、加载main()方法,该方法存在栈中。
  3、走到Pet dag = new Pet();进入Pet类。在Pet类中有属性:name、age与shout(),其中name=null;age=0
  4、new完后要生成一个具体的对象:dog,该对象存在栈中,也是引用变量名。
  5、new Pet();在堆中分配了一块空间,假设地址为:0x0011,而第四步的dog就指向这个地址:0x0011;在这个堆中,有name = null; age = 0; shout()方法,这个方法其实是调用的是第三步中的shout()方法。
  6、走到dog.name = “旺财”; dog.age = 3;这里的"旺财"是将一步中的"旺财"给的。这时堆中的name = “旺财”; age = 3;

在这里插入图片描述

简单小结类与对象

  1、类与对象
    类是一个模板:抽象,对象是一个具体的实例。

  2、方法
    定义与调用。

  3、对象的引用
    引用类型对应的是基本类型(8种),除了基本类型,其他的都是引用类型。
    对象是通过引用来操作的:栈 ------> 堆(地址)

  4、属性:字段:Field,也叫成员变量。
    默认初始化:
      数字:0或者0.0
      char: u0000
      boolean: false
      引用: null

    5、属性的定义
      修饰符 属性名类型 属性名 = 属性值;

    6、对象的创建与使用
      必须使用new关键字创造对象,也要有构造器。 Person kuangshen = new Person();
      对象的属性:kuangshen.name
      对象的方法:kuangshen.sleep();

    7、静态的属性
      静态的属性:属性
      动态的行为:方法

在此说明一下:本人不是托,我的这些总结都是根据哔哩哔哩的up主:遇见狂神说,我是看他的视频学习的,真心推荐这位up主,有兴趣的小伙伴可以去看看!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值