莱芜做网站公司,短视频seo服务,关键词网站排名顾问,嘉兴网站建设seo先来一道java面试题#xff1a;String s new String(“zsx”);问#xff1a;创建了几个String Object? 先别往下看#xff0c;想想答案 先上一个图#xff1a; 如图所示#xff0c;问题所示的语句创建了2个String对象和一个引用。String s new String(“zsx”); 相当于…先来一道java面试题String s new String(“zsx”);问创建了几个String Object? 先别往下看想想答案 先上一个图 如图所示问题所示的语句创建了2个String对象和一个引用。String s new String(“zsx”); 相当于 String s1”zsx”; String snew String(s1);“zsx”作为一个常量字符串首先被创建它被保存在“串池”中。所谓串池简单讲就是从程序运行开始你创建的所有常量字符串被统一保存的地方。在串池中已经存在”zsx”这个串的情况下如果你需要一个内容相同的串你不需要再次创建一个而是直接用这个就可以这样当然是为了节省空间。注意一个字符串是无法被修改的所以在程序的不同地方用不同变量引用同一个常量串没有任何危险因为你只能读取它而不能修改它。然后new String(“zsx”)也创建了一个对象”zsx”作为传入构造方法的实际参数其含义就是我要创建一个串它的内容和串池中的”zsx”内容一致前两步建立的对象都是保存在堆heap上的。最后String s new String(“zsx”); 所做的工作是在栈stack中创建一个引用s然后s指向上一步new出的对象所在地。结束。我一直觉得String的内容简单的很我早就掌握了。直到看到这题我知道我以前真是too young,too naive。知其然而不知其所以然谓之“菜鸟”也。知道真相的我立马滚去学习现将所获记录如下 String的两种创建方式String的常用方法StringBuffer、StringBuilderString与StringBuffer的对比自己实现String的一些常用方法2015/8/3 17:09添加java里是没有运算符重载的String是StringBuffer的append()方法来实现的如 请把下面的程序编译后再反编译 String a “a”; String b “b”; String c a b; String d c 1;得到的结果是 String a “a”; String b “b”; String c (new StringBuilder(String.valueOf(a))).append(b).toString(); String d (new StringBuilder(String.valueOf(c))).append(1).toString(); 所以重载的是 append() 方法。转载于:https://blog.51cto.com/13545923/2053483