Java中类的定义、对象的定义、对象内存分析以及引用传递分析

1 类与对象的概念

  类是一个共性的概念,而对象是一个具体的,可以使用的事物。
  类是生产对象的蓝图,先有类才可以产生对象,对象的所有属性和行为,一定在类中进行了完整的定义。

2 类与对象的定义与使用

2.1 类的定义

  定义一个类的语法:

class 类名称 {
	属性1;
	属性2;
	属性n...;
	方法1(){}
	方法2(){}
	方法n(){}...
}

范例:

class Person{
    public String name;
    public int age;
    public void work()
    {
        System.out.println(name+"在工作!");
    }
    public void age()
    {
        System.out.println(name+age+"岁了!");
    }
}

   有了类我们就可以产生对象了。

2.2 对象的定义

  产生对象的语法:类名称 对象名称=new 类名称();
  以上述Person为例,产生一个Person类的对象:Person p1 = new Person();

class Person{
    public String name;
    public int age;
    public void work()
    {
        System.out.println(name+"在工作!");
    }
    public  void  age()
    {
        System.out.println(name+age+"岁了!");
    }
    public static void main(String[] args)
    {
       Person per1=new Person();
        per1.name="花花";
        per1.age=18;
        per1.work();
        per1.age();
    }
}

类中的属性和方法(不带static的),只能通过对象调用

2.3 对象内存分析

我们可以简单的将java中内存区域分为栈内存和堆内存两块区域(实际java内存区域的划分比这个复杂)

  • 栈内存(虚拟机局部变量表):存放的是局部变量(包括编译器可知的各种基本数据类型,对象引用----即堆内存地址(对象的名字))。
  • 堆内存:保存的是真正的数据,即对象的属性信息。
      new表示在堆上新分配空间!!!

    比如:Person per = new Person();
    在这里插入图片描述

2.4 引用传递分析

  引用传递的本质:一块堆内存可以被多个栈内存所指向

	Person per1 = new Person();
	Person per2 = new Person();
	per2=per1;

在这里插入图片描述
  当执行per2=per1时,per2与per1指向同一块堆空间,另一块堆空间就没有栈内存指向。
我们将没有任何栈内存指向的堆内存空间称为垃圾空间。
在下次JVM回收之前如果还是没有被栈内存指向,就会被JVM回收

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值