java中String、StringBuffer、StringBuilder的区…
2018-09-10 01:03:09来源:博客园 阅读 ()
1.string
string对象是不可变的,线程安全的。适用于少量的字符串操作的情况
2.stringBuffer
StringBuffer对象是可变的,但是线程安全,源码中append()方法中加了同步锁synchronized。适用多线程下在字符缓冲区进行大量操作的情况,一般做支付涉及字符串的拼接就会用到StringBuffer。
比如:银生宝支付mac字段的得到
String mac="";
string key = "12345"; //此处就随便设置值
string notifyURL ="www.baidu.com";
StringBuffer sf = new StringBuffer();
sf.append("accountId=").append("12345");
sf.append("&customerId=").append("12345");
sf.append("&orderNo=").append("12345");
sf.append("&purpose=").append("12345");
sf.append("&amount=").append("12345");
sf.append("&commodityName=").append("zhifu");
sf.append("&businessType=").append("1");
sf.append("&responseUrl=").append(notifyURL);
sf.append("&token=").append(token);
if (!StringUtils.isNotBlank(token)){
sf.append("&name=").append("张三");
sf.append("&idCardNo=").append("621010023456789");
sf.append("&cardNo=").append("621021012345678");
sf.append("&phoneNo=").append("18214667755");
}else if (StringUtils.isNotBlank(token)){
sf.append("&name=").append("");
sf.append("&idCardNo=").append("");
sf.append("&cardNo=").append("");
sf.append("&phoneNo=").append("");
}
sf.append("&key=").append(key);
sf.append("&key=").append(key);
logger.info("发送短信加密前+++++++++"+sf.toString());
mac = Md5Encrypt.md5(sf.toString()).toUpperCase(); //Md5Encrypt.md5是MD5加密方法,这里就不写出来了。
3.stringBuilder
stringBuilder对象是可变的,但是线程不安全。适用于单线程下在字符缓冲区进行大量操作的情况
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:子类调用父类构造方法的顺序
下一篇:final关键字详解
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash