美文网首页
Java基础——数组

Java基础——数组

作者: 阿敏其人 | 来源:发表于2017-06-18 10:35 被阅读58次

一、数组

double[] myList = new double[10];

上面的语法语句做了两件事:
1、使用 new double[10] 创建了一个数组。
2、把新创建的数组的引用赋值给变量 myList。

二、初始化

初始化:

Java中的数组必先初始化才可以使用
所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;

数组初始化的两种方式:

静态初始化

在定义数字的同时就为数组元素分配空间并赋值;

初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n};
简化语法:数组名 = {元素1,元素2,元素3...元素n};

动态初始化
数组定义与为数组分配空间和赋值的操作分开进行

初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名 = new 数组类型[数组长度];

.
.

import java.util.Arrays;
public class TestClass {
    public static void main(String[] args) {
        int []arr = new int[]{1,2,3,4}; // 静态初始化方式1
        showNum(arr);
        
        int []arr2 = {11,12,13,14}; // 静态初始化方式2 简便写法
        showNum(arr2);
        
        int []arr3;
        arr3 = new int[3]; // 默认初始化
        showNum(arr3);
        
        arr3[0]=21;     
        showNum(arr3); // 动态初始化 
    }
    
    public static void showNum(int ...arr){
        System.out.println(Arrays.toString(arr));
    }
}

.
打印:

[1, 2, 3, 4]
[11, 12, 13, 14]
[0, 0, 0]
[21, 0, 0]

不能静态和动态初始化同时使用:
也就是说动态初始化不能同时指定数组的长度和元素;

三、数组的内存分配

数组的内存分配 栈内存和堆内存
如定义一个数组

  int []scores;
  scores = new int[5]; 
  • int[]scores 将在栈内存中为scores 分配内存空间,其值是一个不确定的值。

  • 当执行语句scores=new int[5]时,将在堆内存分配连续5个空间,每个空间4个字节,用于存放整型数据,其初始值为0,然后将该段空间首地址,也就是第一个元素的地址,比如0*3000,赋给scores变量。该地址相当于一个指针,指向堆内存中分配的空间。此时堆内存中分配的5个空间可以分别使用scores[0],一直到scores[4]来表示。当执行四个赋值语句时,分别用指定值填充到对应元素位置。

  • 如果此时将null值赋给scores时,scores变量将不再指向任何位置,此时堆内存中分配的空间就变成了垃圾,由垃圾回收器在某一时间进行回收。

在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间,当超过变量作用范围后,自动回收

相关文章

  • Java面试

    一、基础知识 1、Java能创建volatile数组吗? 能,Java中可以创建volatile数组,不过只是一个...

  • Java基础-数组

    2018-09-29 格式:1)、动态初始化数据类型 [] 数组名称 = new 数据类型[100]; 2) 静态...

  • JAVA 基础-数组

    数组是一个固定长度的,包含了相同类型数据的 容器步骤 1 : 分配空间与赋值分步进行 步骤 2 : 分配空间,同时...

  • Java基础——数组

    一、数组 上面的语法语句做了两件事:1、使用 new double[10] 创建了一个数组。2、把新创建的数组的引...

  • Java基础-数组

    数组的定义 在Java中,可以使用以下格式来定义一个数组。如下数据类型[] 数组名 = new 数据类型[元素个数...

  • JAVA基础--数组

    ##01. 数组的概念 >* 什么是数组? 总结: 1. 什么是数组? 可以存储多个元素,并且必须是同一种数据类型...

  • java基础--数组

    数组 可以一次存放多个数据 初始化数组 动态初始化(指定长度),指定数组元素的长度 静态初始化,不直接指定数据多少...

  • Java基础(数组)

    容器下的人儿呀, 你为何如此不变 数组 初始化 静态初始化 动态初始化 数组操作 常见异常 二维数组

  • Java基础 数组

    //数组的概念:是一种容器,可以同时存放多个数据值 //数组的特点: //1.数组是一种引用数据类型 //2.数组...

  • Java编程基础(9)

    Java编程基础- Java数组-针对数组(Array)的各种操作: 数组是最常见的一种数据结构,它是相同类型的用...

网友评论

      本文标题:Java基础——数组

      本文链接:https://www.haomeiwen.com/subject/kusiqxtx.html