文章关键词:String StringBuffer String 不变

String和StringBuffer

作者:神秘网友 发布时间:2021-10-13 07:24:09

String和StringBuffer

String类 ——不变字符串类

不变字符串:字符串一旦建立,其内容就不能改变,如果要改变字符串的内容,就要生成新的实例。

初始化字符串常用的的两种方式

String str1 = new String("Hello");	//方式1
String str2 = "Hello";		//方式2

String类型的构造方法

//构造一个空的字符串
		String()  
//用一个字符串来生成一个新的字符串,两个字符串相等
		String(String str)
//用数组生成一个新的字符串
		String(char[] ch)
//用数组生成一个从ch[a]开始,长度为b新的字符串,
		String(char[] ch,int a,int b)
//利用StringBuffer对象来创建一个String类型的字符串
        String(StringBuffer str)

String类提供的方法

int length()	//返回字符串的长度
char charAt(int index)	//返回字符串中index位置的字符
String toLowerCase()	//将当前字符串中所有字符转换成小写
String toUpperCase()   //将当前字符串中所有字符转换成大写
String subString(int beginIndex)	//返回从beginIndex开始的子串
String subString(int beginIndex,int endIndex)	//返回从beginIndex开始到endIndex之前的子串
String replace(char oldChar,char newChar)	//将字符串中的所有oldChar转换为newChar
String indexOf(String str)	//返回str在字符串中第一次出现的位置
String concat(String str)	//将str连接在当前字符串的尾部
boolean equals(String str)	//比较str与当前字符串的内容是否相同
boolean equalsIgnoreCase(String str)	//比较str与当前字符串的内容是否相同,并且忽略大小写
int compareTo(String str)	/*比较str和当前字符串的内容,返回差值。(若str和当前字符串相等,返回0;若和当前字符串不相等,则返回第一个不同字符的差值;若str和当前字符串仅长度不同,则返回两者长度的差值)
  • equals()

    判断两个String对象内容是否相同。

  • ==

判断两个String对象是否为同一实例,即在内存中的存储空间是否一致。

        String s1 = "Hello world!";
        String s2 = "Hello world!";
        String s3 = new String("Hello world!");
        System.out.println(s1.equals(s2));      //输出true
        System.out.println(s1.equals(s3));      //输出true
        System.out.println(s1==s2);             //输出true
        System.out.println(s1==s3);             //输出false

StringBuffer类——可变字符串类

  • 可变字符串:字符串中的内容是可以改变的

  • StringBuffer在进行字符串处理时,不会再产生新的实例,而是直接操作原字符串

  • 在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer更加合适

  • 系统为StringBuffer类对象分配内存时,除去字符所占空间外,在另加16个字符大小的缓冲区

StringBuffer s1 = new StringBuffer();	
//创建一个大小为16个字符的空StringBuffer对象

StringBuffer s2 = new StringBuffer(40); 
//创建一个大小为40个字符的空StringBuffer对象

StringBuffer s2 = new StringBuffer("Hello");
//创建一个大小为21个字符的空StringBuffer对象

注意:StringBufferString属于不同的类型,也不能直接进行强制类型转换

StringBuffer对象和String对象之间相互转化

        String s = "abc";
        StringBuffer sb1 = new StringBuffer("123");
        StringBuffer sb2 = new StringBuffer(s);     //String转换为StringBuffer
        String s1 = sb1.toString();     //StringBuffer转换为String

StringBuffer类提供的方法

int length()	//返回StringBuffer对象中字符的长度
int capacity()  //返回StringBuffer对象缓冲区的容量
void ensureCapacity(int size)	//设置StringBuffer对象的缓冲区容量
void setLength(int len)	//设置StringBuffer对象字符长度
StringBuffer append(Object obj)	 //连接StringBuffer对象(如果操作后的字符超出已分配的缓冲区,系统会自动为它分配额外的空间)

注意:String中对字符串的操作不是对原操作串对象本身进行的,而是对新生成的一个原操作串对象的拷贝进行的,其操作的结果不影响原字符串。

? 相反,StringBuffer中对字符串的连接是对原字符串本身进行的,操作之后原字符串发生改变,变成连接后的字符串。

除了对运算符“ + ”进行重载外,java不支持其他运算符的重载


本文章教程介绍完毕,更多请访问跳墙网其他文章教程!

String和StringBuffer 相关文章

  1. String和StringBuffer,StringBuilder

    String和StringBuffer,StringBuilder String: String类是不可变的,一旦被创建,就不能被修改,直到这个对象被销毁。 下面结合代码来看一下: //测试String String aa = Hello World; //打印内存地址 System.out.println(Hello World的内存地址:---- + +Sys

  2. string中stringbuffer和stringbuilder的区别

    string中stringbuffer和stringbuilder的区别是:1、StringBuffer是线程安全,而StringBuilder是线程不安全;2、StringBuffer公开方法同步,而StringBuilder没有。 string中stringbuffer和stringbuilder的区别是: 区别1:线程安全 StringBuffer:线程安全,S

  3. String,StringBuffer和StringBuilder 的区别

    String,StringBuffer和StringBuilder 的区别 String,StringBuffer和StringBuilder 的区别 1、String 中使用 final 关键字字符数组保存字符串,对象是不可变的,也就可以理解为常量,线程安全 2、StringBuilder 与 StringBuffer 都继承自 AbstractStringBuil

  4. String、StringBuilder和StringBuffer 详解

    String、StringBuilder和StringBuffer 详解 最近做题的时候遇到很多的有关String相关的知识点,于是写篇博客,总结和复习吧! 字符串 1.String 1.1 String源码 1.2 String 常用方法 2.StringBuffer 3.StringBuilder 4.理解 String、StringBuilder、StringBuff

  5. string和stringBuffer,stringBuilder的区别

    string和stringBuffer,stringBuilder的区别 String对象不能被修改,本身不能修改,但是引用可以修改。 String a = abc 实在内存里创建了一个String对象 a = a+'c' 实际上是在内存中abcc 的String对象 stringBuffer和stringBuilder可变 stringBuffer效率比str

  6. string和stringbuffer、stringbuilder有什么区别

    区别如下: 1、String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。 2、对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造方法的方式完...

  7. String、StringBuffer和StringBuilder的区别

    String、StringBuffer和StringBuilder的区别 String、StringBuffer和StringBuilder的区别 String 来看几个例子 String s1 = hello world;String s2 = hello world;System.out.println(s1 == s2); 输出结果是true String s1 = new String(hello world);String

  8. String、StringBuffer和StringBuilder的区别

    String、StringBuffer和StringBuilder的区别 1.在Java中字符串属于对象,java提供了String类来创建和操作字符串 2.String是Immutable类的典型实现,被声明为了final class,除了hash这个属性其它属性都声明为final 3.因为它的不可变性,所以例如拼...

  9. String、Stringbuffer和Stringbuilder三姐妹的故事

    String、Stringbuffer和Stringbuilder三姐妹的故事 为什么80%的码农都做不了架构师? 首先要了解String、StringBuffer和StringBuilder出现顺序是怎样的。 String和StringBuffer都是在JDK1.0就出现了,她们两个算是同一天出生,但是String和其他两个类...

  10. 底层对string,stringbuffer和stringbuilder的理解

    底层对string,stringbuffer和stringbuilder的理解 目录 1 简单介绍 2 底层原理 2.1 String原理 2.2 字符串相加 3 对比总结 1 简单介绍 java中用于处理字符串常用的有三个类: 1、java.lang.String 2、java.lang.StringBuffer 3、java.lang.StrungBuilder 三者

  11. java String StringBuffer 和 StirngBuilder

    java String StringBuffer 和 StirngBuilder 1,先看String 定义的两种方式: String str = abc; String str = new String(abc); 一旦定义 String 就不能改变,这个可以通过源码去看 有这样的面试题:以下语句创建了几个对象? String str1 = new String(abc)

  12. java随笔:String和StringBuffer类的简单使用

    java随笔:String和StringBuffer类的简单使用 String类的简单使用 (一)String 例1:分别用String的几个构造函数完成串的创建。 例2:.length()、.char()、.charAt()、.indexOf() 例3:String类的toCharArray()方法和静态valueOf() 例:4:字符串的替...

  13. Java中的String、StringBuffer和StringBuilder

    作为作为一个已经入了门的java程序猿,肯定对Java中的String、StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的。但肯定你有一点很好奇,为什么java中有三个关于字符串的类?一个不够吗!先回答这个问题,黑格...

  14. 第十天学习java关于string和stringbuffer的使用

    第十天学习java关于string和stringbuffer的使用 String对象的常用创建方法(4种) “”和new String(“”)区别 它是java中唯一不需要new 就可以产生对象的途径. * 以 String s=”abce”;形式赋值在java中叫直接量,它是在常量池中而不是象new 一...

  15. JAVA API学习记录String和StringBuffer类

    JAVA API学习记录String和StringBuffer类 JAVA API学习 [var1] 用于封装字符串 在使用String类之前需要先对String类进行初始化 1.使用字符串常量直接初始化一个String对象 String str1 = abc; 2.使用String的构造方法初始化字符串对象 String类常...

  16. 新手容易混乱的String+和StringBuffer以及Java的方法参数传递方

    新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。 之前在交流群里和猿友们讨论string+和stringbuffer哪个速度快以及Java的方法参数传递的问题,引起了...

  17. [转]Java中的字符串操作(比较String,StringBuiler和StringBuffer)

    本文作者:@Yuchao Huang 原文链接:https://cnblogs.com/misterchaos/p/12782986.html 版权声明:自由转载-非商用-知识共享署名4.0 一、前言 刚开始学习Java时,作为只会C语言的小白,就为其中的字符串操作而感到震撼。相比之下,C语言在字节...

  18. String、StringBuffer、StringBuilder类

    String、StringBuffer、StringBuilder类 String、StringBuffer、StringBuilder类 (本篇文章内容包含网上资料,如有侵权请联系博主) 一、概念 String:字符串常量,对象不可变。 StringBuffer:字符串变量(线程安全),对象可变。 StringBuilder:字符串变...

  19. String,StringBuilder,StringBuffer的区别

    String,StringBuilder,StringBuffer的区别 String StringBuffer SrtingBuilder [java] view plain copy package com..demo.exercise1; /** String,StringBuffer,StringBuilder字符串拼接效率对比 */ public class StringConnectTimeDemo{ private final int

  20. String + StringBuilder StringBuffer对比

    String + StringBuilder StringBuffer对比 //每种方式测试次数 public static final int size = 100000; public static void main(String[] args) { String str = ; /** * 进行字符串初始化,避免第一个执行测试的方式耗费创建String对象时间 */ for (int i =

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2021, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词