字符串

字符串的几种用法:
  拼接 直接用“+”把两个字符串拼接起来
  例如:String firstName = “li”;
  String secondName = “ming”;
  String fullName = firstName+secondName;
  检测字符串是否相等 检测两个字符串内容是否相等时使用“equals”;比较两个字符串的引用是否
相等时用“==”
  得到字符串的长度 字符串变量名.length();
  String,StringBuffer,StringBuild区别
  String 字符串常量
  StringBuffer 字符串变量(线程安全)
  StringBuilder 字符串变量(非线程安全)
  简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因
此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新
的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产
生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
  而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操
作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是
2021/5/4 java基本语法复习知识点大全
http://www.oh100.com/peixun/JAVA/49036_2.html 4/4
最新文章
java基本语法复习知识点 java面向对象编程题库
Java编程中如何实现中文 java多线程面试题及答
Java基本语法编程练习题 Java基础知识点归纳
java基础知识:强制类型 最新java题库及答案
java数组操作方法 JAVA认证基础知识:
JAVA工程师考试试题及 java考试习题及答案
java考试试题及答案 Java枚举的常用方法
JS控制html控件的方法 Java文件解压缩示例
Java标准类库中类型怎么 java基本语法复习知识
猜你喜欢
java语言教程 JAVA认证
六年级数学上册《分数 初中物理电学知识点总
历史必修二知识点 八年级数学上册期末复
初三英语复习计划 初一数学复习题
高一化学知识点总结 高考数学知识点总结
高二历史必修三知识点 高中历史知识点总结
高中物理必修二知识点 高中化学知识点总结
初中化学知识点总结 初二英语上册知识点
字符串对象经常改变的情况下。而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释
成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,而
特别是以下的字符串对象生成中, String 效率是远要比 StringBuffer 快的:
  String S1 = “This is only a” + “ simple” + “ test”;
  StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“
test”);
  你会很惊讶的发现,生成 String S1 对象的速度简直太快了,而这个时候 StringBuffer 居然速度
上根本一点都不占优势。其实这是 JVM 的一个把戏,在 JVM 眼里,这个
  String S1 = “This is only a” + “ simple” + “test”; 其实就是:
  String S1 = “This is only a simple test”; 所以当然不需要太多的时间了。但大家这里要注意的
是,如果你的字符串是来自另外的 String 对象的话,速度就没那么快了,譬如:
  String S2 = “This is only a”;
  String S3 = “ simple”;
  String S4 = “ test”;
  String S1 = S2 +S3 + S4;
  这时候 JVM 会规规矩矩的按照原来的方式去做
  在大部分情况下 StringBuffer > String
  StringBuffer
  Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修
改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和
内容。
  可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上
的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
  StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数
据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲
区中。 append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
  例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append(“le”)
会使字符串缓冲区包含“startle”,而 z.insert(4, “le”) 将更改字符串缓冲区,使之包含“starlet”。
  在大部分情况下 StringBuilder > StringBufferjava.lang.StringBuilder
  java.lang.StringBuilder 一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的
API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使
用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer
要快。两者的方法基本相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值