- 浏览: 92575 次
- 性别:
- 来自: 无锡
文章分类
最新评论
当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容。与之形成对比的是StringBuffer类,StringBuffer类使用append()方法追加字符串,向原有对象追加而不是创建新的对象。append()方法返回当前StringBuffer对象,因此可以串联起来使用。
String s = null; s += "abc"; System.out.println(s);
答案是:nullabc! 就这三行代码, 我问了不下于50个人, 有资深的人也有新手的, 在不运行的情况下全答错了! 可见现在学java的人有很多人都是速成的,而且这种原理级而又看似不怎么实用的东西几乎没什么人去研究, 但是后面说的机试如果能知道String拼接的原理的话,将很容易就解决! 很早的时候我就知道String拼接中间会产生StringBuilder对象(JDK1.5之前产生StringBuffer),但是当时也没有去深究内部, 导致在华为笔试此题就错了! 字符串拼接原理:运行时, 两个字符串str1, str2的拼接首先会调用 String.valueOf(obj),这个Obj为str1,而String.valueOf(Obj)中的实现是return obj == null ? "null" : obj.toString(), 然后产生StringBuilder, 调用的StringBuilder(str1)构造方法, 把StringBuilder初始化,长度为str1.length()+16,并且调用append(str1)! 接下来调用StringBuilder.append(str2), 把第二个字符串拼接进去, 然后调用StringBuilder.toString返回结果! 所以那道题答案的由来就是:StringBuilder.append("null").append("abc").toString();
转自http://blog.csdn.net/zolalad/article/details/30089327
发表评论
-
java 堆栈
2018-07-24 22:59 406java的内存分为两类 : 堆 ... -
初始化ArrayList, 默认长度10
2018-07-10 17:54 1803// 在初始化ArrayList的时候没有指定初始化长度的话 ... -
Java判断Long类型相等问题
2018-03-13 15:05 2297// Long类型判断相等时,比如Long a = 10L ... -
循环往list中add对象却总是add的是一个对象
2017-11-11 16:53 18981. 在new 一个对象的时候,对象的ID是唯一确定的;将对象 ... -
变量定义的初始化顺序
2017-11-04 18:05 439//#java编程思想P94 //在类的内部, 定义变量 ... -
JavaBean解释
2017-09-07 15:05 431Spring如何知道setter方法?如何将值注入进去的呢?其 ... -
log4j2配置
2017-08-31 18:22 389//lib log4j-core-xx.jar lo ... -
java为什么不需要sizeof()
2017-07-21 13:51 334在C和C++中,sizeof()操作符可以告诉你为数据项分配的 ... -
回车换行 \r\n
2017-07-06 16:15 358\r就是"回到行首",\n就是" ... -
基本类型直接存储“值”,置于堆栈中。 new将对象存储在“堆”中。
2017-07-04 19:07 636基本类型置于堆栈中,更加高效。 其他java对象存储在堆中 -
Java中如何遍历Map对象的4种方法
2017-05-26 16:42 417http://blog.csdn.net/tjcyjd/art ... -
初始化List泛型时,list为null还是为空?应该是空(size()=0)
2017-04-13 17:29 656List<Object> list = new A ... -
判断两个参数的值是否相同
2017-02-06 17:00 495private boolean isValueSame(Obj ... -
检查数组中是否包含特定值(Check if an array contains a certain value)
2017-01-10 10:19 296String[] stringArray = { " ... -
JSP中java代码引用map类
2016-11-04 12:14 467<% java.util.Map m = new ja ... -
批量命名变量名(无法确定字符串数组长度)
2016-11-04 12:00 436String a = "a b c"; ... -
null和""以及==与equals的区别
2016-08-11 17:59 363String str1 = null; str引用为空 ... -
String、StringBuffer与StringBuilder详解
2016-08-18 14:20 4181.三者在执行速度方面的比较:StringBuilder &g ... -
java生成当前日期格式设置
2016-08-03 14:04 469package com.grace.test; ... -
Eclipse/Myeclipse生成serialVersionUID方法
2016-08-03 13:54 550serialVersionUID作用: 序列化时为了保持 ...
相关推荐
String的拼接 ,调用 resource中的String 进行拼接
在本篇文章里小编给大家整理的是关于java String拼接时的问题汇总,有需要的朋友们可以参考下。
String拼接会创建一个新的String对象,存储拼接后的字符串,StringBuffer拼接是直接在本身拼接,会即时刷新。下面通过本文给大家介绍Java中String与StringBuffer拼接的区别,感兴趣的朋友一起看看吧
在本篇文章里小编给大家分享的是关于Java String 拼接字符串原理详解的相关资源内容,有需要的朋友们可以跟着学习参考下。
sql的封装,不需要使用StringBuffer进行字符串拼接 直接使用对象封装
winform下,c#拼接 变量的名称, 如:有个控件 textbox1, 可以用 string “textbox” 和string “1” 拼接 得到
输入:Dictionary<string, string> dicArray 需要拼接的数组 输出:string 拼接完成以后的字符串 public static string CreateLinkStringUrlencode(Dictionary<string, string> dicArray, Encoding code) 功能:把...
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
输出:String 拼接完成以后的字符串 Function CreateLinkstringUrlEncode(sPara) 功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并且对其做URLENCODE编码 输入:Array sPara 需要拼接...
众所周知,常见的拼接方式有:StringBuffer,StringBuilder,concat,+,StringUtils.join 那么通过如下代码,看一下在for循环中,不同的字符串拼接方式,到底哪种效率最高? package com.test.stringjoin; import org...
今天小编就为大家分享一篇java 解析由String类型拼接的XML文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
sqlString,可以把一串长的sql生成string,不用再一个个拼接,例如select * from table等等等,自动拼接成str="select * from table",不需要一个个添加“”
字符串拼接在日常开发中是很常见的需求,今天我们来探讨下如何用golang来实现字符串的拼接
方便人们把sql转化为StringBuffer拼接语句,也可以转为String拼接语句,jdk要在1.6以上,并且配置了JAVAHOME才能运行
JAVA的字符串拼接与性能 概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码...
C++中std::string是日常Coding中经常使用的一个类,使用起来非常方便,但是也存在一些弊端。 如下代码,参数传递的过程发生了内存分配(Memory Allocation)和内存拷贝。 void fun(const std::string& s) { std::...
计算机后端-Java-Java核心基础-第21章 常用类 08. String不同拼接操作的对比.avi
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
java图片拼接 ,多张图片,直接传入,返回一张图片 /** *filebase64 ,map中的 key:按照顺序拼接的 value:base64的图片 ... public static String getBase64FromInputStream(Map, String> filebase64)
目录前言String字符串和char字符的区别拓展相互转换String字符串转换成char字符数组char字符转换成String字符串char字符数组转换成String字符串String类和StringBuffer类之间的转换拼接String字符串之间的拼接String...