广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java基础类库之StringBuffer类用法详解
  • 912
分享到

Java基础类库之StringBuffer类用法详解

2024-04-02 19:04:59 912人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

StringBuffer类 String类是在所有开发项目开发之中一定会使用的一个功能类,并且这个类拥有如下功能 每个字符串的常量都属于一个String类匿名对象,并且不能修改;St

StringBuffer类

String类是在所有开发项目开发之中一定会使用的一个功能类,并且这个类拥有如下功能

  • 每个字符串的常量都属于一个String类匿名对象,并且不能修改;
  • String类有两个常量池:静态常量池、运行常量池;
  • String类对象实例化建议直接使用赋值的形式完成,这样可以直接将对象保存在对象池中方便下次重用;

虽然String类很好用,但是我们发现它也有弊端,就是内容不允许频繁修改,所以为了解决问题,我们提供了StringBuffer类

StringBuffer 并不像String类那样拥有两种实例化方法,必须要想普通方法一样调用方法,这个时候可以考虑一下方法

  • 构造方法:public StringBuffer();
  • 数据追加:public StringBuffer append(数据类型、变量),相当于字符串中的“+”操作;
  • 构造方法:public StringBuffer(String str),相当于初始化

范例:观察String与StringBuffer对比

String类对象引用传递

public class JavaapiDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str ="hello";
		change(str);
		System.out.println(str);
	}
	public static void change(String temp) {
		temp+="Word";
	}

}

str内的值没有发生改变

StringBuffer类对象引用传递

public class JavaAPIDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuffer buf =new StringBuffer("Hello  ");
		change(buf);
		System.out.println(buf);
	}
	public static void change(StringBuffer temp) {
		temp.append("World");
	}

}

buf内的值发生了改变

由此可见String内的值不能改变,StringBuffer内的值可以改变,这就是两这最主要的区别

实际上大部分的情况下,很少会出现有字符串内容的改变,这种改变指的并不是针对静态常量池的改变;

范例:分析一下已有问题

public class JavaAPIDemo {

	public static void main(String[] args) {
	String strA="www.baidu.com";
	String strB="www."+"baidu."+"com";
	System.out.println(strA==strB);
	}

}

在这个时候strB对象里面的内容并不是真正改变,或者更严格的将,对于现在的strB当程序编译的时候就相当于下面形式

buf.append(“www.”).append(“baidu.”).append(“com”);

也就是说所有的”+“在我们编译后都变为了StringBuffer中的append()方法,并且在程序中String类对象和StringBuffer类对象本来就可以互相转换

  • String类对象变为StringBuferr可以依靠StringBuffer类构造方法或者使用append()方法
  • 所以类的对象都可以通过toString()方法将其变为String类型

在StringBuffer类里面除了可以支持字符串内容修改之外,实际上也添加了很多String所不具有的方法

public class JavaAPIDemo {

	public static void main(String[] args) {
	
	StringBuffer buf=new StringBuffer();
	buf.append(".com").insert(0,"www.").insert(4, "baidu");
	System.out.println(buf);
	}

}

删除指定范围的数据:public StringBuffer delete(int start,int end);

public class JavaAPIDemo {

	public static void main(String[] args) {
	
	StringBuffer buf=new StringBuffer();
	buf.append("Hello World!").delete(6, 12);
	System.out.println(buf);
	}

}

-字符串内容反转:public StringBuffer reverse();

public class JavaAPIDemo {

	public static void main(String[] args) {
	
	StringBuffer buf=new StringBuffer();
	buf.append("Hello World!");
	System.out.println(buf.reverse());
	}

}

实际上与StringBuffer类还有一个类似的功能类:StringBuilder类,这个类是在jdk1.5之后提供的,该类中提供的方法与StringBuffer类相同,区别在于StringBuffer类中的方法属于线程安全的,全都使用了synchronized关键字进行标注,而StringBuilder类属于非线程安全的

面试题:请解释String、StringBuffer、StringBuilder的主要区别?

String类是字符串的首选类型,其最大的特点是内容不允许修改;

StringBuffer与StringBuilder类的内容允许修改;

StringBuffer是在JDK1.0的时候提供的,属于线程安全操作,而StringBuilder是在JDK1.5的时候提供的不是线程安全操作

到此这篇关于Java基础类库之StringBuffer类用法详解的文章就介绍到这了,更多相关Java StringBuffer类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java基础类库之StringBuffer类用法详解

本文链接: https://www.lsjlt.com/news/165269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java基础类库之StringBuffer类用法详解
    StringBuffer类 String类是在所有开发项目开发之中一定会使用的一个功能类,并且这个类拥有如下功能 每个字符串的常量都属于一个String类匿名对象,并且不能修改;St...
    99+
    2022-11-13
  • JAVA基础类库之String类,StringBuffer类和StringBuilder类
    目录引言String类String类构造方法 String常用方法:简单介绍的方法详细介绍的方法StringBuffer/StringBuilder常用方法StringBu...
    99+
    2022-11-12
  • Java基础之StringBuffer详解
    目录一、前言二、用法三、结果四、长度 容量五、IStringBuffer接口六、value和capacity一、前言 StringBuffer是可变长的字符串 1.append 追加...
    99+
    2022-11-12
  • Java基础之Object类详解
    object类的介绍 object是所有类的直接父类或者是间接父类,为什么这么说呢? 可以查询java8的API帮助文档: 可见在这样的一个类树中,所有的类的根还是Object类 ...
    99+
    2022-11-12
  • Java基础类之ArrayUtils工具类详解
    目录1、引入pom依赖2、ArrayUtils中的方法:3、举例总结1、引入pom依赖 <!-- https://mvnrepository.com/artifact/o...
    99+
    2022-11-12
  • Java基础全面讲解StringBuffer类的使用
    目录StringBuffer类常用方法字符串连接指定位置添加内容字符串反转替换指定范围的内容字符串截取删除指定范围的字符串查找指定的内容是否存在String与StringBuffer...
    99+
    2022-11-13
  • Java基础类学习之String详解
    目录1 String不可变性2 不可变的好处3 String+和StringBuilder效率差异4 String, StringBuffer and StringBuilder5 ...
    99+
    2022-12-27
    Java String类 Java String
  • Python基础之元类详解
    1.python 中一切皆是对象,类本身也是一个对象,当使用关键字 class 的时候,python 解释器在加载 class 的时候会创建一个对象(这里的对象指的是类而非类的实例)...
    99+
    2022-11-12
  • Java基础之详解基本数据类型的使用
    一、整型 主要扩展一下不同进制的整型 二进制、八进制、十进制、十六进制 * 二进制 : 0B(数字零+B) 0b(数字零+b) * 八进制 :0(数字零开头) * 十进制 :正常写...
    99+
    2022-11-12
  • Java基础之枚举Enum类案例详解
    目录一、文章序言二、代码实践三、面试相关一、文章序言 Java中引用类型:数组、类、接口、枚举、注解 枚举这个既熟悉又陌生的东西具体再哪里可以使用呢? 什么是枚举? 枚举是一个引用...
    99+
    2022-11-12
  • Java 基础之内部类详解及实例
     Java 基础之内部类详解及实例内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,...
    99+
    2023-05-31
    java 内部类 ava
  • Java抽象类(基础详解)
    目录 1.概念 2.抽象类的使用 2.1抽象方法 2.2抽象类 2.3抽象类的使用 2.4注意事项 1.概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法,普通方法,static方法,常量和变量等内容...
    99+
    2023-10-21
    java 开发语言
  • Java中的类(基础详解)
    文章目录 可以有多个类,但只能有一个public类类 = 字段+方法类的构造函数我们没写构造函数的时候如果我们自己写了构造函数构造函数中 this 的使用 类的修饰符 / 控制符第一...
    99+
    2023-09-01
    java jvm c++
  • Java字符串相关类StringBuffer的用法详解
    目录一、StringBuffer 介绍二、方法详解1.构造方法2.增 StringBuffer append(…)3.删 StringBuffer delete(int...
    99+
    2022-11-13
  • Python基础之数据类型详解
    目录一、整数二、浮点数三、复数四、运算符,优先级以及结合性五、混合类型计算六、除法七、十进制,八进制,十六进制和二进制八、位操作九、集合十、布尔类型十一、其他数值类型一、整数 pyt...
    99+
    2022-11-12
  • javascript基础之数据类型详解
    目录1.数据类型1.1 为什么需要数据类型1.2 变量的数据类型1.3 数据类型分类2. 简单数据类型(基本数据类型)2.1 数字型Number1. 数字型进制2.数字型范围2.2 ...
    99+
    2022-11-12
  • Java 基础--Arrays工具类详解
    目录1、数组转换成字符串2、数组转换成集合(1)asList(2)stream 流操作(3)Collections.addAll()3、对数组进行升序排列4、判断数组是否相等5、所有...
    99+
    2022-11-12
  • java基础之方法详解
    目录一、什么是方法二、方法的定义三、方法的调用四、方法的重载五、递归一、什么是方法 Java方法是语句的集合,他们在一起执行一个功能。 1.方法是解决一类问题的步骤的有序...
    99+
    2022-11-12
  • Java基础详解之包装类的装箱拆箱
    目录一、包装类二、装箱与拆箱三、静态方法四、自动装箱与自动拆箱一、包装类 概念: Java提供了两个类型系统,基本数据类型和引用数据类型,使用基本数据类型在于效率,然而很多情况下回创...
    99+
    2022-11-12
  • 【Java 基础篇】Java类加载器详解
    文章目录 导言一、类加载器的概念二、类加载器的工作原理三、类加载器的使用示例四、自定义类加载器总结 导言 Java类加载器(Class Loader)是Java虚拟机(JVM)的一部分,负责将类的字节码加载到内存中,并将其转...
    99+
    2023-08-23
    java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作