在给定的示例中,只会创建一个对象。首先JVM不会在字符串常量池中找到任何值为“Welcome”的字符串对象,因此它会创建一个新对象。之后它会在池中找到值为“Welcome”的字符串,它不会创建新对象但会返回对同一实例的引用。
使 Java 的内存效率更高(因为如果字符串常量池中已经存在,则不会创建新对象)。
使用新关键字
String s = new String(“欢迎”);
在这种情况下,JVM 将在普通(非池)堆内存中创建一个新的字符串对象,并将文字“Welcome”放入字符串常量池中。变量 s 将引用堆(非池)中的对象。
句法:
<String_Type> <string_variable> = "<sequence_of_string>";
每当将字符串对象创建为文字时,该对象将在字符串常量池中创建。这允许 JVM 优化 String 文字的初始化。
CharBuffer:此类实现了 CharSequence 接口。此类用于允许使用字符缓冲区代替 CharSequences。这种用法的一个例子是正则表达式包 java.util.regex。
字符串:它是一个字符序列。在java中,String的对象是不可变的,这意味着一个常量,一旦创建就不能改变。
在 Java 中有两种创建字符串的方法:
字符串字面量
使用新关键字
通过上述介绍,相信大家对Java中的字符串已经有所了解,大家如果想了解更多相关知识,不妨来关注一下动力节点的Java在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习