>>  就业明星
>>  就业感想
>>  招聘信息
>>  学习心得
>>  职场指导
>>  就业喜讯
>>  学习方法



  
 
所在位置:石家庄动漫软件职业技术学校 >> 就业明星 >> 学习心得
Java String常用方法详解
作者: 来源: 点击数:1196 更新时间:2011-12-13 17:50:15   

     前几篇文章中提到过“Java String的常用方法及使用注意事项”,下面清美教育河北盛邦校区专业老师给大家讲述下Java String的常用方法,用String 常量问题的三个例子对String对象的intern方法理解和分析。
    String中的final用法和理解
finalStringBuffera=newStringBuffer("111"); a=b;//此句编译不通过 a.append("222");//编译通过 [/ol]
    可见,final只对引用的"值"(即内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。
String常量池问题的四个例子
下面是几个常见例子的比较分析和理解:
    [1] Stringb="a"+1; Stringa="atrue"; System.out.println    ((a==b));//result=trueStringb="a"+3.4; [/ol]
    分析:JVM对于字符串常量的"+"号连接,将程序编译期,JVM就将常量字符串的"+"连接优化为连接后的值,拿"a" + 1来说,经编译器优化后在class中就已经是a1。在编译期其字符串常量的值就确定下来,故上面程序最终的结果都为true。
    [2] Stringbb="b"; System.out.println((a==b));//result=false[/ol]
    分析:JVM对于字符串引用,由于在字符串的"+"连接中,有字符串引用存在,而引用的值在程序编译期是无法确定的,即"a" + bb无法被编译器优化,只有在程序运行期来动态分配并将连接后的新地址赋给b。所以上面程序的结果也就为false。
     [3] finalStringbb=getBB(); System.out.println((a==b));//result=false return"b"; [/ol]
    析:JVM对于字符串引用bb,它的值在编译期无法确定,只有在程序运行期调用方法后,将方法的返回值和"a"来动态连接并分配地址为b,故上面程序的结果为false。
通过上面3个例子可以得出得知:
    Strings="a"+"b"+"c"; [/ol]
    就等价于String s = "abc";
    StringBuffertemp=newStringBuffer(); Strings=temp.toString(); [/ol]
    由上面的分析结果,可就不难推断出String 采用连接运算符(+)效率低下原因分析,形如这样的代码:
    publicclassTest{ Strings=null; s+="a"; } [/ol]
    每做一次 + 就产生个StringBuilder对象,然后append后就扔掉。下次循环再到达时重新产生个    StringBuilder对象,然后 append 字符串,如此循环直至结束。 如果我们直接采用 StringBuilder 对象进行 append 的话,我们可以节省 N - 1 次创建和销毁对象的时间。所以对于在循环中要进行字符串连接的应用,一般都是用StringBuffer或StringBulider对象来进行append操作

 

     

      友情提示:如果您正在为就业难而烦恼,如果您想跳槽转行而不知该如何决择,如果您因激烈的职业竞争而想充电学习,请点击在线客服,或者拨打0311—87162121 87162112我们会有专业的职业规划老师为您解除困惑!

上一篇:清美教育河北盛邦:网站营销,内容营销技巧!
下一篇:校区老师教你如何区分Blind和Shutter
[在线报名] [打印此文] [关闭窗口]
版权所有 石家庄清美动漫软件职业技术学校
传真:0311-87162110-8010 邮箱:hbbeneter@sina.com 冀ICP备16001955号-2
校址:石家庄市建设北大街东海国际 电话:400-800-5730 0311-87162121 87612112