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
*/
引用类型数组的初始化:
引用类型数组的数组元素依然是引用类型,因此数组元素里存储的还是引用,它指向另一块内存。
分享到:
相关推荐
44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...
52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....
在 Java 中,数组的初始化可以分为静态初始化和动态初始化。 静态初始化是指在定义数组时同时初始化数组的值,例如:`int[] a = {1, 2, 3};`。 动态初始化是指在定义数组时不初始化数组的值,而是在后续的代码中...
### Java数组与内存控制 #### 一、Java数组在内存分配方面的知识 ##### 1.1 数组初始化 - **声明数组的时候如何分配内存:** - 在Java中,数组的声明并不直接分配内存,而仅仅是创建了一个数组引用变量。例如: ...
Java数组越界问题实例解析 在Java中,数组是一种非常重要的数据结构,它广泛应用于各种场景中。然而,在使用数组时,开发者最容易遇到的问题之一就是数组越界问题。数组越界问题是指在访问数组时,索引值超出了数组...
java数组 Java数组是Java编程中的一个核心概念,它是用于存储一系列同类型数据的数据结构。在Java中,数组是一个引用数据类型,可以存储基本数据类型(如int、char、double等)或对象类型的元素。数组在Java中扮演着...
在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...
Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...
通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...
### Java数组和字符串详解 #### 实验目标与背景 本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,...
Java数组是编程基础中的核心概念,它是一种存储固定数量同类型元素的数据结构。在这个"Java 数组练习"中,我们主要关注的是如何在Java中创建、初始化、操作和理解数组。下面将详细介绍Java数组的相关知识点。 1. **...
【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...
Java数组的初始化有三种方式:动态初始化、静态初始化和默认初始化。 动态初始化 动态初始化是指数组定义与为数组分配空间和赋值的操作分开进行。例如,`int a[]; a = new int[3];`创建了一个名为`a`的整型数组,...
### Java数组讲解 #### 1. 数组基本概念与初始化 - **定义**: 数组是一种基本的数据结构,用于存储相同类型的多个元素。这些元素在内存中是连续存储的。 - **初始化**: 可以通过两种方式进行初始化:动态初始化和...
### 操作Java数组的常用工具类详解 在Java编程中,数组是一种常见的数据结构,用于存储固定大小的同类型元素集合。为了简化数组的操作并提高代码的效率与可读性,Java提供了`Arrays`类,这是一个包含了一系列静态...
"java数组资料"这个主题涵盖了Java基础知识的核心技术,特别是关于数组的知识。数组允许程序员在单个变量中存储一组相同类型的数据,这对于处理批量数据或者执行批量操作非常有用。 1. **数组的概念与定义** - ...
在Java编程语言中,数组是一种特殊的对象,它用于存储同类型的多个数据项。数组的定义、创建和使用是Java编程的基础,而方法数组则引入了更高级的概念,允许我们在一个数组中存储方法引用。让我们深入探讨这两个主题...
Java数组是Java编程语言中的基本概念,它是存储同类型元素集合的数据结构。在这个"java数组总结共9页.pdf.zip"的文档中,我们很可能会找到关于Java数组的全面概述,包括其定义、创建、初始化、操作以及一些重要的...