c++ 指针拼接字符串_字符串拼接+和concat的区别

+和concat都可以用来拼接字符串,但在使用上有什么区别呢,先来看看这个例子。

public static void main(String[] args) {// example1String str1 = "s1";System.out.println(str1 + 100);//s1100System.out.println(100 + str1);//100s1String str2 = "s2";str2 = str2.concat("a").concat("bc");System.out.println(str2);//s2abc// example2String str3 = "s3";System.out.println(str3 + null);//s3nullSystem.out.println(null + str3);//nulls3String str4 = null;System.out.println(str4.concat("a"));//NullPointerExceptionSystem.out.println("a".concat(str4));//NullPointerException
}

concat源码:

public String concat(String str) {int otherLen = str.length();if (otherLen == 0) {return this;}int len = value.length;char buf[] = Arrays.copyOf(value, len + otherLen);str.getChars(buf, len);return new String(buf, true);
}

看下生成的字节码:

所以可以得出以下结论:

  1. +可以是字符串或者数字及其他基本类型数据,而concat只能接收字符串。
  2. +左右可以为null,concat为会空指针。
  3. 如果拼接空字符串,concat会稍快,在速度上两者可以忽略不计,如果拼接更多字符串建议用StringBuilder。
  4. 从字节码来看+号编译后就是使用了StringBuiler来拼接,所以一行+++的语句就会创建一个StringBuilder,多条+++语句就会创建多个,所以为什么建议用StringBuilder的原因。

更多Java好文请关注Java技术栈微信公众号,在公众号后台回复关键字:java,以下仅为部分预览。

186576c360b4ed4404602ecda49de8d1.png
  • 出场率比较高的一道多线程安全面试题
  • Java类初始化顺序,大神3个示例带你躺坑
  • switch case 支持的 6 种数据类型!
  • 面试常考:Synchronized 有几种用法?
  • Hashtable 为什么不叫 HashTable?

本文原创首发于微信公众号:Java技术栈(id:javastack),转载请原样保留本信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JobDataMap传递参数_02

JobDataMap属于JobDetail的一部分 可以在构建JobDataMap时传递参数 取出参数2种形式: 第1种:可以从execute方法的上下文中取出参数 第2种:在Job类中,定义参数名称,完成getset方法 推荐使用第2种lombok 添加参数 //创…

如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招

阿里妹导读:现代人离不开手机,更离不开Wi-Fi。很多同学经常吐槽家中Wi-Fi用得不爽,打游戏看视频又卡又慢。 针对大家常见的问题,和坊间各种“谣传”,今天我们特别邀请了阿里工程师艺超,来为大家做全面的梳…

建议看 | 计算机网络核心概念

戳蓝字“CSDN云计算”关注我们哦!作者 | cxuan责编 | 阿秃本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。网络核心网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点。…

配置管理 ACM 在高可用服务 AHAS 流控降级组件中的应用场景

应用配置管理(Application Configuration Management,简称 ACM)是一款应用配置中心产品。基于ACM您可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量,同时保证配置的安全合规。ACM 有着丰富的使用场景&#xff0c…

定时任务的并发_03

正常定时任务场景 任务1从第0秒开始执行,执行3秒结束 任务1再从第5秒开始执行,执行3秒结束,以此类推 每一个任务执行都不会有冲突,都不会有干扰,在规定的5秒时间内,任务1都能执行完成 定时任务的并发场景…

2019阿里云开年Hi购季云通信分会场全攻略!

2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返5折抢购阶段、3月16日-3月31日的续费抽豪礼5折抢购阶段。 做为整个Hi购季非常重要的一…

JobDataMap 更新_04

第2篇讲述了怎样给job传递参数或者随机数,但是,这个随机数不会更新,举个例子,执行第一次job的时 随机数3 ,执行第2次job,随机数仍然是3,因为执行每一次job都会实例化job实例对象 JobDataMap更新…

高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用

在消息队列中,当消费者去消费消息的时候,无论是通过 pull 的方式还是 push 的方式,都可能会出现大批量的消息突刺。如果此时要处理所有消息,很可能会导致系统负载过高,影响稳定性。但其实可能后面几秒之内都没有消息投…

32岁程序员,补偿N+2:“谢谢裁我,让我翻倍!” 网友:榜样!

2019年的冬天,“冷”的有些频繁。12月19日,《马蜂窝被曝裁员40% UGC模式变现难?》爆火,据悉马蜂窝将裁员40%,交易中心成了“重灾区”,赔偿N2,留下的除搜索推荐、内容中心等核心部门外&#xff0…

TableStore:爬虫数据存储和查询利器

TableStore是阿里云自研的在线数据平台,提供高可靠的存储,实时和丰富的查询功能,适用于结构化、半结构化的海量数据存储以及各种查询、分析。 爬虫数据特点 在众多大数据场景中,爬虫类型的数据非常适合存储在TableStore。主要是…

PageHelper分页时超过最大数量的页数仍然返回数据,PageHelper分页失效

最近使用PageHelper来进行分页查询,发现一个问题:明明查询出来的总数只有5个,分页的时候每页10个,按理说只有第一页返回会有数据,第二页开始就没有数据了,但是实际情况却是第二页返回的数据与第一页一致&am…

三七女生节,解密阿里女程序员们的代码诗!

女生节快要到了,小编火速在阿里的程序员群体中发掘出了一群才华横溢的程序媛!今天就和大家分享下,阿里背后写代码、修bug的女生们! 巾帼不让须眉,如今越来越多的女性同胞参与到IT行业,这个行业因为她们的参…

云+X案例展 | 传播类:九州云 SD-WAN 携手上海电信,助力政企客户网络重构换新颜...

戳蓝字“CSDN云计算”关注我们哦!本案例由九州云投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击阅读原文丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“…

利用blink+MQ实现流计算中的超时统计问题

案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总 一. 背景介绍 菜鸟的物流数据本身就有链路复杂、实操节点多、汇总维度多、考核逻辑复杂的特点,对于实时数据的计算存在很大挑战。经过仓配ETL团队的努力,目前仓配实时数据已覆…

Spring Schema整合Quartz_01

文章目录一、实现思路二、第一种实现方式2.1. 新建web项目2.2. 导入依赖2.3. 创建一个job类2.4. 创建配置文件2.5. 配置web.xml2.6.运行web服务,观察Quartz定时任务三、第二种实现方式3.1. 创建job类3.2. 修改spring-config.xml3.3. 运行web服务,观察Qua…

使用Grab的实验平台进行混沌实验编排

背景 对每个用户来说,Grab是一个可以叫车,叫外卖或付款的一个APP。对工程师来说,Grab是一个有许多服务并通过RPC交互的分布式系统,有时也可以叫做微服务架构。在数千台服务器上运行的数百个服务每天都有工程师在上面进行变更。每…

c++ 麦克风 录音 wav_小米有品上线新品,手机麦克风得到史诗级加强

手机里面是自带录音功能的,所以很多朋友都喜欢用手机来记录会议等内容,但是手机自带的麦克风用来录音并不合适,要么声音小,要么录下来的都是杂音,难道非要买一个专用的录音笔或者麦克风吗?其实没有那个必要…

云+X案例展 | 民生类: “中企通信 × TutorABC”共创全球数字教育科技新里程

本案例由中企通信投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。TutorABC荣获IDC 【讯…

ESB接口调用异常汇总

文章目录一、ESB接口前置知识1. ESB接口简述2. 生成的代码组成部分二、常见的异常汇总2.1. 场景1:不能解析某域名2.2. 场景2:调用服务连接超时三、调用服务前异常3.1. 异常描述3.2. CXF相关的jar和jdk的rt.jar中冲突3.3. 异常现象3.4. 异常日志3.5. 异常…

基于实时计算(Flink)与高斯模型构建实时异常检测系统

案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总 1. 概述 异常检测(anomaly detection)指的是对不符合预期模式或数据集(英语:dataset)中其他项目的项目、事件或观测值的识别。实际应用包括…