java数组的初始化问题

问题描述

java数组的初始化问题

java数组在使用之前一定要初始化吗?为什么?如果不进行初始化,底层的状态是什么?使用的话会发生什么错误?

解决方案

java数组不初始化就使用会报错,这点和c等语言不同,这是语言的特点,在安全方面做出了保证。c则不会报错,不过增加的风险。

解决方案二:

数组的初始化分为两种!
即为:静态初始化和动态初始化!
简而言之,静态初始化就是,由程序员去指定显式(注意是显式)指定每个元素的值,系统自动判定数组长度。
如下:
int[] array = {1,2,3};

?
动态初始化,则只需要指定长度,系统为元素自动分配初始值!
int[] array=new int[3];

这样就是动态初始化。
那么这里就有些问题需要注意!......
答案就在这里:[ java ] 关于数组的初始化问题!
----------------------

解决方案三:

数组元素不要初始化,会自动填0
但是数组本身需要,否则数组引用指向null,会丢出null pointer exception

解决方案四:

定义在类中不需要初始化,但定义在方法中就需要初始化

解决方案五:

如果是类里面的话,使用会报nullpointer exception,如果定义在方法中不初始化就会编译错误

解决方案六:

任何对象不初始化就是null(楼主问的应该就是这个),当然无法直接使用。除非你把他当null使用。

即便在C中也如此

int a[];

a能用吗?当然不能!

至于
int a[3];

这相当于java中
int[] a=new int[3];

这样当然可以用了。

从楼主选择的答案看,楼主还是没完全搞明白

时间: 2024-09-20 00:29:52

java数组的初始化问题的相关文章

关于Java数组声明、创建、初始化的相关介绍_java

本文讲述了Java数组的几个相关的方面,讲述了对Java数组的声明.创建和初始化,并给出其对应的代码.一维数组的声明方式:type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数] 实例:TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { i

Java数组声明、创建、初始化基础_java

一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5] ; for(i = 0 ; i

Java 数组声明、创建、初始化详解_java

一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5] ; for(i = 0 ; i

Java数组 不一定要初始化也可正常使用

数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组.Java语言的数组变量是引用类型的变量,因此具有Java独有的特性. 在正常的Java开发中,使用Java数组之前,我们都会对数组进行初始化,为数组中的元素分配内存空间.赋值等,但Java数组一定要初始化吗?不初始化可以 么? 其实,java的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量,比如下面这个例子: public class T {

Java数组一定要初始化才能使用吗?

数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组.Java语言的数组变量是引用类型的变量,因此具有Java独有的特性. 在正常的Java开发中,使用Java数组之前,我们都会对数组进行初始化,为数组中的元素分配内存空间.赋值等,但Java数组一定要初始化吗?不初始化可以 么? 其实,java的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量,比如下面这个例子: public class T {

关于Java 数组内存分配一点认识

 可能Java 数组大家都很熟悉,最近我遇到了一个关于Java 数组内存分配的问题.         呵呵.突然就发现许多书上"基本数据类型存储在栈内存当中,对象则保存在堆内存"这句话完全是错误的.下面是个简单的例子代码: public class Test { public static void main(String[] argv) { // 静态初始化数组 String[] names = { "Michael", "Orson", &q

新手入门:Java数组特点及基本使用技巧

技巧|数组 1.关于数组的特点 1)在Java中,无论使用数组或容器,都有边界检查.如果越界操作就会得到一个RuntimeException异常. 2)数组只能保存特定类型.数组可以保存基本类型,容器则不能.容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理. 3)容器类只能保存对象的引用.而数组既可以创建为直接保存基本类型,也可以保存对象的引用.在容器中可以使用包装类,如Integer.Double等来实现保存基本数据类型值. 4)对象数组和基本类型数组在使用上几乎是相同的:

java数组

数组在编程语言中是一种常见的数据结构或者说数据类型,数组中可以存储多个数据,这些数据叫做数组元素.数组是引用类型,数组中的元素可以是任意类型的,但是一个数组中的所有元素却必须是同一类型. 通常通过数组元素的索引来访问数组元素,包括为数组中的元素赋值和取出数组中的元素. 数组初始化以后,他所占用的内存就固定下来了,也就是长度将不可变,即使把该数组中的数据全部清空,他所占的内存依旧是那么多. 定义数组有两种方式:类型 [] 数组名 或 类型 数组名 [],常用的是第一种.定义数组仅仅是定义了一个引用

Java数组内存分析

1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态初始化:显式指定每个数组元素的初始值,系统决定数组长度 String[] books = new String[]{"疯狂Java讲义","Thinking in Java","Java核心技术卷"}; String[] names = new String[]{"张三","李四","