java内存管理(一)

java内存管理

本小白也处于学习阶段,任何错误表述请各位路过大神批评指正,感激不尽。还是那句话,千万不要喷哦,尤其不要骂脏话,谢谢合作

数组及其内存管理

知识点总结:

1.java的数组是静态的,java数组被初始化后,该数组对象在堆中所占的内存空间是固定不变的。

2. 数组变量和数组对象:所谓数组变量是一个存储在栈上的引用,默认初始化为null。当完成初始化后,该数组变量指向堆的一块固定内存区域,而这块内存区域才是真正意义上的数组对象存取的地方,有关变量或对象值存储在该部分区域。

3. 根据上面java数组的理解,数组常用初始化操作有以下几种:

/*方法一*/
String[] name = newString[]{
           "张三","李四","王五"
};
/*方法二*/
String[] name = {
            "张三","李四","王五"
}
/*方法三*/
String[] name = newString[3];
/*方法四*/
String[] temp;
temp = name;//将引用直接指向name所指内存块
                    上面的初始化方法待补充。

4. 基本类型数组初始化和引用数组初始化

基本数组初始化比较简单,直接位每个数组变量在堆中分配空间并初始化即可;引用数组变量初始化后,其数组对象空间是null,也即其数组对象仍然是一个引用类型,这就有点像C/C++中的指针的指针含义。然后每个数组对象需要指向实际的对象实例,不过java隐藏了类似于C/C++中繁琐的指针操作,所有只需要正常new取得对象实例即可。

上图吧,虽然很简单,但挺重要的。

        


                   对应的源代码如下所示:

public Person(){
      ......
}
 
 
Person[] students =new Person[2];//图1
Person chen = newPerson();//图2
Person suo = newPerson();//图2
students[0] = chen;//图3
students[1] = suo;//图3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值