『Java』数组
在学习数组之前先学习java.util.Arrays类中的一个静态方法Arrays.toString()。
该方法可以将传入的数组格式化为一个字符串,便于我们查看数组内容,例如:
import java.util.Arrays;
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = new int[5]; // 定义一个数组
        for (int i = 0; i < 5; i++) { // 为每个元素赋值
            arr[i] = i + 2;
        }
        String res = Arrays.toString(arr);
        System.out.println(res);
    }
}
输出结果为:[2, 3, 4, 5, 6]
数组的定义与初始化
Java中数组索引从0开始。
方法一
定义方法:
数据类型[] 数组名字 = new 数据类型[长度];
例如:
int[] arr1 = new int[10];
String[] arr2 = new String[5];
该种方式定义的数组如果不进行初始化,不同类型数组具有不同的默认值:
import java.util.Arrays;
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr1 = new int[5];
        System.out.println(Arrays.toString(arr1));
        // 输出:[0, 0, 0, 0, 0]
        // int数组默认值为0
        char[] arr2 = new char[5];
        System.out.println(Arrays.toString(arr2));
        // 输出:[ ,  ,  ,  ,  ]
        // char默认值为\u0000
        double[] arr3 = new double[5];
        System.out.println(Arrays.toString(arr3));
        // 输出:[0.0, 0.0, 0.0, 0.0, 0.0]
        // double默认值为0.0
        String[] arr4 = new String[5];
        System.out.println(Arrays.toString(arr4));
        // 输出:[null, null, null, null, null]
        // 引用类型默认值为空(null)
    }
}
方法二
数据类型[] 数组名字 = new 数据类型[] {元素1, 元素2 ...};
第二个[]中不能写长度值,{元素1, 元素2 ...}是数组中存放的元素值,类型要跟数据类型[]中的一致。
例如:
import java.util.Arrays;
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        System.out.println(Arrays.toString(arr));
        // 输出:[1, 2, 3]
    }
}
方法三
数据类型[] 数组名字 = {元素1, 元素2 ...};
例如:
import java.util.Arrays;
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        System.out.println(Arrays.toString(arr));
        // 输出:[1, 2, 3]
    }
}
数组的长度属性
每个数组都有长度,而且是【固定】的,通过数组名.length可获得数组的长度。
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        int len = arr.length;
        System.out.println(len); // 3
    }
}
数组常见异常
数组越界异常
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = new int[10];
        arr[10] = 1;
    }
}
产生ArrayIndexOutOfBoundsException数组越界异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
	at cn.xxmmqg.Array.Dome001_Array.main(Dome001_Array.java:8)
空指针异常
public class Dome001_Array {
    public static void main(String[] args) {
        int[] arr = new int[10];
        arr = null;
        int len = arr.length;
    }
}
产生NullPointerException空指针异常:
Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "arr" is null
	at cn.xxmmqg.Array.Dome001_Array.main(Dome001_Array.java:9)
												
											『Java』数组的更多相关文章
- 『Java』Collection接口 Collections类
		
接口Collection public interface Collection<E>定义了所有单列集合中共性的方法,所有的单列集合都可以使用共性方法. Collection的常用子接口有 ...
 - 『Java』StringBuilder类使用方法
		
String类存在的问题 String类的底层是一个被final修饰的byte[],不能改变. 为了解决以上问题,可以使用java.lang.StringBuilder类. StringBuilder ...
 - 『Java』String类使用方法
		
Java中的字符串 java.lang.String类表示字符串类,Java程序中所有字符串文字都可以看作实现该类的实例. 特点: 字符串不可变:字符串的值在创建后不能在发生改变 public cla ...
 - 『Java』List Set
		
观前提醒:本文内容多为入门时的学习笔记,笔记内容有些混乱!!! | | | | | | | | | | | | 泛型只能是引用类型,不能是基本类型. 如果希望集合中存储的是基本类型数据,需要基本类型对 ...
 - 『Java』成员内部类 匿名内部类
		
成员内部类 成员方法类是定义在一个类中的方法外的类,例如: public class Outer{ // 外部类 class Inner { // 内部类 // 内部类成员 } // 外部类成员 } ...
 - 『Java』接口的使用方法
		
以下三个文件存在于同一个包下: 定义接口Dome_Interface.java: package cn.xxmmqg.Interface; // 接口不能直接使用,必须有一个"实现类&quo ...
 - 『GoLang』数组与切片
		
数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构):这种类型可以是任意的原始类型例如整型.字符串或者自定义类型. 数组长度必须是一个常量表达式,并且必须是一个非负 ...
 - 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
		
2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...
 - 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算_第三周
		
2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址: @王志伟 四则运算第一周博客 @仇夏四则运算第一周博客 ...
 
随机推荐
- Maven安装、配置及基础
			
简介: Maven是Apache公司的开源项目,是项目构建工具,用来管理依赖. Maven的优点: 同样的代码实现相同的功能,Maven项目没有Jar包,项目大小更小. maven的优点如何实现: 没 ...
 - [转]CURL常用命令
			
From:http://www.cnblogs.com/gbyukg/p/3326825.html p.p1 { margin: 0 0 2px; font: 14px ".PingFang ...
 - Spark的安装和使用
			
根据Spark2.1.0入门:Spark的安装和使用在虚拟机安装Spark,并进行测试 实验3 Spark读取文件系统的数据 将文件上传hdfs (1)在spark-shell中读取Linux系统本 ...
 - MySql存储过程的创建与使用及在thinkphp中如何调用笔记
			
学习sql的存储过程,笔记总结如下: MySQL默认将分号,即";"作为语句的分隔符.如果是这样的话,则一个存储过程将很难正常创建,因为它的BEGIN和END之间可以是任意数量的S ...
 - 最小覆盖问题-POJ3041-P1129
			
POJ3041 这道题正解对于像我这种蒟蒻来说比较难以想到. 我们发现每次覆盖的只是一条线上的所有点.那么我们可以把它想象成一个二分图,两个集合分别是横轴和纵轴. 想一想,这实际上是不是就是x轴轴和纵 ...
 - WebAssembly正逐渐成为FaaS的主力
			
相信很多人都知道PaaS(平台即服务)和IaaS(基础设施即服务).而随着云计算时代的发展,逐渐出现了大量的XaaS形式的概念,这些技术从原先的硬件服务器,虚拟化服务,再到容器化逐渐转变.使得软件发布 ...
 - IntelliJ IDEA2021.2 常用快捷键汇总总结
			
Java开发环境:Windows10 64bit+JDK8+IDEA2021.2 =========================================================== ...
 - WEB安全新玩法 [10] 防范竞争条件支付漏洞
			
服务器端业务逻辑,特别是涉及数据库读写时,存在着关键步骤的时序问题,如果设计或代码编写不当就可能存在竞争条件漏洞.攻击者可以利用多线程并发技术,在数据库的余额字段更新之前,同时发起多次兑换积分或购买商 ...
 - 深入jvm虚拟机--第一篇 void TemplateInterpreterGenerator::generate_and_dispatch(Template* t, TosState tos_out) 函数
			
今天第一次使用虚拟姐打断点,断点设置在了void TemplateInterpreterGenerator::generate_and_dispatch(Template* t, TosState t ...
 - 构建前端第9篇之(上)---Vue组件引入,使用
			
张艳涛写于2020-1-25日 一.想写下vue引入组件和插件的理解 今天是星期一,周末也看俩两天,在这个几天了,比较迷,主要是从开始学习import指令开始的,import 是es6的语法, imp ...