java基础四-String/StringBuffer/StringBuilder区别

这篇具有很好参考价值的文章主要介绍了java基础四-String/StringBuffer/StringBuilder区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,它的方法是同步的,可以在多线程环境中使用而不会出现数据竞争和不一致的问题。因为方法是同步的,所以在多线程环境中使用StringBuffer会带来一些性能上的损失。

而StringBuilder 是非线程安全的,它的方法没有进行同步,不适合在多线程环境中使用。但是由于不需要进行同步,StringBuilder在单线程环境下性能比StringBuffer更好。

String常用方法:文章来源地址https://www.toymoban.com/news/detail-622229.html

    /**
     * indexOf():返回指定字符的索引。
     *         charAt():返回指定索引处的字符。
     *         replace():字符串替换。
     *         trim():去除字符串两端空白。
     *         split():分割字符串,返回一个分割后的字符串数组。
     *         getBytes():返回字符串的 byte 类型数组。
     *         length():返回字符串长度。
     *         toLowerCase():将字符串转成小写字母。
     *         toUpperCase():将字符串转成大写字符。
     *         substring():截取字符串。
     *         equals():字符串比较。
     *         (); 字符串转换为char数组
     *         contains(); 字符串是否包含指定的字符序列
     */
    @Test
    void testStringMethod(){
        String str = " abdcdeeFQ111rta ";
        System.out.println("返回r的索引=" + str.indexOf('r'));
        System.out.println("返回3索引处的字符=" + str.charAt(3));
        str = str.replaceFirst("a","z");

        System.out.println("一个字符串替换为z后=" + str);
        str = str.trim();
        System.out.println("去除字符串两端空白=" + str);
        String[] strings = str.split("ee");
        System.out.println("分割字符串,返回一个分割后的字符串数组=" + strings[0]);
        byte[] bytes = str.getBytes();
        System.out.print("返回字符串的 byte 类型数组:");
        for (byte b:bytes) {
            System.out.print(" " + b);
        }
        System.out.println();
        System.out.println("返回字符串长度="+str.length());
        System.out.println("将字符串转成小写字母=" + str.toLowerCase());
        System.out.println("将字符串转成大写字符=" + str.toUpperCase());
        System.out.println("截取字符串从2到5的字符=" + str.substring(2,5));
        System.out.println("截取字符串从2到结束的字符=" + str.substring(2));
        System.out.println("字符串比较\"aaa\"是否和\"bbb\"相等:" + "aaa".equals("bbb") );
        char[] chars = str.toCharArray();
        System.out.println("字符串转换为char数组");
        System.out.println("字符串是否包含指定的字符序列:" + str.contains("111"));

    }

到了这里,关于java基础四-String/StringBuffer/StringBuilder区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【java】关于String、StringBuffer和StringBuilder的那些事

      目录 一、String 1、构造方法 2、字符串的不可变性 3、字符串的比较 4、 String的常用方法: 二、StringBuider和StringBuffer 1、字符串的拼接 2、StringBuider与StringBuffer 总结     String类提供的构造方式非常多,常用的就以下两种:   注意: 1、String 是引用类型,内部并不存储字符串

    2024年04月10日
    浏览(54)
  • 【JAVA】String ,StringBuffer 和 StringBuilder 三者有何联系?

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中我们介绍了JAVA中String的运用方法,事实上在JAVA字符串操作中仅仅只知道String方法是远远不够的,今天我们要介绍的 StringBuffer 和 StringBuilder 在字符串操作中同样占据总要地位。 和 String 类不同的是,S

    2024年02月14日
    浏览(52)
  • 【后端面经-Java】String与StringBuffer与StringBuilder的比较

    目录 1. String 2. StringBuffer 3. StringBuilder 4. 性能提升 5. 总结和比较 面试模拟 参考资料 不可变 查看 String 源码如下:由源码可知,String中存储数据的数组被 final 修饰,因此是不可变的 运算和操作 创建对象 创建对象有两种方式:两种方式都会在栈中创建一个字符串变量

    2024年02月16日
    浏览(43)
  • java中的String使用注意事项、StringBuilder、StringBuffer、StringJoiner

    String使用注意事项 这里第二次创造了0个对象是因为字符串常量池中已经有\\\"abc\\\" StringBuilder 注意StringBuilder支持链式编程 StringBuilder 线程安全与不安全的区别在于,当系统里存在很多人同时操作同一个StringBuilder就可能出bug,而StringBuilder不会。 StringJoiner

    2024年02月12日
    浏览(33)
  • String、StringBuffer、StringBuilder 的区别?

    一. 介绍 String、StringBuffer、StringBuilder:    前言: String、StringBuffer、StringBuilder 均在java.lang包下; String:  在Java中,String是一个特殊的引用类型,用于表示文本字符串。它提供了许多方法来操作和处理字符串,比如连接、截取、查找、替换等。 String类内部使用字符数组(ch

    2024年02月13日
    浏览(53)
  • String与StringBuffer/StringBuilder有什么区别?

    可变性: String 使用final修饰数组,所以String是不可变的; StringBuilder与StringBuffer都继承自AbstactStringBuilder父类,在AbstrctStringBuilder中使用char[]value字符数组保存字符串,但是没有用final修饰,所以StringBuilder与StringBuffer都是可变的; 么次对String类型进行修改时,都会

    2024年02月12日
    浏览(45)
  • 36、Java 中的 String、StringBuilder、StringBuffer、字符串常量池和 intern 方法

    ✏️ Java 中用 java.lang.String 类代表字符串 ✏️ 底层用 char[] 存储字符数据。从 Java9 开始,底层使用 byte[] 存储字符数据 🌿 字符串的底层是 char[] ,但是 char 数组和字符串不能等价。 char 数组是 char 数组,字符串是字符串。 🌿 C 语言中是可以把 char 数组 和字符串等价的 ✏️

    2023年04月08日
    浏览(62)
  • String、StringBuilder和StringBuffer之间的区别是什么?

    String 、 StringBuilder 和 StringBuffer 在Java中都用于处理文本数据,但它们之间存在一些关键区别,主要体现在可变性、线程安全性和性能上。 String 不可变性 : String 类的对象是不可变的。这意味着一旦 String 对象被创建,它所包含的字符序列就不能被改变。每次对字符串进行修

    2024年02月21日
    浏览(47)
  • 面试官:请聊一聊String、StringBuilder、StringBuffer三者的区别

    面试官 :“小伙子,在日常的写代码过程中,使用过String,StringBuilder和StringBuffer没?” 我: “用过的呀!” 面试官: “那你就来聊一聊,他们之间有什么区别,不同场景下如何选择吧” 我: “好嘞!” 在Java的开发过程中,使用频率最高的就是String字符串,但由于在字符

    2024年01月18日
    浏览(44)
  • 7.1 String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?

    可变性 简单的来说: String 类中使用 final 修饰字符数组来保存字符串, private final char value[] ,所以 String 对象是不可变的。 补充(来自issue 675):在 Java 9 之后,String 、 StringBuilder 与 StringBuffer 的实现改用 byte 数组存储字符串 private final byte[] value 而 StringBuilder 与 Str

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包