当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Array和String的区别用法及代码示例


array 是存储在连续内存位置的类似类型元素的集合。数组可以包含基元(int、char 等)以及类的对象(非基元)引用,具体取决于数组的定义。在原始数据类型的情况下,实际值存储在连续的内存位置中,而在类对象的情况下则存储在 actual objects are stored in the heap segment 中。在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

Instantiating an Array in Java

声明数组时,仅创建一个引用。要实际创建数组或为其提供内存,我们可以像这样创建一个数组:

var-name = new type[size];

这里,类型指定分配的数据类型,尺寸e 指定数组中元素的数量,并且var-name是数组变量的名称。

例子:

// Declaring an array
int intArray[]

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

OR

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

Accessing Java Array Elements using for Loop

数组中的每个元素都可以通过其索引来访问。索引从 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]);
    }
}
输出
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

String

在 Java 中,字符串本质上被视为表示字符序列的对象,但它不是原始类型。在Java中,提供了String类来创建和操作字符串。在String类中,提供了许多方法来对字符串执行不同的操作。由于数组是可变的(数组元素可以更改),因此 Java 中的字符串是不可变的。每当对字符串进行更改时,就会创建一个全新的字符串。

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

句法:

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

OR

<String_Type> <string_variable> = 
<new> <String_Type>("<sequence_of_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. 数组是一种存储相同数据类型的元素集合的数据结构。 字符串本质上被视为表示字符序列的对象。数组
02. 数组可以保存任何数据类型。 但是,String 只能保存 char 数据类型。
03. 数组的元素存储在连续的内存位置中。 字符串类包含指向堆内存某些部分的指针,其中字符串的实际内容存储在内存中。
04. Java数组不以空字符结束,数组的结束元素是数组的最后一个元素。 但默认情况下,Java 中的 String 以 null (‘\0’) 字符结尾。
05. 数组是可变的。 字符串是不可变的。
06. 数组的长度是固定的。 字符串的大小不固定。


相关用法


注:本文由纯净天空筛选整理自Satyabrata_Jena大神的英文原创作品 Difference between Array and String in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。