一,数组的概念:

  数组是为了存储同一种数据多个元素的集合,也可以看成是一个容器,数组既可以存储基本数据类型,也可以存储引用数据类型,数组是为了存储同种数据类型的多个值。

1.1.1,一维数组重点:      

  数组的定义 

  数组的初始值       

  初始化数组  

  数组遍历

  数组操作常见的俩异常

  Arrays类介绍

1.1.2,数组的定义(一维数组)java中一维数组定义有两种格式:

数据类型[] 数组名 = new 数据类型[数组的长度];

数组类型 数组名[]=new 数组类型[数组长度];

1.1.3,基本类型的数组的初始值:  

数组元素属性 默认值
float、double   0.0
byte、short、int、long  0
char '\u0000'
boolean false
引用数据类型 ull

1.1.4.什么是数组初始化:

就是为数组开辟连续的内存空间,并为每个数组元素赋予值,(数组初始化分为动态初始化以及静态初始化)

a.动态初始化 只指定长度,由系统给出初始化值

格式:

数据类型[] 数组名 = new 数据类型[数组长度];

  b.静态初始化 给出初始化值,由系统决定长度

  格式:

    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

  简化格式:

        数据类型[] 数组名 = {元素1,元素2,…};

1.2.1,数组遍历:

A:数组遍历案例演示
  * 数组遍历:就是依次输出数组中的每一个元素。
  * 数组的属性:arr.length数组的长度
  * 数组的最大索引:arr.length - 1;

	     //定义数组
int [] arr={10,30,20,40};
//对数组进行for循环
for (int i = 0; i < arr.length; i++) {
//打印数组信息并且输出
System.out.println(arr[i]);
}

二,数组常见的两大异常:

    * a:ArrayIndexOutOfBoundsException:数组索引越界异常
      * 原因:你访问了不存在的索引。
    * b:NullPointerException:空指针异常
      * 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
      * int[] arr = {1,2,3};
      * arr = null;
      * System.out.println(arr[0]);


1.3.1,二维数组的重点:

  数位数组的定义

  二维数组遍历

1.3.2,二维数组的定义:

Java中定义和操作多维数组的语法与一维数组类似。在实际应用中,三维及以上的数组很少使用,主要使用二维数组。
语法:

  数组类型 [][] 数组名;  

  数组类型 数组 [][];

需要强调的是,虽然从语法上看,Java支持多维数组,但从内存分配原理的角度讲,Java中只有一维数组,没有多维数组。或者说,表面上是多维数组,实质上都是一维数组。

1.3.3,初始化二维数组:

  二维数组也可以进行初始化操作,与一维数组类似,同样采用如下两种方式,要注意大括号的结构及书写顺序。
  例:
  

  int[][] score=new int[][]{{90,32,43,43,23},{42,32,44},{67}};

    int score[][]={{90,32,43,43,23},{42,32,44},{67}};

1.3.4,二维数组的遍历的方法

	//定义二维数组
int [][] arr={{10,52,13,61},{10,52,13,61},{10,52,13,61},{10,52,13,61},{10,52,13,61}};
//外for循环每个数组
for (int i = 0; i < arr.length; i++) {
  //内for循环每个数组中的数
  for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"");
  }
System.out.println();
   }

1.3.5,Arrays类及其常用方法:

JDK中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。该类提供了一系列方法来操作数组,如排列、复制、比较、填充等,用户直接调用这些方法即可,不需要自己编写实现,降低了开发难度。
                             Arrays类常用方法:
返回类型   方法  说明
boolean  equals(array1,array2) 比较两个数组是否相等
void   shrt(array) 对数组array的元素进行升序排列
String toString() 将一个数组array转换成一个字符串
void  fill(array,val) 把数组array的所有元素都赋值为val
与array数组类型一致 copyOf(array,length) 把数组array复制成一个长度为length的新数组
int binarySearch(array,val) 查询元素值val在数组array中的下标
 

1.4.1,总结:

  • 数组是可以再内存中连续存储多个元素的结构。数组中的所有元素必须属于相同的数据类型。
  • 数组中的元素通过数组下标进行访问,数组下标从0开始。
  • 二维数组实际上是一个一维数组,它的每个元素又是一个一维数组。
  • 使用Array类提供的方法可以方便地对数组中的元素进行排序、查询等操作。
  • JDK1.5之后提供了增强for循环,可以用来实现对数组和集合中数据的访问。

java初级之数组详解的更多相关文章

  1. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  2. Java基础之数组详解

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如 numbers[1 ...

  3. “全栈2019”Java第三十一章:二维数组和多维数组详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. “全栈2019”Java第三十章:数组详解(下篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. “全栈2019”Java第二十九章:数组详解(中篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. “全栈2019”Java第二十八章:数组详解(上篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. java反射机制深入详解

    java反射机制深入详解  转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...

  8. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  9. (转)java.util.Scanner应用详解

    java.util.Scanner应用详解   java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...

随机推荐

  1. ORALCE 数据库字符串处理、常用函数

    .字符串转日期: to_date(paramStr,'YYYYMMDDHH24MISS') to_date(paramStr,'yyyy-MM-DD') to_date(paramStr,'yyyy/ ...

  2. ISO/IEC 15444-12 MP4 封装格式标准摘录 5

    目录 Segments Segment Type Box Segment Index Box Subsegment Index Box Producer Reference Time Box Supp ...

  3. 2.java多线程_synchronized(Lock)同步

    1.synchronized同步关键词 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同 操作共享数据.因此为 ...

  4. zabbix 3.2.2 agent端(源码包)安装部署 (二)

    一.zabbix agent 端安装部署 1.创建zabbix用户和组 # groupadd zabbix # useradd -g zabbix zabbix -s /sbin/nologin 2. ...

  5. 天线basic

    1.实际应用时,按内置天线还是外置天线考虑. 内置时,净空区在 PCB 上所有层(all layer) 不能放置元件,走线和铺 GND  天线远离金属,至少要距离周围有较高的元器件 10 毫米以上: ...

  6. imx6ull增加qt5 qtserialbus库

    meta-qt5库地址:https://code.qt.io/cgit/yocto/meta-qt5.git/   1.在fsl-release-yocto/sources/meta-qt5/reci ...

  7. BZOJ2238 Mst[最小生成树+树剖+线段树]

    跑一遍mst.对于非mst上的边,显然删掉不影响. 如果删边在树上,相当于这时剩下两个连通块.可以证明要重新构成mst只需要再加一条连接两个连通块的最小边,不会证,yy一下,因为原来连通块连的边权和已 ...

  8. mybatis-动态sql-trim、where、set

    1. where标签的作用:如果该标签包含的元素中有返回值,就插入一个where:如果where后面的字符是以AND和OR开头的,就讲他们剔除. int findUserByWhere(@Param( ...

  9. 如何利用fiddler4 抓取手机的数据包

    1.安装fiddler . 2.设置fiddler  .tool==> option里面  https 要打开,然后选择actions 第一个 安装本地证书: 3.设置手机访问的数据都要经过fi ...

  10. 伪元素::before和::after的详细介绍

    ㈠什么是伪元素? 不同的解释: ⑴伪元素是创造关于文档语言能够指定的文档树之外的抽象.例如文档语言不能提供访问元素内容第一字或者第一行的机制.伪元素允许设计师引用它们,否则这是难以办到的.伪元素还提供 ...