`
zhuobinzhou
  • 浏览: 136593 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类

java数组是静态的

阅读更多

java数组是静态的,而javaScript的数组是动态的。

当数组被初始化后,该数组的长度就不可变了。java程序中的数组必须经过初始化才可以使用。所谓初始化,就是为数组对象的元素分配内存空间,并为每个数组元素指定初始值。

 

String[] str ;//声明一个字符串数组,未分配内存
System.out.println(str);
//此时IDE会报错:the local variable str may have been initiated

 

为指定初始值时,系统会自动为其初始化,以下是各种数据类型以及其对应的初始化值:

byte、short、int、long——0

float、double——0

char——'\u0000'

boolean——false

class、interface、array——null

 

public class ArrayDemo1 {
	public static void main(String[] args) {
		int[] i = new int[10];
		for(int ii : i ){
			System.out.print(ii + "\t");
		}
	}

}
/*out:
	0	0	0	0	0	0	0	0	0	0	*/

 

数组的初始化有以下两种方式:

1、静态初始化:由程序员显式指定每个数组元素的初始值,由系统决定数组长度。

2、动态初始化:由程序员指定数组长度,有系统为数组元素分配初始值。

 

不管什么方式,一旦初始化后,其长度就不可变,可以通过数组length属性(注意与length()的区别)来访问数组的长度。

public class ArrayDemo1 {
	public static void main(String[] args) {
		//静态初始化数组
		String[] str0 = new String[]{
			"静","态","初","始","化"	
		};//此时new String[]这里的 []是不能填入数据的
		for(String s : str0){
			System.out.print(s);
		}
		System.out.println();
		//动态初始化数组
		String[] str1 = new String[4];
		System.out.println(str1.length);
		String str2 = new String("123");
		System.out.println(str2.length());//调用String对象的length()方法
	}

}
/*out:
静态初始化
4
3*/

 

从上可以看出:

1、对于静态初始化方式,我们无需指定数组的长度,其长度又系统分配。

2、对于动态初始化,我们只需指定数组的长度,即为数组的每个元素分配内存空间,系统为其赋默认值。

 

需要注意的是:java的数组变量是一种引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象。有 时候我们可以改变一个数组变量所引用的数组对象。这样子就造成了数组长度可以改变的假象。

 

public class ArrayDemo1 {
	public static void main(String[] args) {
		//静态初始化数组
		String[] str0 = new String[]{
			"静","态","初","始","化"	
		};
		String[] str1 = new String[]{
			"静","态"	
		};
		System.out.println(str0.length);
		System.out.println(str1.length);
		System.out.println("=========");
		str1 = str0;//将str0的引用传递给str1
		System.out.println(str0.length);
		System.out.println(str1.length);	
	}
}
/*out:
	5
	2
	=========
	5
	5
*/

 

 引用类型数组的初始化:

引用类型数组的数组元素依然是引用类型,因此数组元素里存储的还是引用,它指向另一块内存。

1
1
分享到:
评论

相关推荐

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

    52.java二维数组静态初始化.zip

    52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....

    java数组初始化详解

    在 Java 中,数组的初始化可以分为静态初始化和动态初始化。 静态初始化是指在定义数组时同时初始化数组的值,例如:`int[] a = {1, 2, 3};`。 动态初始化是指在定义数组时不初始化数组的值,而是在后续的代码中...

    Java数组与内存控制

    ### Java数组与内存控制 #### 一、Java数组在内存分配方面的知识 ##### 1.1 数组初始化 - **声明数组的时候如何分配内存:** - 在Java中,数组的声明并不直接分配内存,而仅仅是创建了一个数组引用变量。例如: ...

    Java数组越界问题实例解析

    Java数组越界问题实例解析 在Java中,数组是一种非常重要的数据结构,它广泛应用于各种场景中。然而,在使用数组时,开发者最容易遇到的问题之一就是数组越界问题。数组越界问题是指在访问数组时,索引值超出了数组...

    java数组相关知识点.zip

    java数组 Java数组是Java编程中的一个核心概念,它是用于存储一系列同类型数据的数据结构。在Java中,数组是一个引用数据类型,可以存储基本数据类型(如int、char、double等)或对象类型的元素。数组在Java中扮演着...

    5-Java数组与方法

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...

    java数组

    Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...

    java数组函数(摘自JAVA编程思想)

    通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...

    java 数组和字符串

    ### Java数组和字符串详解 #### 实验目标与背景 本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,...

    Java 数组练习

    Java数组是编程基础中的核心概念,它是一种存储固定数量同类型元素的数据结构。在这个"Java 数组练习"中,我们主要关注的是如何在Java中创建、初始化、操作和理解数组。下面将详细介绍Java数组的相关知识点。 1. **...

    第03讲 JAVA数组.ppt

    【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...

    java语法\Java数组声明、创建、初始化

    Java数组的初始化有三种方式:动态初始化、静态初始化和默认初始化。 动态初始化 动态初始化是指数组定义与为数组分配空间和赋值的操作分开进行。例如,`int a[]; a = new int[3];`创建了一个名为`a`的整型数组,...

    Java数组讲解

    ### Java数组讲解 #### 1. 数组基本概念与初始化 - **定义**: 数组是一种基本的数据结构,用于存储相同类型的多个元素。这些元素在内存中是连续存储的。 - **初始化**: 可以通过两种方式进行初始化:动态初始化和...

    操作java数组的常用工具类

    ### 操作Java数组的常用工具类详解 在Java编程中,数组是一种常见的数据结构,用于存储固定大小的同类型元素集合。为了简化数组的操作并提高代码的效率与可读性,Java提供了`Arrays`类,这是一个包含了一系列静态...

    java数组资料

    "java数组资料"这个主题涵盖了Java基础知识的核心技术,特别是关于数组的知识。数组允许程序员在单个变量中存储一组相同类型的数据,这对于处理批量数据或者执行批量操作非常有用。 1. **数组的概念与定义** - ...

    java数组与方法数组的定义及使用

    在Java编程语言中,数组是一种特殊的对象,它用于存储同类型的多个数据项。数组的定义、创建和使用是Java编程的基础,而方法数组则引入了更高级的概念,允许我们在一个数组中存储方法引用。让我们深入探讨这两个主题...

    java数组总结共9页.pdf.zip

    Java数组是Java编程语言中的基本概念,它是存储同类型元素集合的数据结构。在这个"java数组总结共9页.pdf.zip"的文档中,我们很可能会找到关于Java数组的全面概述,包括其定义、创建、初始化、操作以及一些重要的...

Global site tag (gtag.js) - Google Analytics