ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数组

2022-01-21 20:35:03  阅读:121  来源: 互联网

标签:初始化 String int 数组 arr1 new


数组

基本知识

  • 数组是引用数据类型。数组中的元素,可以是引用数据类型,也可以是基本数据类型
  • 创建数组对象会在内存中开辟一整块连续的内存空间(与链表相对应,链表开辟分散的内存空间)
  • 数组的长度一旦确定,不能改变。
  • 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组

数组的初始化

//1. 一维数组的声明和初始化
        int[] ids;//声明
        //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
        ids = new int[]{1001,1002,1003};
        //1.2 动态初始化:数组的初始化和数组元素的赋值操作分开进行
        String[] names = new String[5];
        //总结:数组一旦初始化完成,数组的长度就确定了
//2. 二维数组的声明和初始化
        //静态初始化
        int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
		//1 2 3 
		//4 5 
		//6 7 8 
        //动态初始化1
        String[][] arr2 = new String[3][4];
        //动态 初始化2
        String[][] arr3 = new String[3][];

数组元素的默认初始化值

一维数组

  • 数组元素是整型:0
  • 数组元素是浮点型:0.0
  • 数组元素是布尔型:false
  • 数组元素是char型:ASCII码是0的字符
  • 数组元素是引用数据类型:null

二维数组

对于初始化方式一:比如:int[][] arr1 = new int[4][3]

  • 外层元素的初始化值为:地址值
  • 内层元素的初始化值为:与一维数组初始化值情况相同

对于初始化方式二:比如int[][] arr1 = new int[4][3]

  • 外层元素的初始化值为:null
  • 内层元素的初始化值为:会报错,无法调用

注意:如果初始化方式是String[][] arr3 = new String[3][];,直接获取某一个元素会出现空指针异常,要再进行初始化如arr[2] = new String[5];

内存结构的简单说明

image-20220118150040566

一维数组的内存解析

image-20220118151246812

注:实际的刘德华,张学友不是存放在堆空间的,而是存放在方法区中的常量池里面的

二维数组的内存解析

image-20220118202634504

小知识:

  • 获取[a,b]范围的随机整数公式(int)(Math.random()*(b-a+1))+a
  • 声明两个int型数组 int[] arr1,arr2;

数组的复制

//这样不叫作数组的复制
//arr1和arr2地址值相同,都指向了堆空间中唯一的一个数组实体
//改变arr2,arr1也会跟着改变
arr2 = arr1;
//数组的复制
arr2 = new int[arr1.length];
//arr1 和 arr2 地址值不一样
for (int i = 0; i < arr2.length; i++) {
            arr2[i] = arr1[i];
}

数组的排序算法

十大经典排序算法

标签:初始化,String,int,数组,arr1,new
来源: https://www.cnblogs.com/czhai/p/15831605.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有