Java中类的定义、对象的定义、对象内存分析以及引用传递分析
2018年10月19日 20:29:55 zhao_miao 阅读数:152更多
所属专栏: Java学习
文章目录
1 类与对象的概念
类是一个共性的概念,而对象是一个具体的,可以使用的事物。
类是生产对象的蓝图,先有类才可以产生对象,对象的所有属性和行为,一定在类中进行了完整的定义。
2 类与对象的定义与使用
2.1 类的定义
定义一个类的语法:
class 类名称 {
属性1;
属性2;
属性n...;
方法1(){}
方法2(){}
方法n(){}...
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
范例:
class Person{
public String name;
public int age;
public void work()
{
System.out.println(name+"在工作!");
}
public void age()
{
System.out.println(name+age+"岁了!");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
有了类我们就可以产生对象了。
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();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
类中的属性和方法(不带static的),只能通过对象调用
2.3 对象内存分析
我们可以简单的将java中内存区域分为栈内存和堆内存两块区域(实际java内存区域的划分比这个复杂)
- 栈内存(虚拟机局部变量表):存放的是局部变量(包括编译器可知的各种基本数据类型,对象引用----即堆内存地址(对象的名字))。
- 堆内存:保存的是真正的数据,即对象的属性信息。
new表示在堆上新分配空间!!!
比如:Person per = new Person();
2.4 引用传递分析
引用传递的本质:一块堆内存可以被多个栈内存所指向
Person per1 = new Person();
Person per2 = new Person();
per2=per1;
- 1
- 2
- 3
当执行per2=per1时,per2与per1指向同一块堆空间,另一块堆空间就没有栈内存指向。
我们将没有任何栈内存指向的堆内存空间称为垃圾空间。
在下次JVM回收之前如果还是没有被栈内存指向,就会被JVM回收