📜  Java数组和字符串之间的区别

📅  最后修改于: 2021-05-14 00:35:17             🧑  作者: Mango

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

数组声明语法:

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

数组声明有两个组成部分:类型和var-name。类型声明数组的元素类型。元素类型确定组成数组的每个元素的数据类型。 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指定要分配的数据的类型, siz 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开头,以(数组大小)– 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字符串是不可变的。每当更改字符串时,都会创建一个全新的字符串。

下面是使用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.