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字符串的特性(一)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值