我们都很熟悉Java中的数组,它具有查询快,增删慢的特点。但是通常我们自认为很了解它的用法,却容易忽略一些小细节。今天通过一段代码来简单了解数组初始化中的一些我们容易忽略的地方。

package dailytest;

import org.junit.Test;

public class ArrayTest {

    /**
* 数组的初始化方式:
* 动态初始化:int[] arr = new int[5]; 即指定数组长度,由系统给出初始值
* 长度必须指定在右侧
*
* 静态初始化:给定初始值,由系统判断长度,有两种形式:
* int[] arr2 = {1,2,3,4,5};
* int[] arr3 = new int[]{1,2,3,4,5};
*
* 两种形式不能混用,即长度与{}不能共存
*/
@Test
public void test01() {
int[] arr1 = new int[5];
int[] arr2 = {1,2,3,4,5};
int[] arr3 = new int[]{1,2,3,4,5}; //int[] arr4 = new int[5]{1,2,3,4,5};
//int[] arr5 = new int[5]{};
//int[5] arr6 = new int[][];
} /**
* 二维数组
* []的位置很灵活
*/
@Test
public void test02() {
int[][] arr1 = new int[5][6];
//System.out.println(arr1[0][0]); // int[] arr2[] = new int[5][6];
int [] arr3[] = new int[5][6];
int []arr4[] = new int[5][6];
int arr5[] [] = new int[5][6]; /**
* 对于二维数组,只指定一个长度,即一维数组的长度是可以的,它代表5个数组,每个数组里的值都是null
* 为什么是null而不是0
* 因为arr6[0]里面放的是数组,数组的初始化值是null
*/
int[][] arr6 = new int[5][];
for (int i = 0; i < arr6.length; i++) {
System.out.println(arr6[i]); //null
}
//System.out.println(arr6[0][0]); //NullPointException } }

Java 代码学习之数组的初始化的更多相关文章

  1. Java基础学习(二)—数组

    一.数组的概念 定义: 数组是存储同一种数据类型的多个元素的集合. 数组既可以存储基本数据类型,也可以存储引用数据类型. 格式: 格式1: 数据类型[] 数组名; 格式2: 数据类型 数组名[]; 这 ...

  2. java基础学习总结——数组

    一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组的元素可以是任何数据类型,包括基 ...

  3. Java基础学习之数组基本属性和方法

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

  4. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  5. Java菜鸟学习笔记--数组篇(二):数组实例&args实例

    基本类型实例 //1.定义一个一维数组,先声明,在分配空间 int []number;//生命,没有初始化,number=null number=new int[5];//初始化为默认值,int默认值 ...

  6. Java SE学习之数组——匿名数组和不规则数组

    本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 近期偶然遇到了数组的问题,学习了匿名数组和不规则数组. 匿名数组适用于仅仅使用一次的情况:不规则数组适用是每行数据总数不确定的情 ...

  7. [改善Java代码]避免在构造函数中初始化其他类

    建议35: 避免在构造函数中初始化其他类 构造函数是一个类初始化必须执行的代码,它决定着类的初始化效率,如果构造函数比较复杂,而且还关联了其他类,则可能产生意想不到的问题,我们来看如下代码: publ ...

  8. java基础入门之数组循环初始化

    /* Name:数组循环化 Power by Stuart Date:2015-4-23 */public class ArrayTest02{ public static void main (St ...

  9. Java 代码学习之理解数据类型中的坑

    package dailytest; import org.junit.Test; public class DataTypeTest { /** * 当有字符串第一次参与运算后,+成了连接符的作用 ...

随机推荐

  1. windows环境中利用NMake工具编译连接C++源代码

    这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章. 最近在写代码的时候,需要通过命令的方式来执行生 ...

  2. Game of Connections

    Game of Connections Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...

  3. Linux中常见问题(磁盘 定时任务)

    第1章 linux无法上网 1)     第一步,先ping域名. ping www.baidu.com 2)再ping一个公网ip , ping 223.5.5.5/223.6.6.6/114.11 ...

  4. [J2EE] 有关 PreparedStatement

    今天同事遇到一个问题,简言之,就是PreparedStatement的预编译究竟是怎么发挥作用的... 嘿嘿,说来惭愧,我以前就只知道PreparedStatement比Statement要好,要防S ...

  5. 在游览器上可以连网,Ionic打包后不能连接网络

    在游览器上可以连网,Ionic打包后不能连接网络.可能是没有安装cordova-plugin-whitelist插件.  解决方案:

  6. [Bayesian] “我是bayesian我怕谁”系列 - Gaussian Process

    科班出身,贝叶斯护体,正本清源,故拿”九阳神功“自比,而非邪气十足的”九阴真经“: 现在看来,此前的八层功力都为这第九层作基础: 本系列第九篇,助/祝你早日hold住神功第九重,加入血统纯正的人工智能 ...

  7. C#数据类型和SQL数据类型对照

    C#操作SQL Float类型,数据会多很多小数,原来是C#的float和sql的float类型不一致        /// <summary>        /// 数据库中与C#中的数 ...

  8. 使用Supervisor守护Python进程

    1.需求 现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,就需要使用到了Supervisor.Supervisor起到守护 ...

  9. DNS生效时间

    http://blog.itechol.com/space-33-do-blog-id-908.html http://www.madboa.com/geek/dig/ Dig简介 Dig是一个在类U ...

  10. JS组件系列——Gojs组件,前端图形化插件之利器

    前言:之前分享过两篇关于流程画图的前端组件,使用的jsPlumb.这个组件本身还不错,使用方便.入门简单.轻量级,但是使用一段时间下来,发现一些弊病,比如组件不太稳定,初始进入页面的时候连线的样式有时 ...