数组是一组相关数据的集合,数组按照使用可以分为一维数组、二维数组、多维数组

本章先讲一维数组

不同点:

不使用数组定义100个整形变量:int1,int2,int3;;;;;;

使用数组定义 int i[100]

数组定义:int i[100],只是一个伪代码,只能表示含义的。




一维数组

可以存放上千万个数据,并且这些数据的类型是完全是相同的。

定义数组

  方式1(推荐,更能表明数组类型)

  type[] 变量名 = new type[数组中元素的个数];

  比如:

  int[] a = new int[10];

  数组名,也即引用a,指向数组元素的首地址。

  方式2(同C语言)我认为搞JAVA的 还是建议用1,3 

  type变量名[] = new type[数组中元素的个数];

  如:

  int a[] = new int[10];

  方式3 定义时直接初始化

  type[] 变量名 = new type[]{逗号分隔的初始化值};

  其中红色部分可省略,所以又有两种:

  int[] a = {1,2,3,4};

  int[] a = new int[]{1,2,3,4};

  其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

数组长度

  Java中的每个数组都有一个名为length的属性,表示数组的长度。

  length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

例如:int[] x=new int[5];    //通过new关键字创建了一个长度为5,元素类型是int的数组实体。

1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。

2、单精度浮点型(float)的基本类型变量的默认值为0.0f。

3、双精度浮点型(double)的基本类型变量的默认值为0.0d。

4、字符型(char)的基本类型变量的默认为 “/u0000”。

5、布尔性的基本类型变量的默认值为 false。

6、引用类型的变量是默认值为 null。

7、数组引用类型的变量的默认值为 null。关键数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。

下面用例子来看数组没有赋值的数组初始化值 ..

class Shuzhu01
{
public static void main(String[] args)
{
int[] x=new int[10];
float[] x1=new float[1];
double[] x2=new double[1];
char[] x3=new char[1];
boolean[] x4=new boolean[1];
System.out.println("int[] x="+x[0]);
System.out.println("int[] x1="+x1[0]);
System.out.println("int[] x2="+x2[0]);
System.out.println("int[] x3="+x3[0]);
System.out.println("int[] x3="+x4[0]);
System.out.println("x数组的长度是"+x.length);
}
}

结果如下图:

如果在使用数组时,不想使用这些默认初始值,也可以为这些元素赋值。接下来通过一个案例来学习如何为数组元素赋值:

public class Shuzu02 {
public static void main(String[] args) {
int[] arr = new int[4]; // 定义可以存储4个整数的数组
arr[0] = 1; // 为第1个元素赋值1
arr[1] = 2; // 为第2个元素赋值2
// 下面的代码是打印数组中每个元素的值
System.out.println("arr[0]=" + arr[0]);
System.out.println("arr[1]=" + arr[1]);
System.out.println("arr[2]=" + arr[2]);
System.out.println("arr[3]=" + arr[3]);
}
}

结果是:

注意事项

每个数组的索引都有一个范围,即0~length-1. 在访问数组的元素时,索引不能超出这个范围,否者程序会报错

下面用一个例子来体现:

public class ShuzuZhuyi01 {
public static void main(String[] args) {
int[] arr = new int[4]; // 定义一个长度为4的数组
System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素
}
}

结果如下图:

上图所提示的错误信息是 数组越界异常 ArrayIndexOut0fBoundsException  出现这个异常的原因是数组的长度为4,其索引范围为0~3     代码:

System.out.println("arr[0]=" + arr[4]);

就是访问arr[4]的元素时超出了数组的索引范围。

在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常,接下来通过代码来体现下:

public class ShuzuZuyi02 {
public static void main(String[] args) {
int[] arr = new int[3]; // 定义一个长度为3的数组
arr[0] = 5; // 为数组的第一个元素赋值
System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
arr = null; // 将变量arr置为null
System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
}
}

结果是:

arr = null;	

为空后就会出现此提示:

空指针异常 NullPointerException

不懂的留言或者加企鹅吧654249738

JAVA_SE基础——19.数组的定义的更多相关文章

  1. JAVA_SE基础——20.数组的常见操作

    1.遍历数组 使用for循环来遍历数组 代码如下: public class Ergodic { public static void main(String[] args) { int[] arr ...

  2. JAVA_SE基础——23.类的定义

    黑马程序员入学blog ... java 面向对象的语言 对象:真实存在的唯一的实物. 比如:我家的狗, 类: 实际就是对某种类型事物的共性属性与行为的抽取.  抽象的概念...   比如说:车   ...

  3. JAVA_SE基础——21.二维数组的定义

    2 二维数组的定义 基本与一维数组类似 //定义一个3行5列的二维数组 //方法1,先new对象,然后再初始化每个元素 int[][] a = new int[3][5]; a[0][0]=1; a[ ...

  4. 《Java基础——数组的定义与使用》

    Java基础--数组的定义与使用       一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量 ...

  5. Java基础_0306:数组的定义与使用

    数组 数组指的就是一组相关变量的集合.例如:如果说现在要想定义100个整型变量,按照传统的思路,可能这样定义: int i1,i2 ,... i100,一共写100个变量. 以上的形式的确可以满足技术 ...

  6. Java基础--数组的定义

    1.数组的定义 数组:一组能够储存相同数据类型值的变量的集合. 2.数组的赋值方式 (1)使用默认的初始值来初始化数组中的每一个元素 语法:数组元素类型[]数组名 = new数组元素类型[数组中元素的 ...

  7. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  8. [.net 面向对象编程基础] (19) LINQ基础

    [.net 面向对象编程基础] (19)  LINQ基础 上两节我们介绍了.net的数组.集合和泛型.我们说到,数组是从以前编程语言延伸过来的一种引用类型,采用事先定义长度分配存储区域的方式.而集合是 ...

  9. JAVA_SE基础——8.基本数据类型

    基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...

随机推荐

  1. iOS开发--XMPPFramework--好友模块(四)

    创了一个XMPP即时通讯交流群140147825,欢迎大家来交流~我们是一起写代码的弟兄~ 前面几篇,我们讨论了环境的配置,框架的导入和用户登陆,这一篇我们来说说好友模块. 在进入正题之前,我们来说下 ...

  2. Micropython Turnipbit 换挡风扇 旋转按钮控制直流电机转速

    学过物理学的我们都知道换挡风扇的原理,一般按钮控制电感分压或者电容分压,以达到控制电流的目的.那么我们可不可以使用Turnipbit模拟这个系统呢?其实是很简单的.类似于之前用Tpyboard做的智能 ...

  3. Myeclipse插件快速生成ssh项目并配置注解 在action层注入service的超详细过程

    最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来. 以前都是在applicationContext.xml 里面这样配 <bean id=& ...

  4. 杭电oj-1002-A+B Problem

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  5. WebStorm配置Vue开发环境

    虽然最新版的前端开发利器WebStorm支持了Vue,但是大部分人的WebStorm依然是默认不支持Vue的老版本(比如之前的我),所以需要手动添加WebStorm对Vue的支持.要想让WebStor ...

  6. C++实验指导

    选择 Build > Set Active Configuration 菜单,在对话框中选择 Win32 Debug. 当程序调试成功后,一般将其生成发布版,这样可使运行程序优化,方法是在上述对 ...

  7. JavaScript编码规范(1)

    参考的是百度公司的JS规范,分为两部分.这是第一部分 [建议] JavaScript 文件使用无 BOM 的 UTF-8 编码. 空格 [强制] 二元运算符两侧必须有一个空格,一元运算符与操作对象之间 ...

  8. C# 发送手机短信

    由于使用 收费 第三方 屏蔽   可能有 免费 第三方. private const string Cdkey = "8S*********************";密钥id p ...

  9. python笔记之序列

    str字符串 表达:单引号,双引号,反斜杠 'let\'s go.' #只使用单引号,外部使用单引号,内部单引号用反斜杠 "let's go. " #单双引号混合使用 长字符串 使 ...

  10. 功能性AI术语表

    算法:一套计算机要遵循的指令.一个算法可以是一个简单的单步程序也可以是一个复杂的神经网络,但是通常被用来指一个模型. 人工智能:这是一个统称.广义上说,软件意味着模仿或取代人类智能的各个方面.人工智能 ...