zoukankan      html  css  js  c++  java
  • 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是非线程安全的,单线程的情况下尽量用它。

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

  • 相关阅读:
    抽象类
    处理网络问题的几种方法
    File类
    计算机专业的学生要怎样做才能避免成为低级的码农(转自TechFlow2019)
    java集合类
    分享一位程序员的时间管理
    WP7 操作XML文件
    C#和C/C++指针实现swap交换
    [置顶] IList接口数据动态、递归生成TreeView
    产生随机数
  • 原文地址:https://www.cnblogs.com/fengshaolingyun/p/6160494.html
Copyright © 2011-2022 走看看