几个著名Java开源缓存框架介绍
2个回答
2014-10-28
展开全部
初学Java你一定会为String类中中实现了用加号“+”来连接两个字符串而沾沾自喜。我认为这是Java中最甜的语法糖,甚至甜到掉牙。两个字符串str1和str2。如果你使用:
str1 + str2;
这样的语法并不会改变str1的字符串内容。要写作:
str1 = str1 + str2;//str1 += str2;
你或许很清楚这个语法。而这背后所做的操作其实在内存中新建了一个新的String对象来存储str1和str2中value数组中的字符,然后再把这个新对象的引用赋给str1。你可能也觉得没有什么关系。然而:
str1 = str1 + str2 +str3 +str4 +str5;
这背后所做的事情就不是新建一个String对象这么简单了。而是从左向右依次两两连接。先新建一个对象来存储str1和str2的连接之后的字符串,再使用这个新字符串和str3进行上面的“+”操作,以此类推,“+”完所有的字符串。期间新建的字符串绝不止一个。
所以请牢记一点:千万不要在循环之中使用“+”来连接字符串。
str1 + str2;
这样的语法并不会改变str1的字符串内容。要写作:
str1 = str1 + str2;//str1 += str2;
你或许很清楚这个语法。而这背后所做的操作其实在内存中新建了一个新的String对象来存储str1和str2中value数组中的字符,然后再把这个新对象的引用赋给str1。你可能也觉得没有什么关系。然而:
str1 = str1 + str2 +str3 +str4 +str5;
这背后所做的事情就不是新建一个String对象这么简单了。而是从左向右依次两两连接。先新建一个对象来存储str1和str2的连接之后的字符串,再使用这个新字符串和str3进行上面的“+”操作,以此类推,“+”完所有的字符串。期间新建的字符串绝不止一个。
所以请牢记一点:千万不要在循环之中使用“+”来连接字符串。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询