您的位置:

java字符串赋值,java字符串赋值给另一个变量

本文目录一览:

JAVA中这两种给字符串变量赋值的方法有区别吗?

有区别。new出来的对象在堆内存中。

直接赋值的字符串在 常量池区

java字符串赋值

选BC

a是正确的,定义s并复制一个字符串字面量abcd

b是错误的,\0表示字符串的结束,如果不写,默认添加上,这段是正确的,但字符串不能用单引号,必须用双引号,因此也是错误的

c是错误的,\表示转义身后的字符,\a在java中不是转义字符,\n表示换行,\t表示一个制表符,\r表示回车等

d是正确的,正确定义s,但未初始化

java中字符串赋值问题

Java运行时会维护一个String

Pool(String池,

String常量池,

字符串缓冲区)

String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。

而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区

String

s

=

"accp";

创建s之前系统会先在"池子"中查找是否已经存在这个字符串,

如果存在则直接符号该字符串的句柄

如果不存在,

系统会创建一个新"accp"字符串,

并返回句柄,

以后再有"accp"被要求创建,

系统不会创建新的,而是直接返回已经存在的字符串的句柄

String

s

=

new

String("accp");

系统不会去"池子"中查找,

直接在内存中新开辟一块空间,

初始化为"accp",并返回句柄