<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java學習

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

     

    StringBuffer類和System類

    9.5.3.2 StringBuffer

             StringBuffer類和String一樣,也用來代表字符串,只是由于StringBuffer的內部實現方式和String不同,所以StringBuffer在進行字符串處理時,不生成新的對象,在內存使用上要優于String類。

             所以在實際使用時,如果經常需要對一個字符串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。

             StringBuffer類中存在很多和String類一樣的方法,這些方法在功能上和String類中的功能是完全一樣的。

    但是有一個最顯著的區別在于,對于StringBuffer對象的每次修改都會改變對象自身,這點是和String類最大的區別。

             另外由于StringBuffer是線程安全的,關于線程的概念后續有專門的章節進行介紹,所以在多線程程序中也可以很方便的進行使用,但是程序的執行效率相對來說就要稍微慢一些。

             1StringBuffer對象的初始化

    StringBuffer對象的初始化不像String類的初始化一樣,Java提供的有特殊的語法,而通常情況下一般使用構造方法進行初始化。

    例如:

             StringBuffer s = new StringBuffer();

    這樣初始化出的StringBuffer對象是一個空的對象。

    如果需要創建帶有內容的StringBuffer對象,則可以使用:

             StringBuffer s = new StringBuffer(“abc”);

    這樣初始化出的StringBuffer對象的內容就是字符串”abc”

    需要注意的是,StringBufferString屬于不同的類型,也不能直接進行強制類型轉換,下面的代碼都是錯誤的:

             StringBuffer s = “abc”;               //賦值類型不匹配

             StringBuffer s = (StringBuffer)”abc”;    //不存在繼承關系,無法進行強轉

    StringBuffer對象和String對象之間的互轉的代碼如下:

             String s = “abc”;

             StringBuffer sb1 = new StringBuffer(“123”);

             StringBuffer sb2 = new StringBuffer(s);   //String轉換為StringBuffer

             String s1 = sb1.toString();              //StringBuffer轉換為String

             2StringBuffer的常用方法

    StringBuffer類中的方法主要偏重于對于字符串的變化,例如追加、插入和刪除等,這個也是StringBufferString類的主要區別。

    aappend方法

             public StringBuffer append(boolean b)

    該方法的作用是追加內容到當前StringBuffer對象的末尾,類似于字符串的連接。調用該方法以后,StringBuffer對象的內容也發生改變,例如:

                      StringBuffer sb = new StringBuffer(“abc”);

                       sb.append(true);

             則對象sb的值將變成”abctrue”

    使用該方法進行字符串的連接,將比String更加節約內容,例如應用于數據庫SQL語句的連接,例如:

                       StringBuffer sb = new StringBuffer();

                       String user = “test”;

                       String pwd = “123”;

                       sb.append(“select * from userInfo where username=“)

                        .append(user)

                        .append(“ and pwd=”)

                        .append(pwd);

             這樣對象sb的值就是字符串“select * from userInfo where username=test and pwd=123”。

    bdeleteCharAt方法

             public StringBuffer deleteCharAt(int index)

    該方法的作用是刪除指定位置的字符,然后將剩余的內容形成新的字符串。例如:

             StringBuffer sb = new StringBuffer(“Test”);

             sb. deleteCharAt(1);

    該代碼的作用刪除字符串對象sb中索引值為1的字符,也就是刪除第二個字符,剩余的內容組成一個新的字符串。所以對象sb的值變為”Tst”

    還存在一個功能類似的delete方法:

             public StringBuffer delete(int start,int end)

    該方法的作用是刪除指定區間以內的所有字符,包含start,不包含end索引值的區間。例如:

             StringBuffer sb = new StringBuffer(“TestString”);

             sb. delete (1,4);

    該代碼的作用是刪除索引值1(包括)到索引值4(不包括)之間的所有字符,剩余的字符形成新的字符串。則對象sb的值是”TString”

                       cinsert方法

                                public StringBuffer insert(int offset, boolean b)

                                該方法的作用是在StringBuffer對象中插入內容,然后形成新的字符串。例如:

                                         StringBuffer sb = new StringBuffer(“TestString”);

                                         sb.insert(4,false);

    該示例代碼的作用是在對象sb的索引值4的位置插入false值,形成新的字符串,則執行以后對象sb的值是”TestfalseString”

                       dreverse方法

                                public StringBuffer reverse()

    該方法的作用是將StringBuffer對象中的內容反轉,然后形成新的字符串。例如:

             StringBuffer sb = new StringBuffer(“abc”);

             sb.reverse();

    經過反轉以后,對象sb中的內容將變為”cba”

                       esetCharAt方法

                                public void setCharAt(int index, char ch)

                                該方法的作用是修改對象中索引值為index位置的字符為新的字符ch。例如:

                                         StringBuffer sb = new StringBuffer(“abc”);

                                         sb.setCharAt(1,’D’);

                                則對象sb的值將變成”aDc”

                       ftrimToSize方法

                                public void trimToSize()

    該方法的作用是將StringBuffer對象的中存儲空間縮小到和字符串長度一樣的長度,減少空間的浪費。

             總之,在實際使用時,StringStringBuffer各有優勢和不足,可以根據具體的使用環境,選擇對應的類型進行使用。

    9.5.4 System

             System類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。該類位于java.lang包。

             由于該類的構造方法是private的,所以無法創建該類的對象,也就是無法實例化該類。其內部的成員變量和成員方法都是static的,所以也可以很方便的進行調用。

             1、成員變量

    System類內部包含inouterr三個成員變量,分別代表標準輸入流(鍵盤輸入),標準輸出流(顯示器)和標準錯誤輸出流(顯示器)

                       例如:

                                System.out.println(“Test”);

    該行代碼的作用是將字符串”Test”輸出到系統的標準輸出設備上,也就是顯示在屏幕上。

    后續在學習完IO相關的知識以后,可以使用System類中的成員方法改變標準輸入流等對應的設備,例如可以將標準輸出流輸出的信息輸出到文件內部,從而形成日志文件等。

             2、成員方法

                       System類中提供了一些系統級的操作方法,這些方法實現的功能分別如下:

                       aarraycopy方法

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

    該方法的作用是數組拷貝,也就是將一個數組中的內容復制到另外一個數組中的指定位置,由于該方法是native方法,所以性能上比使用循環高效。

    使用示例:

             int[] a = {1,2,3,4};

             int[] b = new int[5];

             System.arraycopy(a,1,b,3,2);

    該代碼的作用是將數組a中,從下標為1開始,復制到數組b從下標3開始的位置,總共復制2個。也就是將a[1]復制給b[3],將a[2]復制給b[4],這樣經過復制以后數組a中的值不發生變化,而數組b中的值將變成{0,0,0,2,3}

                       bcurrentTimeMillis方法

                                public static long currentTimeMillis()

    該方法的作用是返回當前的計算機時間,時間的表達格式為當前計算機時間和GMT時間(格林威治時間)197011000秒所差的毫秒數。例如:

             long l = System. currentTimeMillis();

    則獲得的將是一個長整型的數字,該數字就是以差值表達的當前時間。

    使用該方法獲得的時間不夠直觀,但是卻很方便時間的計算。例如,計算程序運行需要的時間則可以使用如下的代碼:

             long start = System. currentTimeMillis();

             for(int i = 0;i < 100000000;i++){

                       int a = 0;

             }

             long end = System. currentTimeMillis();

             long time = end – start;

    則這里變量time的值就代表該代碼中間的for循環執行需要的毫秒數,使用這種方式可以測試不同算法的程序的執行效率高低,也可以用于后期線程控制時的精確延時實現。

                       cexit方法

                                public static void exit(int status)

    該方法的作用是退出程序。其中status的值為0代表正常退出,非零代表異常退出。使用該方法可以在圖形界面編程中實現程序的退出功能等。

                       dgc方法

                                public static void gc()

    該方法的作用是請求系統進行垃圾回收。至于系統是否立刻回收,則取決于系統中垃圾回收算法的實現以及系統執行時的情況。

                       egetProperty方法

                                public static String getProperty(String key)

    該方法的作用是獲得系統中屬性名為key的屬性對應的值。系統中常見的屬性名以及屬性的作用如下表所示。

    屬性名列表

    屬性名

    屬性說明

    java.version

    Java 運行時環境版本

    java.home

    Java 安裝目錄

    os.name

    操作系統的名稱

    os.version

    操作系統的版本

    user.name

    用戶的賬戶名稱

    user.home

    用戶的主目錄

    user.dir

    用戶的當前工作目錄

                                例如:

                                         String osName = System.getProperty(“os.name”);

                                         String user = System.getProperty(“user.name”);

                                         System.out.println(“當前操作系統是:” + osName);

                                         System.out.println(“當前用戶是:” + user);

                                使用該方法可以獲得很多系統級的參數以及對應的值。

    posted on 2009-06-15 13:42 找個美女做老婆 閱讀(334) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    本blog已經搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品自产拍在线观看| 女人被男人躁的女爽免费视频| 国产无遮挡色视频免费观看性色| 狼色精品人妻在线视频免费| 一级毛片无遮挡免费全部| 韩日电影在线播放免费版| 59pao成国产成视频永久免费 | 亚洲精品国产情侣av在线| 中文字幕在线观看亚洲日韩| 亚洲欧美中文日韩视频| 中文字幕视频在线免费观看| 亚洲中文字幕无码爆乳AV| 亚洲国产成人精品久久| 国产精品亚洲专区在线播放| 免费播放在线日本感人片| 日韩亚洲国产高清免费视频| 免费一级毛片不卡在线播放| 亚洲伊人tv综合网色| 立即播放免费毛片一级| 免费在线观看污网站| 亚洲阿v天堂在线2017免费| 午夜高清免费在线观看| 精品久久久久久亚洲中文字幕| 中文字幕在线观看免费视频| 国产亚洲自拍一区| 亚洲日本天堂在线| 亚洲不卡无码av中文字幕| 亚洲中文字幕人成乱码| 全免费a级毛片免费看| 亚洲毛片av日韩av无码| 国产精品成人亚洲| 亚洲熟女少妇一区二区| 永久免费无码日韩视频| 免费观看日本污污ww网站一区| 亚洲人成7777影视在线观看| 热久久精品免费视频| 国产成人精品亚洲日本在线| 天天影院成人免费观看| 久久亚洲熟女cc98cm| 91精品国产免费入口| 亚洲av无码专区在线观看下载|