Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串类与其他类有何不同?_Java_String - Fatal编程技术网

Java 字符串类与其他类有何不同?

Java 字符串类与其他类有何不同?,java,string,Java,String,我们可以做到: String String=“ourstring” 但我们不能为用户定义的类创建这样的对象: UserClass uc=”“ Java如何允许我们只直接为Java.lang.String类设置值?“是从内部字符串池返回字符串对象的语法糖 将其视为例外而非规则。常规对象指定需要采用以下形式 MyObject myObject = new MyObject(); 有关此主题的详细信息,请查看联机Javadoc: 字符串在Java中很好。它们可以像原语一样使用,但在内部是对象。有一个

我们可以做到:

String String=“ourstring”

但我们不能为用户定义的类创建这样的对象:

UserClass uc=”“

Java如何允许我们只直接为
Java.lang.String
类设置值?

是从内部字符串池返回
字符串
对象的语法糖

将其视为例外而非规则。常规对象指定需要采用以下形式

MyObject myObject = new MyObject();

有关此主题的详细信息,请查看联机Javadoc:

字符串在Java中很好。它们可以像原语一样使用,但在内部是对象。有一个内部的“内部字符串池”,为您跟踪字符串对象。这样做主要是为了提高效率,但抽象足够简洁,可以假设字符串只是一个像int或char一样的原语


请记住,避免像大多数对象一样使用构造函数手动创建字符串

java.lang.String
是一个特殊的类

随便读吧

上面说

String类表示字符串。中的所有字符串文本 Java程序(如“abc”)是作为这种方法的实例实现的 班级

Java语言为字符串提供了特殊支持 连接运算符(+),用于将其他对象转换为 串。字符串连接是通过 StringBuilder(或StringBuffer)类及其追加方法。一串 转换是通过toString方法实现的,该方法由 对象,并由Java中的所有类继承。额外的 有关字符串连接和转换的信息,请参见Gosling,Joy, 以及Java语言规范Steele

没有其他类具有Java语言的这种特殊支持

您应该非常小心它的
+
功能:人们普遍认为它对性能和内存不安全 String=“ourstring” 调用字符串类的默认构造函数 新字符串(字符值[])。 如果您还看不到,建议您阅读String.clss

这是String.class描述符 /** *
String
类表示字符串。全部的 *Java程序中的字符串文本,例如
“abc”
,是 *作为此类的实例实现。 * *字符串是常量;它们的值在更改后不能更改 *都是创造出来的。字符串缓冲区支持可变字符串。 *因为字符串对象是不可变的,所以可以共享它们。例如: * *String str=“abc”; * *相当于: * *字符数据[]={'a','b','c'}; *String str=新字符串(数据); * *下面是关于如何使用字符串的更多示例: * *系统输出打印号(“abc”); *字符串cde=“cde”; *系统输出打印项次(“abc”+cde); *字符串c=“abc”。子字符串(2,3); *字符串d=cde.子字符串(1,2); * *
*/

我想他想知道如何在他编写的类中模仿这种行为。例如,作为给我在某些地方使用的每个字符串附加前缀的一种方式…自动装箱是一种语言功能,而字符串是规则的例外也是。 * String str = "abc"; * * char data[] = {'a', 'b', 'c'}; * String str = new String(data); * * System.out.println("abc"); * String cde = "cde"; * System.out.println("abc" + cde); * String c = "abc".substring(2,3); * String d = cde.substring(1, 2); *