学习笔记,仅供参考


文章目录

  • 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)--二维数组相关推荐

  1. 某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据(Java实验)

    某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据 1班 99 68 97     2班 89 95 88 59 64 3班 89 79 99 58   4班 59 79 85 63 ...

  2. 第三次学JAVA再学不好就吃翔(part17)--数组

    学习笔记,仅供参考 文章目录 JAVA基础语法 数组概述 数组的初始化 内存分配 绘制内存图 JAVA基础语法 数组概述 数组概念 数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器.数组既 ...

  3. c语言用二维数组打印空心菱形,java杨辉三角和空心菱形(二维数组篇)

    一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...

  4. 第三次学JAVA再学不好就吃翔(part107)--字符流的拷贝

    学习笔记,仅供参考,有错必纠 文章目录 IO流 字符流的拷贝 拷贝纯文本文件 注意事项 自定义字符数组的拷贝 IO流 字符流的拷贝 拷贝纯文本文件 zzz.txt: 安徽财经大学 JAVA代码: pa ...

  5. 第三次学JAVA再学不好就吃翔(part106)--字符流

    学习笔记,仅供参考,有错必纠 文章目录 IO流 字符流输入流FileReader 字符流是什么 FileReader类构造方法 举个例子 字符流输出流FileWriter FileWriter构造方法 ...

  6. 第三次学JAVA再学不好就吃翔(part46)--Scanner类

    学习笔记,仅供参考 文章目录 Scanner类 Scanner获取数据出现的问题 Scanner类 概述 Scanner是在java.util包下的一个类,使用该类时我们需要导包.这个类被final修 ...

  7. 第三次学JAVA再学不好就吃翔(part117)--单例设计模式

    学习笔记,仅供参考,有错必纠 文章目录 多线程 单例设计模式 饿汉式 懒汉式 第三种格式 Timer类 线程的五种状态 多线程 单例设计模式 单例设计模式,即保证类在内存中只有一个对象,如何保证类在内 ...

  8. 第三次学JAVA再学不好就吃翔(part109)--LineNumberReader类

    学习笔记,仅供参考,有错必纠 IO流 LineNumberReader类 该类继承自java.io.BufferedReader,该类可以跟踪行号的缓冲字符输入流.此类定义了方法 setLineNum ...

  9. 第三次学JAVA再学不好就吃翔(part108)--带缓冲的字符流

    学习笔记,仅供参考,有错必纠 文章目录 IO流 带缓冲的字符流 BufferedReader和BufferedWriter readLine和newLine方法 IO流 带缓冲的字符流 Buffere ...

最新文章

  1. 中国互联网的十一种盈利模式
  2. C++ for循环跳过某一项求和
  3. 《Spring Cloud Netflix官方文档》2. 服务发现:Eureka服务器
  4. 腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统
  5. 判断一个男人穷还是富,只看这几点!
  6. 什么是javax.ws.rs.core.context? [第3部分]
  7. java ant war包_java利用Ant脚本生成war包全过程
  8. texture 纹理(贴图)
  9. PHP笔记-用户登录例子
  10. 真神器!在家也能控制公司的电脑了
  11. 【3】docker-compose
  12. 在MySQL中创建cm-hive使用的数据库及账号
  13. C#如何将listBox1里面的内容移动到listBox2里面 ,net/webform
  14. NRF24L01 2.4G无线模块浅析(学习笔记)
  15. 1999年中国十大优秀共享软件
  16. 面向部件的整车E/E架构开发咨询服务
  17. pytorch RuntimeError: size mismatch, m1: [16 x 86016], m2: [25088 x 512] at /opt/conda/conda-bld/pyt
  18. 牛客竞赛语法入门班选择结构习题【完结】
  19. 不经艰难困苦,何来玉汝于成
  20. JavaScript简餐——关于盗用构造函数

热门文章

  1. IPython快捷键及命令
  2. Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
  3. 15分钟构建超低成本数据大屏:DataV + DLA
  4. 调用模块,加入系统路径
  5. 《一》php多进程编程:第一次fork
  6. 利用angular4和nodejs-express构建一个简单的网站(六)—用户模块和路由分析
  7. SpringMVC使用及知识点提炼
  8. maven的dependency 和 dependencymanagement
  9. 【转】使用Navicat for Oracle新建表空间、用户及权限赋予
  10. Javascript权威指南——第一章Javascript概述