(三)java字符串
来源:互联网 发布:a8 μcos linux stm32 编辑:程序博客网 时间:2024/06/06 15:47
不可变字符串
Java没有字符串类型,而是提供了一个预定义类String。
java中的字符串是不可变字符串,因此无法更改某一个字符串变量的内容。
优点:编译器可以让字符串共享。当复制一个字符串时,原始字符串和复制的字符串共享相同的字符。
缺点:修改字符串时,需要通过修改字符串变量,让该变量引用另外一个字符串。这会降低运行效率。
总结:程序中很少需要修改字符串,往往是对字符串进行比较。因此共享带来的高效率远远胜过提取、拼接所带来的低效率。
字符串比较
前面提到编译器可以让字符串共享,因此当两个字符串共享同一个字符时,可以使用==比较两个字符串变量。然而使用+或substring处理的字符串并不是共享的,因此必须使用equals方法比较。
举例:
public class main01 { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello";
//以上s1,s2共享同一个“hello” String s3 = s2+"";
//s3使用另一个存储空间的“hello” System.out.println(s1==s2); System.out.println(s1==s3); System.out.println(s1.equals(s3)); }}
输出:
true
false
true
构建字符串
有时候需要由多个较短的字符串构建字符串,采用字符串连接的方式每次都要创建新的对象,效率很低。可以使用StringBuilder类解决。
StringBuilder sb = new StringBuilder();sb.append("hello ");sb.append("world");String s = sb.toString();
注意:StringBuilder和StringBuffer类相似,只不过StringBuffer适合多线程,保证线程安全。StringBuilder适合用在单线程。
0 0
- (三)java字符串
- 深入Java字符串(三)
- Java读书笔记三(字符串)
- java基础(三),字符串
- Java字符串(三)--正则表达式
- java基础系列(三)之--java字符串
- Java NIO框架Netty教程(三)- 字符串消息收发
- Java基础知识学习三 (String类型,字符串处理)
- Java NIO框架Netty教程(三)- 字符串消息收发
- JAVA基础知识(三)—————字符串
- java中随机生成字符串的方法(三种)
- Java SE(三)—— 数组、字符串
- 字符串操作(三)
- 字符串笔记(三)
- 字符串(三)
- 字符串问题(三)
- 字符串问题(三)
- 创建一个长度为n的随机字符串字符串(C Python Java三版实现)
- 安卓App热补丁动态修复技术介绍
- caffe绘制训练过程的loss和accuracy曲线
- 博客园公式编辑相关
- 第一章 入门
- 第二章 shell的语法
- (三)java字符串
- RESTful API 设计指南
- Android Studio 里面的引用第三方库总结,以及compile、provided使用
- (四)函数的参数传递——值传递
- Qt:QML生成翻译中间文件ts
- Opencv 2.4.9在Ubuntu下的配置安装
- (五)final修饰符
- (六)静态域,静态方法和静态代码块
- databinding引用格式化字符串注意点