JAVA学习——————Day11
1.初识数组
1.1 生活中的数组
超市
商品货物的存放,是不是分门别类???
分门别类有什么好处???
便于管理,便于查找
理念 【归纳总结】
图书馆:
1. 社科类,文学类,管理类,小说类,历史类,语言类
2. 相同的书籍会存放于一个书架上 【同一个位置】
3. 每一本书都要有一个唯一的编号 【同样的称呼】 W-101
4. 同一本有10本,都会有一个唯一的索引
W-101-01 ~ W-101-10 【唯一索引】
通过图书馆我们可以概括
1. 存储位置一致,并且连续
2. 有统一的称呼,方便管理
3. 存在唯一索引,具有一定的唯一性
1.2 开发中的实际情况
开发中一定存在对于大量相同数据处理的过程!!!
如果按照单一变量的定义方式,会导致
1. 代码冗余!!!
2. 代码维护性极差!!!
3. 代码可操作性极差!!!
4. 代码阅读性极差!!!
这里可以模仿生活中的案例,图书馆,超市,把这些同一个数据类型的数据,存放在一起,方便管理和使用 引入数组使用的场景和概念!!!
1.3 java中创建数组的方式
案例
int[] array = new int[10];
/*
赋值号左侧:
int:
告知编译器,这里创建定义的是一个int类型数组,有且只能保存int类型数据,保
证数据类型一致化
[]:
1. 告知编译器,当前定义的数据类型是一个数组类型
2. 数组名 array是一个【引用数据类型】
array:
1. 这里是一个数组名,操作数组的核心数据!!!就是一个变量名
2. 数组名 array是一个【引用数据类型】
赋值号右侧:
new:
new关键字需要在计算机中申请【连续内存空间】,这块区域在内存的【堆区】
【生活案例】这里就好比,顾客找仓库管理员申请货架,管理员一定是给你一个整
个连续区域给你使用
int:
前后呼应,告知编译器这里能够存储的数据类型是int类型,其他类型都不可以,要
求数据类型一致化
[10]:
告知编译器,当前数组的【容量 Capacity】是多少,这里是10,也就是说当前数
组中有且只能保存10个int类型数据
*/
1.4 引用数据类型
引用在生活中很常见,比如 文献中引用,文言文注解引用,广告角标上标引用,这些目的,引入其他的内容,其他的文献,其他的操作…
引用存在的一定的【指向性!!!】
取快递 快递小哥如何知道你的地址在哪里??? 根据快递单上的地址,联系方式和姓名来找到你的位置。 快递单这里也存在一定的【指向性!!!】 快递单中存有一个非常重要的数据【地址】!!! 开发中的【引用数据类型】,实际上是一个指向其他内存空间的一个数据类型。引用数据类型的变量中存储的内容是其他内存空间的【首地址】。 当CPU访问到【引用数据类型】变量时,会得到其存储的地址,然后直接跳转到对应的内存空间中,执行代码,获取数据,操作内容...
1.5 定义数组和使用
定义数组:
int[] array = new int[10];
需要操作数组中哪一个元素,这里需要使用数组的【下标】
计算机内数据的开头都是从0开始,数组容量为10的情况
有效下标的范围
0 ~ 9
0 ~ 数组容量 Capacity - 1
操作格式:
数组名[有效下标]
/* 演示数组的定义和使用 */ class Demo2 { public static void main(String[] args) { /* 这里定义一个int类型的数组,数组的容量为10 */ int[] array = new int[10]; /* 给数组中下标为0的元素赋值 格式: 数组名[有效下标] */ array[0] = 10; /* 给数组中下标为5的元素赋值 */ array[5] = 20; /* 给数组下标为10的元素赋值30 10 已经超出了有效下标范围 0 ~ 9 array[10] = 30; */ /* Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at Demo2.main(Demo2.java:22) ArrayIndexOutOfBoundsException 数组下标越界异常 */ /* 给数组中下标为-1的元素赋值为20 -1 已经超出了有效下标范围 0 ~ 9 */ // array[-1] = 20; /* java.lang.ArrayIndexOutOfBoundsException: -1 */ /* 取出数组中下标为0和下标为5的元素内容 */ System.out.println("array[0] : " + array[0]); System.out.println("array[5] : " + array[5]); // System.out.println("array[4] : " + array[4]); } }
1.6 数组内存分析图
1.7 数组与for循环之间的关系
示例class Demo3 { public static void main(String[] args) { /* 定义一个int类型数组 容量为10 */ int[] arr = new int[10]; /* 数组名.length 获取当前数组的【容量 Capacity】,获取数组的【属性】 */ for (int i = 0; i < arr.length; i++) { // 给数组中每一个元素赋值操作 arr[i] = i + 1; } // 利用循环展示数据 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }双双的小猪猪 原创文章 17获赞 0访问量 235 关注 私信
- JAVA学习---------------Day12
- JAVA ——————学习
- JAVA——————Day14
- JAVA学习————Day15
- JAVA学习————Day16
- JAVA学习——————Day17
- JAVA学习——————Day18
- JAVA学习————Day19
- 技术丨怎么用好Spring Config
- springBoot+rabbitMq集成demo
- java基础
- 学习笔记(01):玩转JAVA一:JAVA入门视频课程-常用dos命令
- Servlet.service() for servlet [springmvc] in context with path [/ecps-portal] threw exception [An ex
- springconfig配置
- JAVA总结
- ActivrMQ嵌入java中
- com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException: fallback method wasn't f
- Java 运算符
- Java中的强 、软引用,弱引用和虚引用(转载)
- Java中关键字instanceof用法