今天主要学习内容是构造方法,this,堆和栈及方法区,引用类型数组,局部变量和成员变量,java中的垃圾回收机制
1 构造方法
每个类中必须有的一种特殊方法,方法名和类名相同,无返回值,主要用于给对像初始化
如果自己不写,编译器也会自动提供无参的构造方法。
之所以叫构造方法,可能就是因为它强大的创建对象的功能吧。
2 this关键字
主要是为了使代码可读性更好,指代调用该方法的当前对象
this主要存在于方法体中,因为类里的方法只有一份,而对象可以有很多,this就用来指代调用该方法的对象
3 堆,栈,栈帧,方法区
程序运行需要内存,java程序的内存在JVM中
堆是用来存放对象
栈存放的是方法调用产生的局部变量和参数
方法区中主要存放字节码文件,和方法声明
4 引用类型数组
一共有四种
数组就是一种引用数据类型,其对象就是基本数据
如果把基本类型数据,改成引用类型数据,有几种情况
第一种,引用类型数组
class Phone{
double price;
double size;
void call(){
};
}
Phone[ ] phone=new Phone[3 ];
其作用就是创建了3个Phone对象的引用,只不过其初始值为null,不指向任何实质的对象
第二种 以数组本身为对象的引用类型数组
int[ ][ ] arrs =new int[2][];
arrs[0]=new int[2];//为arrs[0]引用指向两个数组对象
arrs[1]=new int[3];//arrs[1]引用指向3个数组对象
第三种,引用类型数组组成的数组
第一种和第二种的结合
Phone [ ][ ] phone1=new Phone[2][ ];
phone1[ 0]=new Phone[ 2];
phone1[1]=new Phone[3];
以上声明和初始化可以一起进行的
5 局部变量和成员变量
局部变量,在方法中声明,无默认初始值,必须自行初始化,方法调用时占用栈内存,方法调用结束被清除
成员变量,在类中声明,系统可提供初始值,类被实例化后,存在于栈中,对象回收时失效
成员变量和局部变量可以同名,但是在方法中局部变量优先级高于成员变量
6 垃圾回收机制
在JAVA语言中具有自带的垃圾回收器(GC),对没有任何引用指向的对象进行自动回收,所以我们就不用担心内存管理问题了。