学习笔记—java中的内存分配

今天主要学习内容是构造方法,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),对没有任何引用指向的对象进行自动回收,所以我们就不用担心内存管理问题了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值