Java字符串的特性(一)

java中有八中基本数据类型,分别为byte short int long四种整数类型,double float两种小数类型,char类型,boolean类型,而String类型则不属于八种基本数据类型之一,String类型则是最为特别的类型。String类型是一个类,每一个字符串都是String类的一个对象,所以字符串的实例都是存在于堆内存中的。当创建一个String变量的时候,他们指向的都是堆内存中的一个String对象的地址。而对于基本的数据类型在被创建的时候则直接指向这个变量的值;
还有一点就是在条件语句中判断String类型的变量是否相等的时候不能用==,应该用.equals。因为String的变量指向的是一个地址;
一:java字符串中的不变性。
什么是java字符串的不变性呢?java字符串在被创建出来之后,这个字符串就存在于堆内存中,不能被修改,就像是创建了一个对象一样。但是可以在语句中做出类似修改的操作。例如:
String s1="你真好!"  
s1=s1+"好喜欢你哦!"。
这时候打印s1时的结果为:你真好!我好喜欢你哦!
这样貌似是对s1这个字符串进行了修改,其实不然。在java中每次对字符串的修改都是创建了一个新的字符串对象。(s1+"好喜欢你哦!")就是新创建出来的字符串对象,占用了一个堆内存中的地址,而s1这个变量,重新指向了这个地址。原来s1指向的“你真好!”这个字符串对象仍然存在于堆内存中,只是没有被那个变量引用罢了,过不久就会被GC;每次newString的时候也都是创建一个新的String对象;
还有一点值得注意的是,如果在内存中创建了一个S2=“hello”;这时候S3=“hello”;其实S3跟S2引用的是同一个字符串对象;
二。java字符串的比较
java字符串用==进行比较的时候,比较的是地址,而用.equals比较的时候比较的则是字符串中的内容
三.java字符串常用的方法
String类包含了许多相应处理字符串的方法,其中包括转换字符大小写,获取字符串长度,截取字符串,对字符串进行分割等等。
  列举常用的字符串方法:
    1.intlength();                                  返回字符串的长度
     2.intindexOf(intch);                       返回该字符串第一个ch字符所在的位置
    3.int indexOf(Stringstr);                 返回该字符串子字符串str起始位置
    4.int lastIndexOf(int ch);                 返回该字符串最后一个ch字符的位置
    5.int  lastIndexOf(Stringstr);            返回该字符串最后一个str子字符串的起始位置
    6.String subString(intbeginIndex);  从字符串某个位置到结束截取字符串
    7. String subString(int beginIndex,  intendIndex);  从字符串的某个起始位置到结束(不包括末位置)截取字符串
    8.String trim();                                返回去除了前后空格的字符串
    9.boolean equals( Obiect object);   将自定字符串与指定对象比较
    10.StringtoLowerCase();                   将字母转换成小写
    11.StringtoUpperCase()                  将字幕转换成大写
    12.char  charAt(intindex);                获取字符串指定位子的字符 
    13 .String [] split(String regex ,intlimit);     将字符串进行截取,返回子字符串数组 
    14.byte[] getBytes();                       将字符串转变为byte类型的数组
注意:当返回某一字符或者子字符串的位置时如果在该字符串中没有,则返回-1
模拟运行
  Java字符串的特性(一)结果
Java字符串的特性(一)

 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(Java字符串的特性(一))