不经意间刷到一篇字符串常量池博文,看完后发现存在不少错误,兴趣一来顺便又去搜了几篇,发现都大同小异,或多或少都有些问题,所以Bug君吹掉了键盘上的灰,拾掇拾掇就来了!
其实要彻底搞懂字符串常量池底层原理,只需要搞懂我精心设置的12道题即可,废话不多说,直接上题!关卡12道,欢迎冲关,如果冲关成功,那恭喜道友,你已至字符串常量池陆地神仙境。
【提示】为了码友们保持一致,请基于JDK1.7+完成冲关!
// 1public static void main(String[] args) { String s1 = "Bug"; String s2 = "B" + "ug"; System.out.println(s1 == s2); System.out.println(s2 == s2.intern());}
// 2public static void main(String[] args) { String s1 = "Bug"; String s2 = new String("Bug"); System.out.println(s1 == s2); System.out.println(s2 == s2.intern());}
// 3public static void main(String[] args) { String s1 = new String("Bug"); String s2 = new String("Bug"); System.out.println(s1 == s2); System.out.println(s2 == s2.intern());}
// 4public static void main(String[] args) { String s1 = "B"; String s2 = s1 + "ug"; System.out.println(s2 == s2.intern());}
// 5public static void main(String[] args) { String s1 = "i"; String s2 = s1 + "nt"; System.out.println(s2 == s2.intern());}
// 6public static void main(String[] args) { final String s1 = "B"; String s2 = s1 + "ug"; System.out.println(s2 == s2.intern());}
// 7public static void main(String[] args) { String s0 = "Bug"; String s1 = "B"; String s2 = s1 + "ug"; System.out.println(s0 == s2); System.out.println(s2 == s2.intern());}
// 8public static void main(String[] args) { String s0 = "Bug"; final String s1 = "B"; String s2 = s1 + "ug"; System.out.println(s0 == s2); System.out.println(s2 == s2.intern());}
// 9public static void main(String[] args) { String s1 = "B"; String s2 = "ug"; String s3 = s1 + s2; System.out.println(s3 == s3.intern());}
// 10public static void main(String[] args) { String s0 = "Bug"; String s1 = "B"; String s2 = "ug"; String s3 = s1 + s2; System.out.println(s3 == s3.intern());}
// 11public static void main(String[] args) { final String s1 = "B"; final String s2 = "ug"; String s3 = s1 + s2; System.out.println(s3 == s3.intern());}
// 12public static void main(String[] args) { String s0 = "Bug"; final String s1 = "B"; final String s2 = "ug"; String s3 = s1 + s2; System.out.println(s3 == s3.intern());}
有不确定的答案一定要打开你的IDE亲自验证一下哦!这样印象会更深刻,相信你一定会发现新大陆!所以,答案和全面解析我们下期见!
留言与评论(共有 0 条评论) “” |