Java基础之String类、StringBuffer类、StringBuilder类

String类对象有两种实例化方法

  直接赋值:只开辟一块对内存空间,可以自动入池。

  构造方法:开辟两块【堆】内存空间,不会自动入池,使用intern()方法手动入池。

任何一个字符串都是String类的匿名对象。

字符串一旦声明则不可以改变,可以改变的只是String类对象的引用。

String类可以使用 + 进行字符串的连接操作

StringBuffer类的内容可以进行修改,而String类的内容是不可以修改的。

在String类里面,提供了一个与StringBuffer类比较的方法:

  public boolean contentEquals(StringBuffer sb)// String与StringBuffer比较的方法
  public StringBuffer reverse()//字符串反转

StringBuilder类几乎与StringBuffer的定义几乎一模一样。

比较String与StringBuilder与StringBuffer区别?

  String的内容一旦声明则不可以改变,而StringBuffer与StringBuilder声明的内容可以改变。

  StringBuffer类中提供的方法都是同步方法(使用synchronized),属于安全的线程操作,而StringBuilder类中的方法属于异步方法,属于非线程安全的操作,StringBuilder比StringBuffer性能上稍高。

  在开发中大多数使用String,在频繁操作字符串拼接时使用StringBuilder,在考虑线程安全时,使用StringBuffer。

原文地址:https://www.cnblogs.com/in-the-game-of-thrones/p/11325547.html

时间: 2024-11-08 06:56:46

Java基础之String类、StringBuffer类、StringBuilder类的相关文章

java基础之string,stringbuffer,stringbuilder

一 string public final class String 继承自java.lang.Object类. 实现了接口: java.io.Serializable, Comparable<String>, CharSequence String类是不能被修改的字符串.因为String类里面的数据是final类型的. 区别两种方式: ① String s = "aaaa": ② String s1 = new String("aaaa"); 对于第一

深刻理解Java中的String、StringBuffer和StringBuilder的区别

首先简单地来梳理一下Java中String.StringBuffer和StringBuilder各自的含义. 1.String类 首先,它是线程安全的,即可以用于多线程编程中: 其次,String类的对象是不可变的,即在定义时就确定了,类似String str="Hello";str+="Java";的语句其实是生成了新的对象,只是我们未察觉到而已.但是注意在大量的字符串新建对象时消耗就很可观,这时必须考虑采用StringBuffer或StringBuilder,否

Java之字符串String,StringBuffer,StringBuilder

总结的很全面,关于这三个类的操作. Java之字符串String,StringBuffer,StringBuilder

Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的. private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在Abstra

浅谈String、StringBuffer和StringBuilder类的区别

1.均可对字符串进行修改,但StringBuffer和StringBuilder类的对象进行多次修改时,不产生新的未使用对象. String 的底层是用final修饰的char数组,变量的内容不可变——内存占用高,资源利用率低: StringBuffer和StringBuilder类 则继承了AbstractStringBuilder类,其未使用final修饰char数组,变量内容动态更新——无效数组等待垃圾回收,减少资源占用; 2.StringBuilder相较于StringBuffer有速度

深刻理解Java中的String、StringBuffer和StringBuilder的差别

声明:本博客为原创博客,未经同意.不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(链接为http://blog.csdn.net/bettarwang/article/details/26412497),看代码和提问.讨论都更方便. 首先简单地来梳理一下Java中String.StringBuffer和StringBuilder各自的含义. 1.String类 首先.它是线程安全的,即能够用于多线程编程中. 其次,String类的对象是不可变的,即在定义时就确定了,类似St

Java中的String、StringBuffer和StringBuilder

任何语言都离不了字符串的处理.Java中处理字符串的三个类String.StringBuffer和StringBuilder.这三个到底有什么区别呢? 他们三个都是实现了CharSequence接口.但实现过程不一样. 其实他们的使用方法都很简单,这里看下StringBuilder的用法. public class TestStringBuffer{ public static void main(String args[]){ StringBuffer str=new StringBuffer

java中的String、StringBuffer、StringBuilder的区别

String.StringBuffer.StringBuilder都是java中的常用字符串类 ,下面来看看三者之间的异同. 一.可变与不可变: String:字符串常量,不可变.StringBuffer.StringBuilder为可变字符序列,是可变的. 二.是否多线程安全: String中的对象是不可变的,相当于常量,显然线程安全. StringBuffer:支持多线程安全. StringBuilder:不支持多线程安全. 三.执行效率: String.StringBuffer.Strin

Java中的String、StringBuffer以及StringBuilder的用法和区别

String String的构造方式有n种(据说n==11),常见的例举一二: // 1 String s1 = "hello world"; // 2 String s2 = new String("hello world"); // 3 char[] a = {'h', 'e', 'l', 'l', 'o'}; String s3 = new String(a, 1, 3); // start length // 4 String s4 = "hell

【JAVA中String、StringBuffer、StringBuilder类的使用】

一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: 1 public class StringDemo 2 { 3 public static void main(String args[]) 4 { 5 StringDemo1(); 6 7 } 8 public static void StringDemo1() 9 { 10 String str1="abcd"; 11