| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 初识Java语言(二)- 数组 -> 正文阅读 |
|
[Java知识库]初识Java语言(二)- 数组 |
![]() 往期文章 一、 初识java数据类型以及运算符(力作) 二、 Java中方法的概念以及递归的讨论 一、数组的概念数组是存储相同类型值的序列。 数组是一种数据结构,用来存储同一类型值的集合。通过一个整形下标(索引)可以访问数组中的每一个值。 二、声明数组数组的声明,分为两种: 静态的声明 和 动态的声明。 静态: int[] arr = {1,2,3,4,5}; 动态: int[] arr = new int[] {1,2,3,4,5}; 或者这样 : int[] arr = new int[5]; 开辟5个整形内存空间。
三、访问数组元素前面的数组的下边范围是0 ~ 4, 而不是1 ~ 5。一旦创建了数组,就可以往数组里面填充元素,如下
数值类型的数组会初始化为0,boolean数组初始化为false,而引用类型的数组,会初始化为null,而非空串。 如果下标不在数组下标的范围内,就会发生数组越界异常,
所以java中自带了一个获取数组的长度, 就是 数组名.length,它可以自动获取数组的长度。除了这这样的访问方式,我们还有一种增强for循环。如下
这种循环,不必考虑指定下标值。格式为 for (元素类型 元素 : 数组名)。 元素类型指的是: 这个数组里面存储的元素的类型 ; 元素: 它会将数组的每一个元素暂时存储在这里,用于直接打印或者做其他的事情; 数组名: 就是需要操作的对象。 这个循环应该读作“循环arr中的每一个元素“(for each element in arr)。增强for循环语句显得更加简洁,更不容易出错,因为你不必为下标的起始值和终止值而操心。
四、数组拷贝与排序拷贝与排序请问,这样算拷贝了一个数组吗?
其实并没有,好好看一下上文中的声明数组的内存图。我们就知道,其实arr1存储的只是一个内存地址,我们直接将这个地址赋值给了arr2,此时,达到的效果是 arr1 和arr2,两个变量都指向同一块内存空间,并没有拷贝出一个新的数组。 拷贝的方式:
深拷贝与浅拷贝的区别上面,我们讲完了数组的拷贝,大家想没想过上面的拷贝是深拷贝还是浅拷贝? 何为深拷贝?何为浅拷贝? 深拷贝指的是: 我拷贝一个数据后,此时一个是原数据,一个是拷贝的数据。如果此时我们去修改拷贝的数据,看是否会影响原数据的内容。 如果不影响原数据的内容就是深拷贝。反之就是浅拷贝。 举例: 上图所示的就是,上文中拷贝的数据,拷贝的是基本数据类型,所以拷贝后,数据存储一块新的内存区域中,此时我们去修改newArr指向的内存空间的数据,是不会影响到arr数组的数据的。此时我们就叫做深拷贝。 此时如果去修改s字符串里面的内容,那么newS字符串里面的内容也会被修改。这就是浅拷贝。
五、二维数组以及存储形式二维数组,也被称为矩阵。可以使用两个下标值进行访问。二维数组的本质其实还是一维数组, 由一维数组 组成。 在Java中,声明一个二维数组非常简单,如下:
和一维数组的声明差不多。但是这里需要注意的是: 在C语言中,二维数组的声明,可以省略行的大小,但是在Java中,只能省略列的大小。 二维数组的存储形式:与C语言二维数组的存储形式不一样。 C语言二维数组内存区域: 要想遍历二维数组,其实跟一维数组的遍历方式差不多:
好啦,本期更新就到此结束啦,各位朋友,下期见!!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/4 6:41:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |