//一维数组的定义
int[] arr1 = new int[3];//arr1 = {1,2,3}; 错误
int[] arr2 = new int[]{1,2,3};//int[] arr2 = new int[3]{1,2,3}; 错误
int arr3[] = {4,5,6};
//二维数组的定义
//二维数组中一维数组长度一致的数组
int[][] arr4 = new int[2][3]; //二维数组中一维数组长度不一致的数组 2个一维数组 一个长度2 一个长度3
int[][] arr5 = new int[2][];
arr5[0] = new int[2];
arr5[1] = new int[3];
//遍历
for(int[] i : arr5){
for(int k : i){
System.out.println(k);
if(k == i.length - 3)
System.out.print("good");//这里边有个有趣的问题
}
}

  ps

  1. 数组声明时,int[] arr 与 int arr[] 都是可以的

    int[] arr2 = new int[]{1,2,3};
    int arr3[] = {4,5,6};

      

  2. 初始化时,才能使用大括号{, , ,},声明完arr1 ,如果赋值是这样 arr1 = {1,2,3};是错误的,应该单独赋值或使用循环,arr1[0] = 1
  3. 初始化时,使用大括号时不应该数组加长度 ,int[] arr2 = new int[3]{1,2,3};这个语句是错误的
    int[] arr2 = new int[]{1,2,3};
    int arr3[] = {4,5,6};

      

  4. 再使用foreach遍历的时候,以上输出代码的结果是
    0
    0
    0
    good0
    good0
    good

      二维数组arr5是没有被初始化的,所以默认值都是0,为什么我代码中写的是 k == i.length - 3 会输出后三个good 呢,k的默认值可都是0,所以原因就是,这个i的长度会变化,长度变化的原因其实就是这是两个int[] i 数组,第一个数组长度是2 第二个长度是3

    //如果我把代码修改为
    k == i.length - 2 //则输出结果就为 0
    good0
    good0
    0
    0 //原因在于 当遇到第一个数组时,长度是2,所以会执行语句,当遇到第二个一维数组时,因为长度是3,所以
    //i.length - 1 为1,所以不等于k(默认为0)

      综上所述,意思就是说,第二个foreach其实是连续遍历其中的所有一维数组。

  5. 还有在二维数组中,直接使用arr5.length 返回的是二维数组中一维数组个数,arr5[0].length 返回的是其中这个一维数组的长度

Java数组定义学习的一些随笔的更多相关文章

  1. Java数组定义及初始化

    数组定义及初始化 数组这玩意是一种用于存放数据最常见数据结构. 数组的的概念及注意点 数组要求所有的数组元素具有相同的数据类型,且只能存在一种数据类型,要多专一有多专一. 数据类型既可以是基本类型也可 ...

  2. 200-Java语言基础-Java编程入门-006 | Java数组定义及使用(引用数据类型)

    一.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...

  3. java 数组基础学习(一维二维数组)

    1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...

  4. Java数组定义及方法

    数组的描述   在数组中每个元素都具有相同的数据类型,是有序数据的集合.通俗的说数组就相当于一个容器.数组分为一维数组.二维数组和多维数组. 数组的特点: 数组类型是从抽象基类 Array 派生的引用 ...

  5. java 数组定义

    1.方式一: 数组声明: int[] intArr ; String [] strArr; int [][] intArrs; 数组初始化: intArr = new int[6]; //一维数组 s ...

  6. java书写、数据类型、数组定义

    这里只记录java与php.javascript不同的地方,相同的地方就不赘述了. 1.java文件源码为以.java为后缀的文件,字节码文件是以.class为后缀的文件. 2.写好一个java源码之 ...

  7. Java 数组声明的几种方式

    Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,? ...

  8. 【java开发】数组基本学习

    一维数组 定义:具有相同数据类型的一组数据. 声明:int []a=new int[3];    释义:该数组的数据类型为int型,该数组长度为3,有3个元素 可采用如下方式为元素赋值:a[0]=1; ...

  9. 【Java学习笔记之五】java数组详解

    数组 概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...

随机推荐

  1. iOS_02_第一个C语言程序(理解编译、连接、运行)

    一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用 ...

  2. vue使用(三)

    本节目标:获取后端api数据 需求:一个按钮,点击之后将服务器上的数据获取到,并显示出来 方法一: 1. 准备工作, (1)安装官方插件 vuedemo02>npm install vue-re ...

  3. MySql 中的setAutoCommit方法

    引言 setAutoCommit方法用一句话说就是用来保持事务完整性.一个系统的更新操作可能涉及多张表,这个时候,就须要用多个Sql语句来实现,实际上我认为这个东西就是用来实现事务的. 当我们进行多条 ...

  4. PHP URL参数获取方式的四种例子

    在已知URL参数的情况下,我们可以根据自身情况采用$_GET来获取相应的参数信息($_GET['name']);那,在未知情况下如何获取到URL上的参数信息呢? 第一种.利用$_SERVER内置数组变 ...

  5. flink DataStream API使用及原理

    传统的大数据处理方式一般是批处理式的,也就是说,今天所收集的数据,我们明天再把今天收集到的数据算出来,以供大家使用,但是在很多情况下,数据的时效性对于业务的成败是非常关键的. Spark 和 Flin ...

  6. c++读取lua配置基础类

    一.内容介绍 把lua作为配置文件,里面的参数值的获取,在他人基础上做了修改,并且补充了一维数组的处理方式. 若有不足之处请多多指教. 对于二维数组,没有成功.希望大家继续补充和修改,非常感谢! 二. ...

  7. FastSocket学习笔记~RPC的思想,面向对象的灵活

    首先非常感谢这位来自新浪的老兄,它开发的这个FastSocket非常不错,先不说性能如何,单说它的使用方式和理念上就很让人赞口,从宏观上看,它更像是一种远程过程的调用RPC,即服务器公开一些命令,供客 ...

  8. ARM+linux学习过程(2)安装vmware-tool过程与错误解决

    安装: 点击Ubuntu VMware菜单的-VM-Install VMware Tools 这时,在Ubuntu下会自动加载Linux版的VMware Tools的安装光盘镜像.你会看到虚拟机的桌面 ...

  9. java实现微信支付宝等多个支付平台合一的二维码支付(maven+spring springmvc mybatis框架)

    首先申明,本人实现微信支付宝等支付平台合多为一的二维码支付,并且实现有效时间内支付有效,本人采用的框架是spring springmvc mybatis 框架,maven管理.其实如果支付,不需要my ...

  10. swift学习第十四天:属性监听器

    监听属性的改变 在OC中我们可以重写set方法来监听属性的改变 Swift中可以通过属性观察者来监听和响应属性值的变化 通常是监听存储属性和类属性的改变.(对于计算属性,我们不需要定义属性观察者,因为 ...