Java中数组和字符串的区别

数组是类似类型元素的集合,存储在一个连续的内存位置。根据数组的定义,数组可以包含基元(int, char, etc)和对象(非基元)的引用。在原始数据类型的情况下,实际值被存储在连续的内存位置,而在类的对象的情况下,实际对象被存储在堆段。在Java中,所有的数组都是动态分配的。数组的大小必须由一个int值指定,而不是longshort。数组索引从0开始,一直到n-1,其中n是数组的长度。

数组声明语法 –

type var-name[]'
// OR
type[] var-name;

一个数组声明有两个部分:typevar-nametype声明的是数组的元素类型。元素类型决定了组成数组的每个元素的数据类型。var-name声明的是数组变量的名称。像int类型的数组一样,也可以创建其他原始数据类型的数组,如:charfloatdouble…等等。

例子 –

// both are valid declarations
int intArray[]
or int[] intArray

byte byteArray[]
short shortArray[]
boolean booleanArray[]
float floatArray[]
double doubleArray[]
char charArray[]

// An array of references to object of
// the class MyClass (a class created by 
// user)
MyClass myClassArray[];

// Array of object
Object[] arrayObject,

// Array of collection of unknown type
Collection[] collectionObject

在Java中实例化一个数组

当一个数组被声明时,只有一个引用被创建。为了实际创建或给一个数组提供内存,可以像这样创建一个数组。

var-name = new type[size];

这里,type指定被分配的数据类型,size 指定数组中的元素数量,var-name是数组变量的名称。

例子 –

// Declaring an array
int intArray[]

// Allocating memory to array
int Array = new int[10];

或者

// Combining both statements in one
int[] intArray = new int[10];

使用for循环访问Java数组元素

数组中的每个元素都通过其索引来访问。索引以0开始,以(数组大小)-1结束。一个数组的所有元素都可以用Java for 循环来访问。

// Accessing the elements of the specified array
for(int i = 0; i < arr.length; i++)
   System.out.println("Element at index" + i + ": " + arr[i]);

示例代码:

// Java program to illustrate creating an array of integers, put some values in the array, and prints each value to standard output
class YiibaiDemo {
    public static void main(String args[])
    {
        // Declaring an Array of integers
        int[] arr;

        // Allocating memory for 5 integers
        arr = new int[5];

        // Initialize the first element of the array
        arr[0] = 10;
        // Initialize the second element of the array
        arr[1] = 20;

        // So on...
        arr[2] = 30;
        arr[3] = 40;
        arr[4] = 50;

        // Accessing the elements of the specified array
        for (int i = 0; i < arr.length; i++)
            System.out.println("Element at index " + i + " : " + arr[i]);
    }
}

代码运行结果:

Element at index 0 : 10
Element at index 1 : 20
Element at index 2 : 30
Element at index 3 : 40
Element at index 4 : 50

字符串

在Java中,字符串基本上被视为一个代表字符序列的对象,但它不是一个原始类型。在Java中,字符串类被提供用来创建和操作字符串。在String类中,提供了许多方法来对字符串进行不同的操作。由于数组是可变的(可以增长),字符串在Java中是不可变的。每当对一个字符串进行修改时,就会创建一个全新的字符串。
下面是在Java编程语言中创建一个字符串的基本语法 –

<String_Type> <string_variable> =  "<sequence_of_string>";

或者

<String_Type> <string_variable> =  <new> <String_Type>("<sequence_of_string>");

每当一个字符串对象被创建时,将创建两个对象—一个在堆区,一个在字符串常量池,并且字符串对象的引用总是指向堆区对象。

例子:

// Java program to illustrate String
class YiibaiDemo {
    public static void main(String args[])
    {
        // Creating a String without using new operator
        String str = "YiibaiForGeeks";

        // Prints the String
        System.out.println("String str = " + str);

        // Creating a String using new operator
        String str1 = new String("YiibaiForGeeks");

        // Prints the String
        System.out.println("String str1 = " + str1);
    }
}

运行结果:

String str = YiibaiForGeeks
String str1 = YiibaiForGeeks

数组和字符串的区别 :

编号 数组 字符串
1 数组是一种数据结构,用于存储相同数据类型的元素的集合。 字符串基本上被视为一个代表字符序列的对象。一个数组
2 数组可以保存任何数据类型。 字符串只能保存char数据类型。
3 数组的元素被存储在一个连续的内存位置。 字符串类包含一个指向堆内存的某些部分的指针,字符串的实际内容存储在内存中。
4 Java数组不以空字符结束,数组的结束元素是数组的最后一个元素。 但在Java中,默认情况下字符串是以空字符('\\0')结束的。
5 数组是可变的。 字符串是不可改变的。
6 数组的长度是固定的。 字符串的大小是不固定的。