📜  Java数组和字符串的区别

📅  最后修改于: 2021-09-11 03:51:33             🧑  作者: Mango

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

数组声明语法:

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

数组声明有两个组成部分:类型和变量名。 type声明数组的元素类型。元素类型决定了组成数组的每个元素的数据类型。 var-name声明数组变量的名称。像 int 类型的数组一样,我们也可以创建其他原始数据类型的数组,如 char、float、double 等。

例子:

// 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 e 指定数组中元素的数量, 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 开始,到 (array size) – 1 结束。可以使用Java for Loop 访问数组的所有元素。

// 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
// Java program to illustrate creating an array
// of integers, put some values in the array,
// and prints each value to standard output
class GFG {
    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]);
    }
}


Java
// Java program to illustrate String
class GFG {
    public static void main(String args[])
    {
        // Creating a String without using new operator
        String str = "GeeksForGeeks";
  
        // Prints the String
        System.out.println("String str = " + str);
  
        // Creating a String using new operator
        String str1 = new String("GeeksForGeeks");
  
        // Prints the String
        System.out.println("String str1 = " + str1);
    }
}


输出

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 类来创建和操作字符串。在 String 类中,提供了许多方法来对字符串执行不同的操作。由于数组是可变的(可以增长),因此字符串在Java是不可变的。每当对 String 进行更改时,都会创建一个全新的 String。

下面是在Java编程语言中创建 String 的基本语法。

句法:

  = 
"";

或者

  = 
 ("");

每当创建一个 String 对象时,都会创建两个对象——一个在堆区中,一个在 String 常量池中,并且 String 对象引用始终指向堆区对象。

例子:

Java

// Java program to illustrate String
class GFG {
    public static void main(String args[])
    {
        // Creating a String without using new operator
        String str = "GeeksForGeeks";
  
        // Prints the String
        System.out.println("String str = " + str);
  
        // Creating a String using new operator
        String str1 = new String("GeeksForGeeks");
  
        // Prints the String
        System.out.println("String str1 = " + str1);
    }
}
输出
String str = GeeksForGeeks
String str1 = GeeksForGeeks

数组和字符串的区别:

S.NO.

Array

String

01. An array is a data structure that stores a collection of elements of the same data type. A string is basically treated as an object which represents a sequence of characters. An array
02. Array can hold any of the data types. But, the String can hold only a char data type.
03. The elements of the array are stored in a contiguous memory location. A string class contains a pointer to some part of the heap memory where the actual contents of the string are stored in memory.
04. Java array not ended with a null character, the end element of the array is the last element of the array. But by default String is ended with null (‘\0’) character in Java.
05. Arrays are mutable. Strings are immutable.
06. The length of the array is fixed. The size of the string is not fixed.

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程