网站首页 > java教程 正文
序
学习Java,尤其是自学Java,是一条艰辛且长的道路,所幸我们的Java开发基础教程今天已经来到了第五讲——Java数组的部分,知识逐步进入深水区。
需要巩固之前知识点的小伙伴,可以点击以下超链:
- 老K玩代码:全网最完整的免费java教程讲义系列(一)——java配置和安装
- 老K玩代码:全网最完整的免费java教程讲义系列(二)——java数据和变量
- 老K玩代码:全网最完整的免费java教程讲义系列(三)——java的运算符
- 老K玩代码:全网最完整的免费java教程讲义系列(四)——java的流程控制
接下来,我们就开始新一节的内容:
一、数组的概念
数组和之前介绍过的基础型变量不同,它属于引用型变量。
数据型式 | 数据类型 | 说明 |
基础变量 | byte, short, int, long, float, double, char, boolean | 变量会存储一个数值,这个数值就是我们需要的数值或字符编码; |
引用变量 | String, 数组, 接口, 类 | 变量会存储一个数值,这个数值表示内存地址,我们需要的值被保存在这个内存地址里。 |
补充说明:
- 当多个基础变量指向同一个值的时候,变更其中一个变量的值不会影响和改变其它变量;
- 当多个引用变量指向同一个值的时候,改变其中一个变量的值会导致所有指向该地址的值发生改变。
二、声明和赋值
1. 声明数组
型式 | 示例 |
数据类型[] 数组名 | int[] intArray; |
数据类型 数组名[] | int intArray[]; |
2. 创建数组
型式 | 示例 |
new 数据类型[数据长度] | new int[5]; |
3. 赋值数组
结合声明和创建来完成对数组的赋值。
int[] intArray = {1, 2, 3, 4, 5};
4. 数组索引
数组名[索引值],续接上行代码中的intArray变量为例,intArray[1]的输出值应该是2。
说明:java的索引值从0开始计数,即0表示第一个值,1表示第二个值,依此类推。具体原理可以参考我之前写的文章:为什么计算机语言中的下标都是从0开始的?
三、数组的应用
请先将下述代码复制到IDEA并运行,查看相应结果:
public class ArrayDemo {
public static void main(String[] args) {
char[] ch = {'a', 'b', 'c', 'd'};
System.out.println("数组ch的长度为:" + ch.length);
System.out.println("数组ch的第3个元素为:" + ch[2]);
System.out.println("数组ch的最后一个元素为:" + ch[ch.length - 1]);
System.out.print("遍历数组ch:");
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i] + " ");
}
}
}
- 可以使用方法length获取数组的长度;
- 获取数组最后元素可以使用ch.leangth-1作为索引;
- 遍历数组需要使用for循环语句。
增强型for循环
即enhanced for loop,是专门为数组类数据产生的for循环方法,可以直接获取数组元素而无需索引,书写简洁明了。
书写规范:数据类型 元素名: 数组名
上例中的for循环可以表示为,起到一样的效果:
for (char c : ch) {
System.out.print(c + " ");
}
四、 二维数组
1. 声明数组
型式 | 示例 |
数据类型[][] 数组名 | int[][] intArray; |
数据类型 数组名[][] | int intArray[][]; |
数据类型[] 数组名[] | int[] intArray[]; |
2. 创建数组
型式 | 示例 | 说明 |
new 数据型式[n][m] | new int[3][4] | 生成一个3行4列的二维数组 |
new 数据型式[n][] | new int[3][] | 生成一个列数待定的3行数组 |
3. 赋值数组
int[][] intArray = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
4. 应用示例
请将下列代码复制到IDEA后运行,查看结果并自行调整变量、语句,进行研究:
public class ArrayDemo {
public static void main(String[] args) {
int[][] intArray = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
System.out.println("整数数组第一行第二列的元素为:" + intArray[0][1]);
System.out.println("整数数组行数为:" + intArray.length);
System.out.println("整数数组列数为:" + intArray[0].length);
System.out.println("=============================");
float[][] floatArray = {{1.1f, 1.2f}, {2.1f, 2.2f, 2.3f, 2.4f}, {3.1f, 3.2f, 3.3f}};
for (int i = 0; i < floatArray.length; i++) {
System.out.println("浮点数组第" + (i + 1) + "行的数据列数为:" + floatArray[i].length);
}
}
}
以上就是本期Java开发基础教程第五讲的内容。
关于Java学习的系列课程我会持续更新,如果你想了解更多关于Java或其他编程相关的内容,可以关注我或者收藏这片文章。
另外,想自学Java的小伙伴,老K在此推荐两本Java编程的圣经。
书的内容详实,循序渐进。基础卷适合初学者,上手容易;进阶卷适合想要精进Java编程技术的朋友。
- 《On Java》,豆瓣读书评分:9.0 ★★★★★
作者 Bruce Eckel是在硅谷成名已久的大牛,其早年的《Java 编程思想》可谓是Java编程圣经。如今的这部书亦是他呕心沥血之作,增加了很多近期java版本的特性,更适合当下。全书两册,分为基础卷和进阶卷。基础卷对新手友好,循序渐进;进阶卷内容详实、步步为营。
- 《Java核心技术》,豆瓣读书评分:9.4 ★★★★★
本书曾获得有“软件业奥斯卡”之称的Jolt奖,内容详实而细腻,是对学习Java很有帮助的两部书。上下两卷,分别详细介绍了Java的基础知识和高级特性。是很多学习Java的小伙伴必备的书籍。
结束语
我是专注于开发领域的@老K玩代码,会持续生产关于如何学习编程语言的优质内容。
如果你想学习编程,或者想精进你的编程能力,可以关注我。如果你对开发、编程有任何疑问或有想了解的内容,而我暂时没有写到的,也欢迎随时来找我聊聊。
猜你喜欢
- 2024-09-25 再说,数组(数组mem)
- 2024-09-25 数据结构基础-数组(数据结构数组思维导图)
- 2024-09-25 编程专题:JAVA语法基础(一维数组)
- 2024-09-25 2.基本语法(数组)(数组的基本用法)
- 2024-09-25 灵魂拷问:如何检查 Java 数组中是否包含某个值?
- 2024-09-25 JAVA中数组(一)(java数组菜鸟教程)
- 2024-09-25 java数据类型之数组,有关数组的18个问题
- 2024-09-25 java基础回顾(五)——java数组(java里面数组)
- 2024-09-25 JavaSE基础:数组(java数组用法)
- 2024-09-25 java数组,全新的认识数组,你真的学好数组了吗?
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)