首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java:StringBuilder基本使用

大家好,又见面了,我是你们朋友全栈君。 概述 StringBuilder表面看起来是用来拼接、处理字符串一个工具类,但它内部实现其实是处理字符序列。...StringBuilder与StringBuffer StringBuilder与StringBuffer具有相同功能。 StringBuffer支持了线程安全(同步访问)。...StringBuilder sb = new StringBuilder("爸爸脸蛋有很多褶皱"); sb.delete(3, 4); System.out.println...爸爸》 容量和长度 new StringBuilder(int capacity) StringBuilder默认初始容量是16,可用带参构造器来自定义初始容量。...想知道更多StringBuilder用法,请浏览Java StringBuffer 和 StringBuilder 类 | 菜鸟教程 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

29710

StringBuilder生产使用一次事故

StringBuilder生产使用一次事故 使用Java实现较长逻辑代码中,无可避免会创建众多String对象,又是为了节省内存空间以及优化程序效率,会选择使用StringBuilder或者StringBuffer...起因 项目部署后,NPE次数变多了,且均在StringBuilder构造器中,这引起项目维护人重视!...深入源码查看,进入StringBuilder.java带参构造器 /** * 构造初始化为指定字符串内容字符串生成器。...解决方案 基于以上问题,基本解决方案就是,避免传入NULL对象,或者使用append()。...方法一: 对于使用StringBuilder构造器对象,进行非空判断,例如: public static void main(String[] args) { String obj = null

42040
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文搞懂String、StringBuilderStringBuilder区别

    StringBuffer 使用示例 /********************** StringBuffer 使用示例 ***********************/ StringBuilder sb...★StringBuffer是线程安全StringBuilder不是线程安全 ” StringBuffer是线程安全,也就是说,它所有公共方法都是同步,所以你可以在多线程环境中安全地使用它。...因此,如果你在单线程环境中需要创建一个可变字符串,你应该使用StringBuilder。...StringBuilder和StringBuffer StringBuilder和StringBuffer类内部实现非常相似,都使用一个char数组(称为value)来存储字符串。...因此,如果你在单线程环境中需要创建一个可变字符串,应该使用StringBuilder,因为它性能比StringBuffer更好。

    1.1K10

    StringBuilder用法

    使用char[] value字符数组保存字符串,但是没有用final关键字修饰,所以StringBuilder是可变。...而StringBuilder则没有保证线程安全,从而性能略高于StringBuffer。 使用场景 频繁使用字符串拼接时候可以用StringBuilder(推荐)或者StringBuffer。...用法 一、StringBuilder对象创建(下文builder是StringBuilder创建出来对象) 1.常规创建 StringBuilder builder = new StringBuilder...(); 2.在创建时候添加初始字符串 StringBuilder builder = new StringBuilder("abc"); 3.在创建时候添加初始长度 StringBuilder builder...= new StringBuilder(初始长度); 这里需要注意是如果在StringBuilder对象创建时没有指定长度,StringBuilder对象会自动生成一个16位字符数组 二、StringBuilder

    47610

    详细讲解String和StringBuffer和StringBuilder使用

    前言 在 Java中字符串属于对象,那么Java 中提供了 String 类来创建和操作字符串,即是使用对象;因为String类修饰字符一旦被创建就不可改变,所以当对字符串进行修改时候,需要使用到...是因为我们需要使用对象,使用String类中一堆方法。如果要知道有哪些方法,可以查一下API,要使用时不知道用哪些方法,那么就可以去查,用到就查,也不用每个都记住。...区别 StringBuilder为java.lang类,是一个可变字符序列,提供了与StringBuffer兼容API,StringBuffer和StringBuilder方法是一模一样。...在jdk1.5版本后,推出StringBuilder被用作一个StringBuffer简易替换,用在字符串缓冲区被单个线程使用时候。...使用StringBuilder出现,是为了提高效率,是非同步,是对单线程访问效率高,对于StringBuffer是同步,对多线程访问是安全。这些是不同点,相同是功能一模一样哦。

    32320

    String,StringBuffer和StringBuilder区别及使用场景

    StringBuffer 与 StringBuilder方法和功能完全是等价,只是StringBuffer中方法大都采用了synchronized 关键字进行修饰,因此是线程安全,而StringBuilder...2、StringBuilder和StringBuffer类型字符串是可变,不同是StringBuffer类型是线程安全,而StringBuilder不是线程安全 3、如果是多线程环境下涉及到共享变量插入和删除操作...1.使用String类场景:在字符串不经常变化场景中可以使用String类,例如常量声明、少量变量运算。...2.使用StringBuffer类场景:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。...3.使用StringBuilder场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程环境中,则可以考虑使用StringBuilder,如SQL语句拼装、JSON封装等。

    43930

    StringBuilder与StringBuffer

    main函数中输出结果不为预期5000,并且每次结果可能会不一致,因此StringBuilder是线程不安全类 StringBuffer package com.keytech.task; import...,因此它是线程安全类 StringBuffer使用synchronized保证线程安全 @Override public synchronized StringBuffer append(String...StringBuffer在方法实现上使用了synchronized关键字对方法进行同步,因此是线程安全,而StringBuilder则没有进行特殊同步或并发处理。...通常情况下,字符串拼接出现在方法内(在方法中以局部变量方式使用,可以做到线程封闭),使用StringBuilder进行字符串拼接会大大提高性能,属于堆栈封闭,单个线程操作对象,因此不存在线程不安全问题...,优先选择使用StringBuilder

    40400

    String、StringBuffer、StringBuilder区别

    String 字符串常量,字符串长度不可变,每次对String操作都会产生一个新对象。不仅效率低下,而且大量浪费有限内存空间。 StringBuffer 是线程安全字符串变量。...任何对它指向操作都不会产生新对象。如果要使结果变为String类型,可以调用StringbuffertoString方法。...StringBuilder是线程不安全字符串变量,Stringbuilder和 Stringbuffer类功能基本相似,主要区别在于,Stringbuffer是线程安全Stringbuilder是线程不安全...速度一般从小到大为String 、StringBuffer、StringBuilder。 String:适合用于操作少量数据时 StringBuffer:适合用于多线程字符串缓冲区下操作大量数据。...StringBuilder:适合用于单线程字符串缓冲区下操作大量数据。 第一次工作面试就被问到过。  java基础啊

    21220

    StringBuilder和StringBuffer区别

    大家好,又见面了,我是你们朋友全栈君。 StringBuilder和StringBuffer区别在哪里?...当接触这个问题时候,我们可能第一反应就是,StringBuilder是线程不安全,StringBuffer是线程安全 为什么StringBuilder是线程不安全,StringBuffer是线程安全...分析 在分析这个问题之前,我们要知道StringBuilder和StringBuffer内部实现其实跟String是一样,都是通过一个char类型数组进行存储字符串,不同是String类中char...数组是final修饰,是不可变,而StringBuilder和StringBuffer中char数组没有被final修饰,是可变。...都继承了AbstractStringBuilder //存储字符串具体内容 char[] value; //已经使用字符数组数量 int count; 在看一下StringBuilderappend

    29210

    CA1838:不要对 PInvoke 使用 StringBuilder 参数

    如何解决冲突 通常情况下,解决冲突涉及到重新处理 P/Invoke 及其调用方以使用缓冲区而不是 StringBuilder。 具体情况取决于 P/Invoke 用例。...下面是使用 StringBuilder 作为要由本机函数填充输出缓冲区常见方案示例: // Violation [DllImport("MyLibrary", CharSet = CharSet.Unicode...则可能需要根据大小以不同方式创建缓冲区,以避免使用 stackalloc 分配大型缓冲区。...前面的示例使用 2 个字节宽字符 (CharSet.Unicode)。 如果本机函数使用单字节字符 (CharSet.Ansi),可使用 byte 缓冲区而不是 char 缓冲区。...何时禁止显示警告 如果你不关心封送 StringBuilder 造成性能影响,可禁止显示此规则冲突警告。

    49100

    StringBuilder 源码分析

    StringBuilder 与 StringBuffer 区别与常见方法 StringBuilder 可变字符串,线程不太安全,但效率高,推荐使用。...StringBuffer 可变字符串,线程安全,但效率低,不推荐使用。 String 是不可变字符串,根据实时情况使用,在循环当中不要使用,因为会产生好多没用字符串。...相关面试题回答 StringBuilder 与 StringBuffer 区别,StringBuilder 与 String 区别。...3)如果是简单声明一个字符串没有后续过多操作,使用 String,StringBuilder 均可,若后续对字符穿做频繁添加,删除操作,或者是在循环当中动态改变字符串长度应该用 StringBuilder...使用 String 会产生多余字符串,占用内存空间。

    70620

    API、String、StringBuilder

    API API概述-帮助文档使用 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中API ​ 指就是...JDK 中提供各种功能 Java类,这些类将底层实现封装了起来,我们不需要关心这些类是如何实现,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。...内容,使用replacement进行替换,返回新字符串 3....regex) 根据传入规则切割字符串,得到字符串数组 StringBuilderStringBuilder类概述 ​ 概述 : StringBuilder 是一个可变字符串类,我们可以把它看成是一个容器...StringBuilder类和String类区别 String类:内容是不可变 StringBuilder类:内容是可变 StringBuilder构造方法 常用构造方法 方法名 说明 public

    63650

    String、StringBuilder和StringBuffer区别

    StringBuilder StringBuilder类也代表可变字符串对象。实际上,StringBuilder和StringBuffer基本相似,两个类构造器和方法也基本相同。...不同是:StringBuffer是线程安全,而StringBuilder则没有实现线程安全功能,所以性能略高。...我们可以看一下StringBuffer中方法,用了synchronized关键字修饰,所以是线程安全 总结 1、速度方面 StringBuilder > StringBuffer > String...StringBuilder和StringBuffer对象是变量,对变量操作是直接对该对象就行更改,因此不会进行反复创建和回收。所以在运行速度上比较快。...2、线程安全 StringBuilder(非线程安全),StringBuffer(线程安全) 3、使用场景 String:适用于少量字符串操作。

    25620

    String,StringBuffer与StringBuilder区别??

    String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要说, String 类型和 StringBuffer 类型主要性能区别其实在于...而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新对象,再改变对象引用。...所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变情况下。...在大部分情况下 StringBuilder > StringBuffer java.lang.StringBuilde java.lang.StringBuilder一个可变字符序列是5.0新增...此类提供一个与 StringBuffer 兼容 API,但不保证同步。该类被设计用作 StringBuffer 一个简易替换,用在字符串缓冲区被单个线程使用时候(这种情况很普遍)。

    20330
    领券