首页 > 编程语言 > 详细

第三章 Java基本语法 数组的描述:一维数组和二维数组的解析

时间:2021-04-07 09:17:34      阅读:17      评论:0      收藏:0      [点我收藏+]

一,数组的概述

1,数组的理解

数组(Array),是多个相同类型数据一定顺序排列的集合
并通过编号的方式对这些数据进行统一管理


2,数组的相关的概念:

>数组名
>元素
>角标,下标,索引
>数组的长度,元素的个数


3,数组的特点

1数组是照一定的顺序排序的
2数组属于引用数据类型的,String就是引用数据类型的,
所以数组的元素既可以是基本数据类型,也可以是引用数据类型
3数组是连续空间的结构,而链表是不规则空间的结构
4数组的长度一旦确定,就不能修改


4,数组的分类:


1照维数,分为一维数组,二维数组·····
2照数组元素的类型,基本数据类型元素的数组,引用数据类型元素的数组

 

5,一维数组的使用

1一维数组的声明和初始化
2如果调用数组的指定位置的元素
3如何获取数组的长度
4如何遍历数组
5数组元素的默认初始化值
6数组的内存解析

 

技术分享图片

 

 

技术分享图片

 

 

技术分享图片

 

 

* 6,数组的内存解析
* 内存的结构跟JVM的规范关,不同版本的JVM,JDK的结构也所区别

 

技术分享图片

 

 

技术分享图片

 

 

变量声明了之后就放在了栈空间,然后由于new了一个结构,他在堆里面
而且长度是三,连续存储,而连续的这三个空间,他会有一个首地址值,第一个元素的地址值
而且首地址值通常是由十六进制来表示的,然后把首地址值赋给arr
而栈空间的arr,他就可以通过这个首地址值找到堆空间的数组了,然后他就联系起来了

 

技术分享图片

 

 


但是此时我们赋值了,堆空间刚开始开辟的时候,先赋值的是0,然后再被替换

 

技术分享图片

 

 


接下来下一句是,先在栈空间声明String类型的arr1数组,然后我们new结构,
在堆空间开声明长度是4,堆空间他开辟的连续的空间,他会有首地址值
并赋值为null,然后把首地址值,也就是第一个元素的地址赋给了arr1,
然后arr1就通地址值,就可以指向堆空间的实体结构了

 

技术分享图片

 

 

 


然后通过角标的方式,去调用这个数组中的指定元素,arr1,然后指向地址,然后找到第二个元素
然后把值赋给第二个位置,第三个位置

之后的 arr1 又重新造了一个new的结构,然后把新的结构的首地址值给了arr1
然后把之前的替换的地址替换了,而之前的就没有哪个指针了
现在就是新的地址,而垃圾回收器,其中一种引用数据算符他就会判断,
这个堆空间的无用的空间,是否还有栈空间的引用指过来,刚才有指针有指向无用的空间他不会清除
但是此时没有栈空间的指针指向这个无用的空间了,就是栈空间中没有人再去调用他了
那他就是一个垃圾,他就会在一个不确定时间,在空闲的时间,把他给回收掉了
而我们的main方法,变量都是有作用域的,如果这个main方法执行完了,他的变量就没用了
所以此时他的栈空间的变量就会出栈,而出栈了之后,指针就会没有了,
堆空间就会被检测到无用的空间,那些没有被指针指向的空间,然后接着把他们回收掉

 

技术分享图片

 

 

技术分享图片

 

技术分享图片

 

 

技术分享图片

 

 技术分享图片

 

 

单行注释
选中
ctrl+/
取消
ctrl+/
多行注释
ctrl + shift + /
取消
ctrl + shift + \

 

技术分享图片

技术分享图片


要删,必须是在同一行上,也就是赋值和声明一起,因为他会类型判断,分行,就无法判断了

技术分享图片

 

 特殊情况,我们还是按我们的标准的写法标

技术分享图片

 

 

技术分享图片

 

 一维数组,一层for循环,二维数组,两层for循环,三维数组,三层for循环

 技术分享图片

 

 

 

技术分享图片

外层的地址值,

技术分享图片

技术分享图片

 

 

引用数据类型的都是null,空指针异常
因为[4][]这4个每一个都是一维数组引用数据类型,而且没有赋值过,就自然是null

 技术分享图片

 

技术分享图片

 

 


首先我们声明变量 arr1数组在栈空间,new一个新的二维数组结构在堆空间里
二新的二维数组的首地址值也会赋给arr1,而此时外层的每一个元素都是int[]数组
而这个数组是引用数据类型的,所以他的初始化值为null

 技术分享图片

 

 

之后给arr1数组的第二个元素进行了初始化,new的然后在堆空间开辟新的数组结构,然后把首地址
赋给了第二个元素,而这个地址里面的每个元素都是int类型的,是0的初始化,每个进行赋值

技术分享图片

 

 

第三个也是通过new,把自己的首地址文件交给第二个元素的位置
第四个则是,进把这个元素赋值为30

技术分享图片

 

第三章 Java基本语法 数组的描述:一维数组和二维数组的解析

原文:https://www.cnblogs.com/sakurakoji/p/14624620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!