数组和字符串

Anonim

两者之间的主要区别在于数组可以具有任何长度的任何数据类型,而字符串通常是以空字符“ 0”结尾的ASCII字符。两者在各种编程语言中的实现方式上都有很大不同。在Java中,数组和字符串的工作方式与在C / C ++中的工作方式完全不同。本文介绍了Arrays和Strings之间的公正比较。

什么是数组?

许多应用程序涉及大量数据并处理如此大量的数据,我们需要一种强大的数据类型,以便有效地存储和访问数据项。这就是阵列出现的地方。数组是一个特殊变量,它引用由通用名称引用的类似变量的顺序集合。在技​​术术语中,它是共享单个名称的相同基本类型的元素的有序集合。简而言之,它提供了一种将相关信息分组在一起的便捷方法。 Java中的数组与C / C ++中的数组完全不同。

什么是字符串?

字符串是一系列字符,表示为以特殊字符“ 0”(空字符)终止的单个数据项。在Java和C ++中,字符串是类,它们的行为不同。除了char类型之外,字符串的声明类似于数组。 String是具有通用名称的连续值序列。与数组不同,字符串是不可变的,这意味着它们的值在分配后无法修改。一旦将值分配给字符串,就无法更改字符串的原始内容。它们是编程范例中最常用的类之一。

数组和字符串之间的区别

定义

数组是相同基类型元素的固定大小顺序集合。它只是一个like-type变量的集合,它们共享一个名称,可用于表示名称列表或数字列表。字符串类似于数组,但有一些例外。它是一系列字符,表示为单个数据项。

存储

数组和字符串之间的主要区别之一是它们如何存储在内存中。为阵列分配连续的存储器块意味着它表示连续的存储器块。数组的元素连续存储在增加的存储位置中。当字符串声明为字符数组时,字符串会像其他类型的数组一样存储。字符串类包含指向堆内存某些部分的指针,其中字符串的实际内容存储在内存中。

两者之间的主要区别之一是字符串是不可变的,这意味着一旦分配了字符串对象,就无法在内存中更改对象的值。不可变简单地指对象的状态,在创建后不能修改。一旦将值分配给字符串,就无法修改字符串的原始内容。它只是意味着新值不能在存储先前值的存储器位置中分配相同的地址。另一方面,数组是可变的,意味着即使在创建字段之后也可以更改或修改字段。

数据类型

数组是表示数据或存储和访问相同或不同数据类型的对象的最有效的数据结构。它们是动态创建的,可以分配给任何数据类型的变量。在java中,可以创建一个数组以保存不同的数据类型。它可以包含原语和引用。数组是特殊变量,一次可以容纳多个值。另一方面,字符串只能保存最常用数据类型的字符数据。字符串可以包含任何字母和数字序列。

尺寸

数组的长度在创建时建立,一旦完成,长度就固定了。简单地说,数组的长度具有固定的大小,这意味着它可以保持固定数量的单个类型的值。 C中不允许使用可变大小的数组。一旦分配了数组,它就是固定大小。字符串的大小是可变的,这意味着如果它是char指针,则可以更改它。

数组与字符串:比较图表

数组与字符串的摘要

字符串和数组非常相似,除了数组的长度是固定的,而字符串可以有可变数量的元素。从技术上讲,数组是一种特殊类型的变量,一次可以容纳多个值。它们是类似数据类型的元素的顺序集合,而字符串是用于表示文本而不是数字的字符序列。此外,字符串是不可变的,这意味着一旦创建了对象的值就不能被修改,而数组是可变的,这意味着可以修改字段。简单地说,数组是类似变量的集合,而字符串是由单个数据类型表示的字符序列。