• day16 常用类(String、StringBuffer、StringBuilder)


    1、String是唯一一个可以直接用常量赋值的引用数据类型。

    String的常量也是一个对象。

    数据段——字符串常量池。

    2、每一个字符串常量对象在加载期放入字符串常量池。

    java对String常量会在加载期预加载,产生到数据段的字符串常量池中。

    运行的时候,如果要用到某个String常量,只需要直接从常量池中取出即可。

    3、String拥有一个特殊点叫:String对象内容不可变。

    这导致String在做字符串拼接的时候,会有比较大的内存消耗,而StringBuilder和StringBuffer就是用来解决String内容不可变这个问题的。

    4、在java中专门重载了“+”号运算符,用来实现字符串的拼接。

    在java中也针对String设计了大量的操作方法:

    1、String跟数组相关的方法:length(),charAt(),indexOf(),lastIndexOf(),toCharArray()

    2、String跟字母有关的方法:toUpperCase(),equalsIgnoreCase()不区分大小写比较两字符串,compareTo()字典顺序比较

    3、与内容操作相关:replace(),endWith(),subString()截取字符串,concat()字符串拼接,contains()判断子串

    4、最重要的三个方法:

    4-1、trim()——去掉字符串前后的空格,(接收字符串输入的时候默认调用的方法)养成习惯。

    4-2、split()——做字符串拆分,根据指定的分隔符(传输内容的时候,按一定格式传输和拆分)。

    4-3、matchs()——正则表达式效验。

    正则表达式:字符串内容的匹配模板。

    正则表达式本身就是一个字符串。

    符号:

    1、[]代表一个字符,里面的内容代表有哪些选择。

    2、{}代表前面的正则式出现的次数。

    {m,n}最少出现m次,最多出现n次      {m,}最少出现m次         {m}只能出现m次

    3、()代表分组可选(_|_|_|...)

    StringBuffer/StringBuilder

    1、它们是全新的类型,与String没有继承关系。

    2、它们不享受String的特殊语法。

    3、它们是为了解决String的内容不可变问题出现的,它们是可变的。

    4、它们的方法没有String丰富,大部分方法用于做字符串的拼接或删除,用的时候多半需要下标。

    区别:

    StringBuffer先与StringBuilder产生。

    StringBuffer是线程安全的。

    StringBuilder是非线程安全的,单线程的情况下尽量用它。

    同样的情况下,凡是线程安全的,性能都低一些,凡是线程不安全的,性能都高一些。

  • 相关阅读:
    关于findViewById返回空指针的错误
    android客户端向服务器发送图片和文字,类似于发微博。能用json格式发送吗?
    nodejs 学习资料大全
    篇章三:[AngularJS] 使用AngularCSS動態載入CSS
    篇章二:[AngularJS] 使用AngularAMD動態載入Service
    篇章一:[AngularJS] 使用AngularAMD動態載入Controller
    Angular 资料大集合
    js-音乐播放器,播放|暂停|滑块的功能
    JS-以鼠标位置为中心的滑轮放大功能demo1
    使用 Electron 构建桌面应用(拖动控制篇)
  • 原文地址:https://www.cnblogs.com/fengshaolingyun/p/6160494.html
Copyright © 2020-2023  润新知