Java中String类型有没有长度的限制
严格来说,String确实有长度限制。
1、String内部使用一个char[]数组来存放字符串的内容,数组下标是整型(也可以参考String的构造方法String(char value[], int offset, int count) ,可以知道字符数量是用整型表示),整型(Java规定32位)表示范围是2G,也就是说,Java数组最大的长度是2G,即字符串不能超过2G个字符。
2、Java的数组大小还有没有别的限制?事实上数组大小不能超过Java堆的大小,而Java堆的最大尺寸可以通过启动参数指定,如果Java堆开得足够大,数组的最大长度是可以不断增大的。
3、所以,理论上,字符串不能超过2G个字符,少于2G个字符都有可能。
go语言如何定义数组长度
在Go语言中,数组的长度是在声明数组时定义的。可以使用以下语法来定义一个指定长度的数组:
```go
var arr [length]dataType
```
其中,`length`是数组的长度,`dataType`是数组中元素的数据类型。
例如,定义一个包含5个整数的数组:
```go
var arr [5]int
```
还可以通过以下方式初始化数组的值:
```go
var arr = [5]int{1, 2, 3, 4, 5}
```
或者使用以下简化方式:
```go
arr := [5]int{1, 2, 3, 4, 5}
```
普通数组最长可以是多少
ANSI C89标准中规定,一个数组的尺寸(下标)必须是一个整型常量表达式以便于在编译时计算大小,而这里的所谓常量(或者常量表达式的运算结果),一般是指unsigned int。
16位编译器(比如Turbo C)中,unsigned int为16位,因此数组最多32767个数据。32位编译器(比如Visual C++ 6.0)中,unsigned int为32位,因此数组最多4294967295个数据。以上结论为理论值。实际上,在VC++中,我们定义一个259025元素的整型数组,虽然可以编译通过,但是我们仍将得到一个运行时错误(runtime error)。这主要跟堆和栈的大小有关使用方法length()可以获得字符串或数组的长度
不同语言获取字符串或者数组长度的方式不一样的。
对于python,用len(),如下:
# 字符串长度
str_list = "abcdefghijklmn"
print(len(str_list))
# 数组长度
a = [1,2,3,4,5,6,7]
print(len(a))
对于java,用length(),如下
String ls = new String("killkillkill")
(
ls.length())