JAVA笔记

数组

初始化一维数组

Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。

能不能只分配内存空间,不赋初始值呢?

不行,一旦为数组的每个数组元素分配了内存空间,每个内存空间里存储的内容就是该数组元素的值,即使这个内存空间存储的内容为空,这个空也是一个值(null)。不管以哪种方式来初始化数组,只要为数组元素分配了内存空间,数组元素就具有了初始值。初始值的获得有两种形式,一种由系统自动分配,另一种由程序员指定。

数组在初始化数组的同时,可以指定数组的大小,也可以分别初始化数组中的每一个元素。在 Java 语言中,初始化数组有以下 3 种方式。

1)使用 new 指定数组大小后进行初始化

使用 new 关键字创建数组,在创建时指定数组的大小。语法如下:

type[] arrayName = new int[size];

创建数组之后,元素的值并不确定,需要为每一个数组的元素进行赋值,其下标从 0 开始。

例 2

创建包含 5 个元素的 int 类型的数组,然后分别将元素的值设置为 1、2、3、5 和 8。代码如下:

int[] number = new int[5];number[0] = 1;number[1] = 2;number[2] = 3;number[3] = 5;number[4] = 8;

如果程序员只指定了数组的长度,那么系统将负责为这些数组元素分配初始值。指定初始值时,系统按如下规则分配初始值。

  • 数组元素的类型是基本类型中的整数类型(byte、short、int 和 long),则数组元素的值是 0。
  • 数组元素的类型是基本类型中的浮点类型(float、double),则数组元素的值是 0.0。
  • 数组元素的类型是基本类型中的字符类型(char),则数组元素的值是‘\u0000’。
  • 数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值是 false。
  • 数组元素的类型是引用类型(类、接口和数组),则数组元素的值是 null。
2)使用 new 指定数组元素的值

使用上述方式初始化数组时,只有在为元素赋值时才确定值。可以不使用上述方式,而是在初始化时就已经确定值。语法如下:

type[] arrayName = new type[]{值 1,值 2,值 3,值 4,• • •,值 n};
例 3

更改例 2 中的代码,使用 new 直接指定数组元素的值。代码如下:

int[] number = new int[]{1, 2, 3, 5, 8};

上述代码的效果等价于例 2 的效果。

注意:不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值,这样会造成代码错误。例如下面代码:

int[] number = new int [5] {1,2,3,4,5};
3)直接指定数组元素的值

在上述两种方式的语法中,type 可以省略,如果已经声明数组变量,那么直接使用这两种方式进行初始化。如果不想使用上述两种方式,那么可以不使用 new 直接指定数组元素的值。语法如下:

type[] arrayName = {值 1,值 2,值 3,...,值 n};
例 4

在前面例子的基础上更改代码,直接使用上述语法实现 number 数组的初始化。代码如下:

int[] number = {1,2,3,5,8};

使用这种方式时,数组的声明和初始化操作要同步,即不能省略数组变量的类型。如下的代码就是错误的:

纯文本复制
int[] number;number = {1,2,3,5,8};

charAt:

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

toCharArray:

将字符串转换为字符数组。

单引号双引号

单引号引的数据 是char类型的

双引号引的数据 是String类型的

短路

else if (stack.isEmpty() || c!= stack.pop()) return false;

上例:

空判定一定要在前面,否则栈先弹出再判断,判断就会有误。并且在判断语句中也可以执行pop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值