java atd_Java字符串String详解

1、String字符串

实例化String对象:

(1)直接赋值,如:String str="hello";

(2)使用关键字 new,如:String str=new String("hello");

7098d5e130987f99d46942c2d6063664.png

由图可知:使用 new 的方式在堆内存中开辟了两个空间,

第一个 "hello",对象 str 没有指向,无用等待回收,

第二个 "hello",被 str 指向,有用。

所以 直接赋值(只开辟了一个空间) 的方式更常用和合理,可以节省一些空间。

字符串的内容不可更改

如:

f64c71b1a3031fc42a54dd9a34d2c357.png

2、String字符串常用方法

String字符串的方法较多,可以根据API给出的方法去做测试,下面是常用方法:

(1)字符串长度:length() 「数组中的是 length 属性」

(2)字符串转换数组:toCharArray()

(3)从字符串中取出指定位置的字符:charAt()

(4)字符串与byte数组的转换:getBytes()

(5)过滤字符串中存在的字符:indexOf()  返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。(可以用在判断多位数是否包含某个数字时,先转成string再判断)

(6)去掉字符串的前后空格:trim() 「空格易影响到对字符串的判断,需适时去掉」

(7)从字符串中取出子字符串:subString()

(8)大小写转换:toLowerCase() toUpperCase()

(9)判断字符串的开头结尾字符:startWith() endsWith()

(10)替换String字符串中的一个字符:replace()

3、StringBuffer的常用方法:

append() insert() replace() indexOf()

StringBuffer类的应用:

为什么有的时候要用StringBuffer,而不用String:

String是不可变的,所以要对String作改动不能直接改那个String本身,而是要创建新的String,所以如果改动次数多,用String就效率不高,而StringBuffer(如果是单线程则建议用StringBuilder,不用考虑线程安全性,效率更高点)。有朋友说1.5后StringBuffer和String的拼接性能差不多则不敢苟同,如下测试在我的机器上用JDK1.8测试:

1 public classdemo {2 public static voidmain(String[] args) {3 long l =System.currentTimeMillis();4 String s = "";5 for (int i = 0; i < 100000; i++) {6 s += "q";7 }8 System.out.println(System.currentTimeMillis() -l);9 System.out.println(s.substring(0, 1));10

11 l =System.currentTimeMillis();12 StringBuffer sb = newStringBuffer();13 for (int i = 0; i < 100000; i++) {14 sb.append("q");15 }16 System.out.println(System.currentTimeMillis() -l);17 System.out.println(sb.toString().substring(0, 1));18 }19 }

输出:

3870q3q

也就是做10万次拼接,String要3.87秒,而StringBuffer则只要0.003秒,差别还是相当大的。(JDK1.6有9s多的差距)

4、StringBuilder

一个可变的字符序列,该类被设计作用StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,建议优先考虑该类,速度比StringBuffer要快

但如果涉及到线程安全方面,建议使用StringBuffer

常用方法:

append() insert() …

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

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

相关文章

while用法_语法宝典:连词while的四种用法,你都学会了吗?

你可能知道while除了表示“当……的时候”&#xff0c;还有它与when, as的用法区别&#xff0c;但是这些还不够全面&#xff0c;今天小编就来给大家详细解析一下相关的用法&#xff0c;一起来看看吧&#xff01;一、考查表示时间的用法&#xff0c;其意为“当……的时候”。如&…

java基础语法试题_java基础语法测试题

java基础语法测试题 Java 程序设计:07-07考试时间&#xff1a;90 分钟用户&#xff1a;wanggang 难度&#xff1a;0 总分&#xff1a;100导出时间&#xff1a;2011-07-07 13:06:15一、判断题(每题 2 分&#xff0c;总分 20 分)1.( )接口和类一样也可以有继承关系&#xff0c;而…

开发转测试没人要_新人如何快速的进入融入软件测试行业?

古人云“师傅领进门&#xff0c;修行在各人”任何行业的入门门槛都是不一样的&#xff0c;软件测试行业涉及到专业领域的知识&#xff0c;入门的门槛高吗&#xff1f;怎么更好的融入行业呢&#xff1f;首先要说到的是软件测试学习的途径主要就三种&#xff0c;一种自学&#xf…

winform checkbox要点击两次_这个Winform的UI库也太全了!四十多个控件都在这一个项目里了...

之前 Gitee 为大家介绍过几款优质的 Winform 项目&#xff1a;这几个WinForm项目&#xff0c;让你更熟悉 .NET&#xff5c;Gitee 项目推荐&#xff0c;发现Winform在大家心中的地位还是挺高的&#xff0c;那么今天就再给各位分享一款新鲜出炉的 Winform UI库——SunnyUI&#x…

苹果ppt_你的PPT太low了,学学苹果吧

人在职场哪能不会PPT&#xff0c;可是辛苦做好的PPT总要换来一句&#xff1a;“好low啊&#xff0c;能不能高大上一点&#xff1f;学学人家苹果员工的工作汇报或者发布会PPT吧&#xff01;”这个时候你心里肯定要吐槽一句&#xff1a;“天&#xff01;我要是PPT能做成苹果风&am…

webservice 服务器无法处理请求_Message Queue与WebService比较

最近在使用IBM Websphere Message Queue,与WebService相比&#xff0c;同样是跨平台的通信方式&#xff0c;那么各种有什么优势呢&#xff1f;Message Queue属于比较重量级的应用&#xff0c;在规范化的企业流程中用的比较多。如果企业有很多部门&#xff0c;部门都有自己的系统…

小程序 字号设置 slider滚动改变大小_SteerMouse for mac(鼠标设置工具) v5.4.3

Steermouse Mac版这是一款Mac鼠标设置工具&#xff0c;不论你的Mac OS鼠标是Magic Mouse这样的额蓝牙鼠标还是我们常用的USB鼠标你都可以轻松设置。steermouse mac版软件介绍SteerMouse是一个实用程序&#xff0c;可让您自由地自定义按钮&#xff0c;滚轮和光标速度。无论鼠标是…

JAVA不同类型数组重载_方法的重载;数组 (Java Day05)

一&#xff0c;方法的重载概念&#xff1a;在一个类中&#xff0c;拥有多个方法名相同&#xff0c;参数列表不同的方法的现象叫做方法的重载特征&#xff1a;​ 1、在同一个类中​ 2、方法名相同​ 3、参数列表不同参数列表的不同&#xff1a…

佳博网络打印机改ip工具_换IP软件为什么是网络工作者首选工具?

科技的不断发展也在促使着网络技术的进步&#xff0c;而网络对于我们日常工作生活来说是不可或缺的&#xff0c;太多事情都需要在网络中完成&#xff0c;对于互联网从业者深知其重要性&#xff0c;常常会因为项目的不同需要切换不同的IP地址来进行工作&#xff0c;一般情况下我…

玩ts要注意什么_番禺三维创意拍摄要注意什么

番禺三维创意拍摄要注意什么 广州思卓传媒有限公司(简称思卓传媒)成立于互联网&#xff0c;视频迅速崛起的21世纪&#xff0c;前身为思卓影视工作室&#xff0c;近十年积累了丰富品牌策划制作&#xff0c;以专注&#xff0c;精益求精的匠人精神为追求&#xff0c;致力于产生专业…

java c 客户端_java基于C/S模式实现聊天程序(客户端)

经过这几天对java的学习&#xff0c;用java做了这个计算机网络的课程设计&#xff0c;基于C/S模式的简单聊天程序&#xff0c;此篇文章介绍一些客户端的一些东西。先讲一讲此聊天程序的基本原理&#xff0c;客户端发送消息至服务器&#xff0c;服务器收到消息之后将其转发给连接…

4接口引脚定义_浅谈USB Type-C接口

笔者前段时间做了一款STM32下载器&#xff0c;为了与新时代接轨&#xff0c;在设计电路板的时候首次使用了USBType-C接口&#xff0c;后来发现其确实很好用。就在今天又设计制作了一款USB-hub&#xff0c;在硬件上我又使用了Type-C接口&#xff0c;所以来了兴致&#xff0c;写一…

rocket mq 监听端口_浅谈业务流程中的mq使用方式

假设有个场景&#xff1a;下单成功需要给用户发送消息通知&#xff0c;发送消息通知通过mq实现事务提交前发送mq消息step1&#xff1a;start transactionstep2&#xff1a;生成订单step3&#xff1a;投递消息到mqstep4&#xff1a;commit transaction问题&#xff1a;step3发生…

jsp工程防止外部注入_XPATH注入详解|OWASP Top 10安全风险实践(五)

本文为一些列连载文章之一&#xff0c;不定期更新&#xff0c;计划目录如下&#xff1a;OWASP介绍SQL注入命令注入XML外部实体注入XPATH注入反射式、DOM及存储XSS失效的身份认证和会话管理不安全的直接对象引用安全配置错误敏感信息泄露功能级访问控制缺失跨站请求伪造服务端请…

小程序反编译 g is not defined_培生幼儿启蒙英语 Level B | 小牧羊女在哪?

本栏目为羽佳讲绘本独家专稿&#xff0c;文中图片及音频已获得海豚传媒授权&#xff0c;未经允许请勿转载。大家好&#xff01;我是毛毛。培生幼儿启蒙英语 Level B(升级版)的分享又来了&#xff01;想了解这套绘本及购买信息的小伙伴们&#xff0c;可以点击喜大普奔&#xff0…

snmp 获得硬件信息_信息系统项目管理师(三)

常规信息系统集成技术系统集成&#xff1a;将计算机软件、硬件、网络通信等技术产品即成为能够满足用户特定需求的信息系统。&#xff08;一&#xff09;网络标准与网络协议1、网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议三要素&…

android 充电动画_iPhone 12充电测试:18/20W并无明显区别

原标题&#xff1a;iPhone 12充电测试&#xff1a;18/20W并无明显区别日前&#xff0c;充电头网使用苹果原装5W、12W、18W、20W以及65W充电器测试了iPhone 12的充电速度。从结果来看&#xff0c;苹果的五福一安的充电数据依旧“稳定”&#xff0c;半小时充入了18%的电量&#x…

跳出所有循环的语句_从零开始的Java之旅2.0 流程控制语句

前言昨天我们对Java的数据类型和运算符进行了充分讲解,今日我们学习流程控制语句. 今日内容:if else 判断语句switch 选择语句for 循环语句while 循环语句do while 循环语句break&#xff0c;continue 跳出语句概述:在一个程序执行的过程中&#xff0c;各条语句的执行顺序对…

el-table 树形表格 自定义展开图标_[shell脚本]表格数据在终端可视化输出

最终效果1. 自定义表格样式2. 自定义主题颜色支持三系普通颜色支持16色彩虹色支持单颜色回顾一下shell语法1. shell传递参数我们可以在执行shell脚本时实时传递参数从而指定某些具体的参数&#xff08;在本例中包括表格的样式、颜色等&#xff09;&#xff0c;脚本中获取参数的…

kubectl apply -f_广州车展捷豹路虎参展阵容 全新F-PACE 路虎卫士90

近日&#xff0c;我们从相关渠道获得了捷豹路虎广州车展的阵容。将有两款新车亮相&#xff0c;新款捷豹F-PACE和路虎卫士90。新款捷豹F-PACE采用了最新的家族式设计风格&#xff0c;具有更时尚的造型设计&#xff0c;而路虎卫士90则拥有更短的轴距。外观方面&#xff1a;新款捷…