黑马程序员——String类和基本数据类型包装类

来源:互联网 发布:js 日期转时间戳 编辑:程序博客网 时间:2024/05/21 14:50

——- android培训、java培训、期待与您交流! ———-


  • 黑马程序员String类和基本数据类型包装类
    • String类
    • StringBuffer
    • 基本数据类型对象包装类


黑马程序员——String类和基本数据类型包装类

String类

  • 字符串是一个特殊的对象。
    • Stings = new String();String s1=""; 两种写法都是在创建对象,使用起来一样。
  • 字符串一旦初始化就不可以被改变。
  • String str = "abc"; String str1 = new String("abc"); 有什么区别 ?
    1. java运行环境有一个字符串池,由String类维护,执行语句String str = “abc”时:
    2. 首先查看字符串池中是否存在字符串”abc”,如果存在则直接将“abc”赋给str,如果不存在则先在字符串池中新建一个字符串”abc”,然后再将其赋给str.
    3. 执行语句String str = new String(“abc”)时。不管字符串池中是否存在字符串“abc”,直接新建一个字符串“abc”,(注意,新建的字符串“abc”不是在字符串池中),然后将其赋给str
      • 由此可见1的效率要高于2。

String类部分方法

  • char charAt(int index)

    返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。

  • int length()

    返回此字符串的长度。

  • char[] to CharArray()

    将此字符串转换为一个新的字符数组。

  • int indexOf(String str)

    返回指定子字符串在此字符串中第一次出现处的索引。

  • boolean endsWith(String str)

    测试此字符串是否以指定的后缀结束。

  • String[] split(String reg)

    根据给定正则表达式的匹配拆分此字符串。

  • String substring(int index)

    返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。

  • String substring(int beginIndex, int endIndex)

    返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。

  • String(char[] arr)

    分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

String内存图:

String内存图

StringBuffer

  • 字符串的组成原理就是通过该类实现的。
  • StringBuffer可以对字符串内容进行增删。
  • StringBuffer是一个容器。
  • 很多方法与String相同。
  • StingBuffer是可变长度的。

StringBuffer特有方法

  • StringBuffer append(int x)

    将参数的字符串表示形式追加到序列。

  • StringBuffer delete(int start, int end )

    移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。

  • StringBuffer insert(int index,String str)

    按顺序将参数中的字符插入此序列中的指定位置,将该位置处原来的字符向后移,此序列将增加该参数的长度。

  • StringBuffer reverse();

    将此字符序列用其反转形式取代。

  • JDK1.5出现一个StringBuilder,区别是StringBuffer是同步的,StringBuilder是非同步的。

基本数据类型对象包装类

对应关系:

基本类型 包装类型 byte Byte short Short int Integer long Long boolean Boolean float Float double Double char Character
  • 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
  • 常用的操作之一:用于基本数据类型与字符串之间的转换。
  • 例:Integer的parseInt方法,intValue方法。
  • JDK1.5以后,简化了定义方式。
    • Integer x = new Integer(4);可以直接写成
    • Integer x = 4;//自动装箱。
    • x = x + 5;//自动拆箱。通过intValue方法。
  • 需要注意:
    • 在使用时,Integer x = null;上面的代码就会出现NullPointerException。
0 0
原创粉丝点击