Java一维数组和二维数组元素默认初始化值的判断方式
作者:oneMoe 发布时间:2022-03-08 21:17:49
标签:Java,一维数组,二维数组,初始化
一、数组与数组元素
Java中数组是引用类型
数组的元素可以是基本类型也可以是引用类型,弄清数组元素的类型可以帮助我们去理解数组元素默认初始化
二、一维数组
一维数组元素默认初始化值的情况分为两种,元素为基本数据类型和引用数据类型
1.元素为基本数据类型时
整型类型(byte、short、int、long) 默认的初始值都为0
浮点类型(float、double) 默认的初始值都为0.0
布尔型(boolean) 默认的初始值为flase
字符类型(char) 默认的初始值为0(空字符)
注意这里的0不同于整型类型的0更不是字符’0’,这指的是下图ASCII码表中十进制的0
现在我们测试如下代码加深理解
public class Test {
public static void main(String[] args) {
char[] a = new char[2];
if(a[0] == 0) {
System.out.println("这是判断0的" + a[0] + "测试!");
}
if(a[0] == '0') {
System.out.println("这是判断字符'0'的" + a[0] + "测试!");
}
}
}
运行结果如下
通过结果我们发现a[0]的值判断为0而非字符’0’,打印输出时a[0]其实是一个空字符(这不是空格!!!)
2. 数组元素为引用类型时
元素为引用类型时默认的初始值都为null
三、二维数组
Java中二维数组其实用一维数组作为数组的元素来构成的
二维数组默认初始化值的判读分为两种情况(下面两种情况的书写格式用int表示,int可以换成其他的数据类型)
1. int[][] arr = new int[2][2]
①外层元素(arr[0],arr[1]):地址值
②内层元素(arr[0][0]):利用一维数组默认初始值判断
2. int[][] arr = new int[2][]
①外层元素(arr[0],arr[1]):地址值
②内层元素(arr[0][0]):空指针异常
我们结合下面的图来理解,因为二维数组其实是数组的数组,外层保存的是地址值,内层自然就可以按照一维数组判断
来源:https://blog.csdn.net/qq_52040525/article/details/123854285


猜你喜欢
- 一、线程间等待与唤醒机制wait()和notify()是Object类的方法,用于线程的等待与唤醒,必须搭配synchronized 锁来使
- 演示1 - 代理创建器public class A17 { public static void main(Str
- 一、国际惯例,先看下效果图二、不跟你多bb直接上布局文件代码<?xml version="1.0" encodin
- Java ByteArrayInputStream流一、ByteArrayInputStream流定义API说明:ByteArrayInpu
- 主要目的是按后退键的时候,让程序能够退出。 实现起来的思路: 1.捕获到后退键事件就触发。@Override public bo
- 基本步骤三数取中在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。在此我们采用三数取中法,也就是取左端、中间
- 背景:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了
- dart 是一个面向对象的语言;面向对象有继承封装多态dart的所有东西都是对象,所有的对象都是继承与object类一个类通常是由属性和方法
- ThreadLocal与线程成员变量还有区别,ThreadLocal该类提供了线程局部变量。这个局部变量与一般的成员变量不一样,Thread
- 具体代码如下所示:import java.util.ArrayList;import java.util.List;import java.
- 通过拍照或相册中获取图片,并进行裁剪操作,然后把图片显示到ImageView上。 当然也可以上传到服务器(项目中绝大部分情况是上传
- 这篇文章主要介绍了通过实例解析JMM和Volatile底层原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- springmvc的图片上传1.导入相应的pom依赖 <dependency> <groupId>co
- Quartz简介Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的
- Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebW
- 本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下一、阐述进制间转换:十六进制、十进制、八进制、二进制。长度间转换:
- bootstrap.yml和bootstrap.properties优先级直接先说结论 bootstrap.properties 优于boo
- 东西不多,但一般项目够用了。public class RegularUtil { //身份证 publi
- 这篇文章使用Java组件显示窗口,在通过输入的图片url地址在窗口中显示出来,可作为一个网络图片查看器,感兴趣的可以打包成jar或者.exe
- Java 常量池的实例详解Java的常量池中包含了类、接口、方法、字符串等一系列常量值。常量池在编译期间就已经确定,并保存在*.class文