网络公司做的网站根目录在哪,招标公司网站建设方案,网站开发写好了怎么发布,wordpress安全登录插件下载java oca在OCA系列的Java Puzzlers的这一部分中#xff0c;我将展示定义字符串和与之相关的潜在惊喜的多种方法。 创建字符串的两种基本类型是使用new关键字和仅使用字符串文字来创建。 String strWithNew new String( hey ); String strWithLiteral ho我将展示定义字符串和与之相关的潜在惊喜的多种方法。 创建字符串的两种基本类型是使用new关键字和仅使用字符串文字来创建。 String strWithNew new String( hey ); String strWithLiteral ho ; 由于经常使用字符串因此JVM使用字符串池并使用其中的值因此它不必一次又一次为相同的值创建新对象。 因此看到相同字符串文字的对象地址相同就不足为奇了。 public class Puzzler { public static void main(String[] args) { String s1 myString ; String s2 myString ; System.out.println(s1 s2); // true } } 好吧这应该也一样吧 public class Puzzler { public static void main(String[] args) { String s1 new String( myString ); String s2 new String( myString ); System.out.println(s1 s2); } } 并不是的。 这将打印“ false”。 因此如果我用文字“ myString”创建一个新字符串它将被放置在字符串池中。 如果我使用new关键字创建它则不会在池中搜索它并且在创建它时也不会将其放在字符串池中。 public class Puzzler { public static void main(String[] args) { String s1 new String( myString ); String s2 new String( myString ); String s3 myString ; String s4 myString ; System.out.println(s1 s2); System.out.println(s2 s3); System.out.println(s3 s4); System.out.println(s1 s4); } } 我希望你能猜出上面发生的事情。 s1创建一个新字符串并且不将其放入池中s2执行相同的操作。 s3看一看字符串池看不到myString并将其创建并放置在池中。 s4说“好吧它在游泳池里”。 因此如果我们计算创建的字符串数则为3如果计算池中放置的内容则为1myString。 falsefalsetruefalse是打印到控制台的内容。 翻译自: https://www.javacodegeeks.com/2020/05/java-puzzlers-from-oca-part-7.htmljava oca