第三次学JAVA再学不好就吃翔(part19)--二维数组
学习笔记,仅供参考
文章目录
- JAVA基础语法
- 二维数组
- 二维数组的格式
- 二维数组的遍历
- 二维数组的求和
- 基本数据类型和引用数据类型的参数传递问题
JAVA基础语法
二维数组
二维数组的格式
- 格式1
数据类型[][] 数组名 = new 数据类型[m][n];
m代表二维数组中有m个一维数组,n代表每个一维数组中有n个元素。
- 格式2
数据类型 数组名[][] = new 数据类型[m][n];
- 格式3
数据类型[] 数组名[] = new 数据类型[m][n];
- 格式4(类似于一维数组的静态初始化)
int[][] arr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9, 10}}
- 举个例子
class Array2Test {public static void main(String[] args) {int[][] arr = new int[2][3];System.out.println(arr); //二维数组的地址System.out.println(arr[0]); //二维数组中的第1个一维数组的地址System.out.println(arr[0][0]);//二维数组中的第1个一维数组的第1个元素}
}
输出:
[[I@6d06d69c
[I@7852e922
0
内存图:
- 举个例子2
class Array2Test {public static void main(String[] args) {int[][] arr = new int[3][];System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println("---------");arr[0] = new int[2];arr[1] = new int[3];System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);}
}
输出:
null
null
null
---------
[I@6d06d69c
[I@7852e922
null
- 举个例子3
class Array2Test {public static void main(String[] args) {int[][] arr = {{1, 2}, {3, 4, 5}};System.out.println(arr);System.out.println(arr[0]);System.out.println(arr[0][0]);}
}
输出:
[[I@6d06d69c
[I@7852e922
1
二维数组的遍历
代码:
class Array2Test {public static void main(String[] args) {int[][] arr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9}};for (int i = 0;i < arr.length ;i++ ) {for (int j = 0;j <arr[i].length ;j++ ) {System.out.print(arr[i][j] + " ");}System.out.println();}}
}
输出:
1 2
3 4 5
6 7 8 9
二维数组的求和
代码:
class Array2Test {public static void main(String[] args) {int[][] arr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9}};int sum = 0;for (int i = 0;i < arr.length ;i++ ) {for (int j = 0;j <arr[i].length ;j++ ) {sum += arr[i][j];}}System.out.println("sum = " + sum);}
}
输出:
sum = 45
基本数据类型和引用数据类型的参数传递问题
- 基本数据类型
代码:
class Array2Test {public static void main(String[] args) {int a1 = 10;int b1 = 20;System.out.println("a1:" + a1 + ",b1:" + b1);change(a1,b1);System.out.println("a1:" + a1 + ",b1:" + b1); }public static void change(int a,int b) { //a = 10, b= 20System.out.println("a:"+a+",b:"+b); //a = 10,b = 20a = b; //a = 20b = a + b; //b = 40System.out.println("a:"+a+",b:"+b); //a = 20, b = 40}}
输出:
a1:10,b1:20
a:10,b:20
a:20,b:40
a1:10,b1:20
基本数据类型的值传递不改变原值,因为基本数据类型传递的是值,change方法被调用后就会弹栈,局部变量a和b就会随之消失。
- 引用数据类型
代码:
class Array2Test {public static void main(String[] args) {int[] arr = {1,2,3,4,5};change(arr);System.out.println(arr[1]);}public static void change(int[] arr) {for(int x=0; x<arr.length; x++) {if(arr[x]%2==0) {arr[x]*=2;}}}}
输出:
4
引用数据类型的值传递会改变原值,因为引用数据类型传递的是地址,即使change方法弹栈,堆内存中的数组对象还存在,我们依然可以通过地址继续访问它。
第三次学JAVA再学不好就吃翔(part19)--二维数组相关推荐
- 某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据(Java实验)
某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据 1班 99 68 97 2班 89 95 88 59 64 3班 89 79 99 58 4班 59 79 85 63 ...
- 第三次学JAVA再学不好就吃翔(part17)--数组
学习笔记,仅供参考 文章目录 JAVA基础语法 数组概述 数组的初始化 内存分配 绘制内存图 JAVA基础语法 数组概述 数组概念 数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器.数组既 ...
- c语言用二维数组打印空心菱形,java杨辉三角和空心菱形(二维数组篇)
一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...
- 第三次学JAVA再学不好就吃翔(part107)--字符流的拷贝
学习笔记,仅供参考,有错必纠 文章目录 IO流 字符流的拷贝 拷贝纯文本文件 注意事项 自定义字符数组的拷贝 IO流 字符流的拷贝 拷贝纯文本文件 zzz.txt: 安徽财经大学 JAVA代码: pa ...
- 第三次学JAVA再学不好就吃翔(part106)--字符流
学习笔记,仅供参考,有错必纠 文章目录 IO流 字符流输入流FileReader 字符流是什么 FileReader类构造方法 举个例子 字符流输出流FileWriter FileWriter构造方法 ...
- 第三次学JAVA再学不好就吃翔(part46)--Scanner类
学习笔记,仅供参考 文章目录 Scanner类 Scanner获取数据出现的问题 Scanner类 概述 Scanner是在java.util包下的一个类,使用该类时我们需要导包.这个类被final修 ...
- 第三次学JAVA再学不好就吃翔(part117)--单例设计模式
学习笔记,仅供参考,有错必纠 文章目录 多线程 单例设计模式 饿汉式 懒汉式 第三种格式 Timer类 线程的五种状态 多线程 单例设计模式 单例设计模式,即保证类在内存中只有一个对象,如何保证类在内 ...
- 第三次学JAVA再学不好就吃翔(part109)--LineNumberReader类
学习笔记,仅供参考,有错必纠 IO流 LineNumberReader类 该类继承自java.io.BufferedReader,该类可以跟踪行号的缓冲字符输入流.此类定义了方法 setLineNum ...
- 第三次学JAVA再学不好就吃翔(part108)--带缓冲的字符流
学习笔记,仅供参考,有错必纠 文章目录 IO流 带缓冲的字符流 BufferedReader和BufferedWriter readLine和newLine方法 IO流 带缓冲的字符流 Buffere ...
最新文章
- 中国互联网的十一种盈利模式
- C++ for循环跳过某一项求和
- 《Spring Cloud Netflix官方文档》2. 服务发现:Eureka服务器
- 腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统
- 判断一个男人穷还是富,只看这几点!
- 什么是javax.ws.rs.core.context? [第3部分]
- java ant war包_java利用Ant脚本生成war包全过程
- texture 纹理(贴图)
- PHP笔记-用户登录例子
- 真神器!在家也能控制公司的电脑了
- 【3】docker-compose
- 在MySQL中创建cm-hive使用的数据库及账号
- C#如何将listBox1里面的内容移动到listBox2里面 ,net/webform
- NRF24L01 2.4G无线模块浅析(学习笔记)
- 1999年中国十大优秀共享软件
- 面向部件的整车E/E架构开发咨询服务
- pytorch RuntimeError: size mismatch, m1: [16 x 86016], m2: [25088 x 512] at /opt/conda/conda-bld/pyt
- 牛客竞赛语法入门班选择结构习题【完结】
- 不经艰难困苦,何来玉汝于成
- JavaScript简餐——关于盗用构造函数
热门文章
- IPython快捷键及命令
- Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
- 15分钟构建超低成本数据大屏:DataV + DLA
- 调用模块,加入系统路径
- 《一》php多进程编程:第一次fork
- 利用angular4和nodejs-express构建一个简单的网站(六)—用户模块和路由分析
- SpringMVC使用及知识点提炼
- maven的dependency 和 dependencymanagement
- 【转】使用Navicat for Oracle新建表空间、用户及权限赋予
- Javascript权威指南——第一章Javascript概述