码迷,mamicode.com
首页 > 编程语言 > 详细

Java细节整理——数组与内存控制

时间:2018-05-05 00:27:47      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:初始   对象   个数   ima   不能   基本类型   必须   print   stat   

重点:使用Java数组之前,必须对数组对象进行初始化。

当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组的初始化完成。程序以后将不能重新改变数组对象在内存中的位置和大小。

知识点整理:

1.数组的初始化有以下两种方式:

1)静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度。

2)动态初始化:初始化时程序员只指定数组的长度,由系统为数组元素分配初始值。

不管使用哪种方式初始化Java数组,一旦初始化完成,该数组的长度就不可改变。

代码示例:

public class Demo {
    public static void main(String[] args) {
        
        // 采用静态初始化方式
        String[] books = new String[] { "一千零一夜", "唐诗三百首", "警示寓言", "一个人的圣朝", };
        // 采用静态初始化的简化形式
        String[] names = { "小红", "小明", "小绿", };
        // 采用动态初始化的的方式
        String[] strArr = new String[5];

        // 访问数组以上长度
        System.out.println("第一个数组的长度是" + books.length);
        System.out.println("第二个数组的长度是" + names.length);
        System.out.println("第三个数组的长度是" + strArr.length);
    }
}

技术分享图片

Java语言的数组变量是引用类型的变量,books,names,strArr这3个变量以及各自引用的数组在内存中的分配如图:

技术分享图片

总结:对于静态初始化方式而言,程序员无需指定数组长度,指定该数组的数组元素,由系统来决定该数组的长度即可。即names是3,books是4。

而执行动态初始化时,程序员只需指定数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些数组元素分配初始值。指定初始值时,系统将按如下规则分配初始值:

1)数组元素的类型是基本类型中的整数类型(byte,short,int和long),则数组元素的值是0;

2)数组元素的类型是基本类型中的字符类型(char),则数组元素的值是‘\u0000‘;

3)数组元素的类型是基本类型中的浮点类型(float,double),则数组元素的值是0.0;

4)数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值是false;

5)数组元素的类型是引用类型(类,接口和数组),则数组元素的值为null;

Java细节整理——数组与内存控制

标签:初始   对象   个数   ima   不能   基本类型   必须   print   stat   

原文地址:https://www.cnblogs.com/1693977889zz/p/8992997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!