中國(guó)星星

          向往自由的空氣/燦爛的陽光/輕柔的風(fēng)……

           

          2008年10月31日

          關(guān)鍵字final、finally和方法finalize()

          關(guān)鍵字final

           

          1、聲明變量,阻止對(duì)其內(nèi)容進(jìn)行修改:

           

          Java代碼
          final int FILE_NEW = 1; 

          final int FILE_NEW = 1;

           

          2、在繼承中使用:

           

              a、阻止重寫

           

          Java代碼
          class A {   
              final void meth() {   
                  System.out.println("The final method.");   
                }   
          }   
           
          class B extends A {   
              void meth() { //錯(cuò)誤的,無法繼承。  
                  System.out.println("Illegal.");  
                }   
          }  

          class A {
              final void meth() {
                  System.out.println("The final method.");
                }
          }

          class B extends A {
              void meth() { //錯(cuò)誤的,無法繼承。
                  System.out.println("Illegal.");
                }

              聲明為final的方法有時(shí)候可以提高程序性能。

           

              b、使用final阻止繼承

           

          Java代碼
           final class A {   
                  //...   
          }  
           
          class B extends A {     //錯(cuò)誤的   
                  //...   
          }  

           final class A {
                  //...
          }

          class B extends A {     //錯(cuò)誤的
                  //...

              聲明一個(gè)類為final則隱式的聲明了它的所有方法也為final,聲明一個(gè)類既是abstract又是final是不合法的。

           

          關(guān)鍵字finally

           

              當(dāng)拋出異常的時(shí)候,方法內(nèi)的程序會(huì)采取一種突變的非線性的路線,這樣就改變了方法內(nèi)的正常程序流。根據(jù)方法的編碼形式,異常可能使方法過早的返回。finally就是用來解決這種意外事件的。 finally創(chuàng)建一個(gè)代碼塊,該代碼將在執(zhí)行完成try/catch塊之后執(zhí)行try/catch塊后面的代碼之前被執(zhí)行。無論是否拋出異常,finally塊都將執(zhí)行。如果拋出異常,即使沒有catch語句匹配這個(gè)異常,finally塊也將執(zhí)行。

           

          方法finalize()

           

              在撤銷一個(gè)對(duì)象的時(shí)候,有時(shí)候需要完成一些操作。比如:一個(gè)對(duì)象正持有某些非Java資源,要確保在對(duì)象被銷毀之前釋放這些資源。為處理這種情況Java提供了一種稱為結(jié)束(finalization)的機(jī)制。使用結(jié)束,可以定義特殊的動(dòng)作,這種動(dòng)作在一個(gè)對(duì)象要被垃圾收集器收回時(shí)執(zhí)行。要給一個(gè)類添加結(jié)束器,只需定義finalize()方法。

           

          Java代碼
          protected void finalize()   
          {   
                  // finalization code here   

          protected void finalize()
          {
                  // finalization code here
          }

          posted @ 2008-10-31 09:46 Jesin 閱讀(301) | 評(píng)論 (0)編輯 收藏

          下一版本的Ubuntu將給我們帶來什么?

              離Ubuntu 8.10發(fā)布沒多長(zhǎng)時(shí)間了,乍看貌似沒給我們留下太深刻的印象。當(dāng)然,它是個(gè)成熟的操作系統(tǒng),所以肯定會(huì)經(jīng)常更新,但是還有很多東西值得他們?nèi)プ觥?/p>

           

              下面是7個(gè)最被期待的但沒加入這個(gè)版本的特性,有望在下個(gè)版本加入。

           

          1.更好的用戶界面

           

              我們喜歡Ubuntu是因?yàn)樗麚碛姓吆芎玫陌踩裕艿偷南到y(tǒng)要求。但是想象一下如果有更好的界面,比Windows或者M(jìn)AC更富有吸引力,更實(shí)用并且保持很低的硬件要求的界面。以下是用戶自己定制的一些界面,不知道下一個(gè)版本能否整合過來呢?

           

          2.統(tǒng)一的硬盤資料庫

           

              我們需要一個(gè)數(shù)據(jù)資料存放中心來存放madwifi,核心補(bǔ)丁等。用戶只需在這個(gè)“控制中心”即可很簡(jiǎn)單找出他們所需要的文件。對(duì)一些編寫攝像頭驅(qū)動(dòng),讀卡器驅(qū)動(dòng)的人來說,能找到所需的文件的確是個(gè)挑戰(zhàn)。

           

          3.“開箱即用”

           

              不要預(yù)裝一些有限制的額外的軟件,只需要裝大眾常用的軟件就行,比如播放器等。這些方面可以學(xué)學(xué)gOS3,他們預(yù)裝Skype, Wine  和 Picasa等,為初級(jí)用戶提供了方便。

           

          4.多顯示器支持

           

              這個(gè)功能是面對(duì)高端玩家的,那些需要多顯示器來工作的人,這功能是必不可少的。

           

          5.電源管理

           

              在這方面之前的版本也取得不少進(jìn)展,但是太有限了。需要更加強(qiáng)大的電源管理能力,在筆記本領(lǐng)域這是很值得關(guān)注的。

           

          6.音頻引擎

           

              ALSA, PulseAudio在Ubuntu只是個(gè)沒價(jià)值的東西,當(dāng)然想使用5.1聲道也只是徒勞。播放MIDI音頻時(shí),PulseAudio還有鎖住的危險(xiǎn)。

           

          7.更多的閱讀器選擇

           

              對(duì)于你來說你最想讓Ubuntu改變的是什么,很可能就是閱讀器,希望能夠?qū)Υ诉M(jìn)行改進(jìn)。

          posted @ 2008-10-31 09:43 Jesin 閱讀(130) | 評(píng)論 (0)編輯 收藏

          2008年5月19日

          找出重複次數(shù)最多的字元

           1import java.util.*;
           2
           3@SuppressWarnings("unchecked")
           4public class Test
           5{
           6
           7    // 找出重複次數(shù)最多的字元,並列印出數(shù)量和字元
           8    public static void main(String[] args)
           9    {
          10        String a = "aaabbdcfeeswdfttrrccaa";
          11        List ls = new LinkedList();
          12        Test test = new Test();
          13        for (int i = 0; i < a.length(); i++)
          14        {
          15            if (!test.isHave(ls, (a.charAt(i) + "")))
          16            {
          17                ls.add(a.charAt(i) + "");
          18            }

          19        }

          20        // 保存相應(yīng)的位置的字母的個(gè)數(shù)
          21        int[] ret = new int[ls.size()];
          22        // 最大數(shù)
          23        int max = 0;
          24        for (int i = 0; i < ls.size(); i++)
          25        {
          26            ret[i] = test.getNum(ls.get(i).toString(), a);
          27            if (ret[i] > max)
          28            {
          29                max = ret[i];
          30            }

          31        }

          32        // 檢查個(gè)數(shù)最大的,返回位置列表
          33        List ls2 = new LinkedList();
          34        for (int i = 0; i < ret.length; i++)
          35        {
          36            if (ret[i] == max)
          37            {
          38                ls2.add(i + "");
          39            }

          40        }

          41
          42        // 遍曆ls2,列印出相應(yīng)字母和個(gè)數(shù)
          43        System.out.println("\n列印出個(gè)數(shù)最多的字母及個(gè)數(shù):");
          44        for (int i = 0; i < ls2.size(); i++)
          45        {
          46            int m = Integer.parseInt(ls2.get(i).toString());
          47            System.out.println("字母:" + ls.get(i).toString() + "   個(gè)數(shù):" + ret[m]);
          48        }

          49
          50        System.out.println("\n列印出所有字母及個(gè)數(shù):");
          51        for (int i = 0; i < ret.length; i++)
          52        {
          53            System.out.println("字母:" + ls.get(i).toString() + "   個(gè)數(shù):" + ret[i]);
          54        }

          55    }

          56
          57    // 查詢?cè)摿斜?nbsp;ls 是否有該字元
          58    private boolean isHave(List ls, String k)
          59    {
          60        boolean flag = false;
          61        for (int i = 0; i < ls.size(); i++)
          62        {
          63            if (ls.get(i).toString().equals(k))
          64            {
          65                flag = true;
          66                break;
          67            }

          68        }

          69        return flag;
          70    }

          71
          72    // 查詢 a 中有幾個(gè) k
          73    private int getNum(String k, String a)
          74    {
          75        int j = 0;
          76        for (int i = 0; i < a.length(); i++)
          77        {
          78            if ((a.charAt(i) + "").equals(k))
          79            {
          80                j++;
          81            }

          82        }

          83        return j;
          84    }

          85}

          86

          posted @ 2008-05-19 13:27 Jesin 閱讀(164) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題  

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 新泰市| 广汉市| 台江县| 张家口市| 通化县| 平定县| 文昌市| 嘉义县| 平武县| 论坛| 新民市| 邵阳市| 文昌市| 双流县| 镇康县| 疏附县| 曲麻莱县| 固安县| 临汾市| 和硕县| 库尔勒市| 长子县| 色达县| 沛县| 洪洞县| 申扎县| 衡阳县| 余姚市| 丰原市| 九龙坡区| 湘潭市| 密云县| 英德市| 柯坪县| 光山县| 旬邑县| 永济市| 凤台县| 双流县| 镇巴县| 山丹县|