数组的定义与内存的划分

数组的定义


public class ArrayDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*数组的定义 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
        需要一个容器,但是不明确容器的具体数据*/
                        int[] arr = new int[100];
        /*定义方法2 元素类型[] 数组名 = new 元素类型[]{元素,元素,元素,...}
        需要一个容器,存储已知的具体数据。*/
                        int[] arr2 = new int[]{1,26,78};
        //定义方法2的延伸
                        int[] arr3 = {1,26,72,98};
                        System.out.println(arr[0]);
    }

}

内存的划分

1.寄存器
2.本地方法区
3.方法区
4.栈内存
5.堆内存

目前,只分析栈内存和堆内存。

栈内存:
存储的都是局部变量(凡是定义在方法内的变量),而且变量所属的作用域一旦结束,变量就自动释放。
特点:变量生命周期短,更新速度很快。

堆内存:
存储的是数组和对象(其实数组就是对象)。凡是new建立的,都在堆中。
特点:
1.堆不会随时释放。
2.每一个实体(new创建的都是实体)都有首地址值。
3.堆内存中的每一个变量都有默认初始化值,不像c语言是乱码。根据类型的不同而不同。整数是0,小数是0.0f或者0.0,boolean false,char ‘\u0000’
4.垃圾回收机制。 和C++很大的不同,C++是人工回收,java是自动回收。

 堆运算图解

凡是new建立的,都在堆中。
局部变量,都在栈中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值