Java - 计算字符串长度
Java - calculating String length
初始化数组时,Java询问该数组的长度。否则我们会得到编译时错误。
char[] b = new char[3];
这里3是那个数组b的长度。我们可以从b.length得到
当我们看到 String 的构造函数时 class
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
String 构造函数中的原始 参数来自哪里?那怎么得到它的长度?
在字符串长度方法中
public int length() {
return value.length;
}
我的问题#1
我们如何在不初始化数组的情况下获取长度(因为构造函数中没有数组初始化)?
我的问题#2
String s = new String("MyString");
在上面的行中,我正在为 String
class 创建实例,当我检查 String
class 的构造函数时,我遇到了以下代码构造函数
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
我的疑问是构造函数内部如何将 String class 本身作为参数?从哪里加载?
Java 允许为正在编写构造函数或其他方法的同一个 class 对象提供参数。
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
字符串 class 从散列中获取长度,因为散列有一个唯一的代码,可以告诉那里有多少个字符。
在本例中,以下语句从 "String literal" 构造 String
实例 s
"MyString"
String s = new String("MyString");
它等同于
String s = "MyString";
根据官方docs
- 字符串文字是对 class 字符串(§4.3.1、§4.3.3)实例的引用。
- 一个字符串文字总是引用 class 字符串(实习)
的同一个实例
具体针对"MyString"
的长度,编译器在解析源代码时会统计字面量中的字符数,并将该字符串中的char[]
初始化为合适的长度。然后它将创建一个具有相同长度
的新String s
附带说明一下,您可以(出于类似的原因)创建一个数组而无需自己指定长度。编译器将计算元素的数量并相应地设置长度 E.g.
char[] b = {'a', 'b', 'c'};
初始化数组时,Java询问该数组的长度。否则我们会得到编译时错误。
char[] b = new char[3];
这里3是那个数组b的长度。我们可以从b.length得到
当我们看到 String 的构造函数时 class
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
String 构造函数中的原始 参数来自哪里?那怎么得到它的长度?
在字符串长度方法中
public int length() {
return value.length;
}
我的问题#1
我们如何在不初始化数组的情况下获取长度(因为构造函数中没有数组初始化)?
我的问题#2
String s = new String("MyString");
在上面的行中,我正在为 String
class 创建实例,当我检查 String
class 的构造函数时,我遇到了以下代码构造函数
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
我的疑问是构造函数内部如何将 String class 本身作为参数?从哪里加载?
Java 允许为正在编写构造函数或其他方法的同一个 class 对象提供参数。
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
字符串 class 从散列中获取长度,因为散列有一个唯一的代码,可以告诉那里有多少个字符。
在本例中,以下语句从 "String literal" 构造 String
实例 s
"MyString"
String s = new String("MyString");
它等同于
String s = "MyString";
根据官方docs
- 字符串文字是对 class 字符串(§4.3.1、§4.3.3)实例的引用。
- 一个字符串文字总是引用 class 字符串(实习) 的同一个实例
具体针对"MyString"
的长度,编译器在解析源代码时会统计字面量中的字符数,并将该字符串中的char[]
初始化为合适的长度。然后它将创建一个具有相同长度
String s
附带说明一下,您可以(出于类似的原因)创建一个数组而无需自己指定长度。编译器将计算元素的数量并相应地设置长度 E.g.
char[] b = {'a', 'b', 'c'};