字符串讲解

一、字符串:在java中将与字符串有关的内容面向对象了,形成的类叫String,字符串表示的方法--""

二、分两类:对于字符串整体有两个地方可能会发生变化:1.引用的指向   2.字符串本身

        1.不可变字符串:String:说的是字符串本身没有发生变化,与引用无关

        2.可变字符串:StringBuffer/StringBuilder:说的是字符串本身发生了改变,与引用无关.

三、字符串常量的保存位置:放在了常量区,常量区可以认为是堆区中一块儿特殊的区域.

        常量的特点:同一个名字的字符串在内存中只允许存在一个.

四、==和equals()方法:

        ①“==”比较两个字符串的地址

        ②equals()比较的是内容:对object方法的重写

  1. public boolean equals(Object anObject) {  
  2.         if (this == anObject) {  
  3.             return true;  
  4.         }  
  5.         if (anObject instanceof String) {  
  6.             String anotherString = (String) anObject;  
  7.             int n = value.length;  
  8.             if (n == anotherString.value.length) {  
  9.                 char v1[] = value;  
  10.                 char v2[] = anotherString.value;  
  11.                 int i = 0;  
  12.                 while (n-- != 0) {  
  13.                     if (v1[i] != v2[i])  
  14.                             return false;  
  15.                     i++;  
  16.                 }  
  17.                 return true;  
  18.             }  
  19.         }  
  20.         return false;  
  21.     } 

五、String常用的方法:

    1. contains();

    2.equals();

    3.equalsIgnoreCase();

    4.startsWith();

    5.endsWith();

    6.String(char[] value);

    7.String(char[] value, int offset, int count);

    8.static String copyValueOf(char[] data);

    9.String(byte[] bytes);

    10.String(byte[] bytes, int offset, int length);

    11.String.valueOf();

    12.String replace(char oldChar, char newChar);

    13.String substring(int beginIndex) ;

    14.String trim() ;

    15.String[] split(String);

六、可变字符串:

    1.StringBuffer(jdk1.0):可变字符串,本身是可变的.与引用无关.是线程安全的,要考虑       线程安全问题.

    2.StringBuilder(jdk1.5):可变字符串,本身是可变的.与引用无关.是线程不安全的,不        需要考虑线程安全问题.

    3.区分: 在不考虑线程安全的前提下尽量使用StringBuilder,因为他的效率更高,速度      更快

七、方法的使用:

八、包装类:

简单数据类型                包装类
         * byte                        Byte
         * short                    Short
         * int                        Integer
         * long                        Long
         * float                    Float
         * double                    Double
         * boolean                    Boolean
         * char                        Charactor
         * 
    作用:1.可以更加方便对简单数据类型的操作
         * 2.可以方便实现简单数据类型与字符串之间的转换
         * 3.便于在集合中存储

注意:只有数值型的字符串才能转成简单数据类型,否则报异常  NumberFormatException

转载于:https://my.oschina.net/u/3174809/blog/1829091

你可能感兴趣的:(字符串讲解)