中國(guó)星星

          向往自由的空氣/燦爛的陽(yáng)光/輕柔的風(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、阻止重寫(xiě)

           

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

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

          class B extends A {
              void meth() { //錯(cuò)誤的,無(wú)法繼承。
                  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ù)方法的編碼形式,異常可能使方法過(guò)早的返回。finally就是用來(lái)解決這種意外事件的。 finally創(chuàng)建一個(gè)代碼塊,該代碼將在執(zhí)行完成try/catch塊之后執(zhí)行try/catch塊后面的代碼之前被執(zhí)行。無(wú)論是否拋出異常,finally塊都將執(zhí)行。如果拋出異常,即使沒(méi)有catch語(yǔ)句匹配這個(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將給我們帶來(lái)什么?

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

           

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

           

          1.更好的用戶界面

           

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

           

          2.統(tǒng)一的硬盤(pán)資料庫(kù)

           

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

           

          3.“開(kāi)箱即用”

           

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

           

          4.多顯示器支持

           

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

           

          5.電源管理

           

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

           

          6.音頻引擎

           

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

           

          7.更多的閱讀器選擇

           

              對(duì)于你來(lái)說(shuō)你最想讓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)論排行榜

          主站蜘蛛池模板: 湖口县| 石林| 延津县| 施甸县| 西安市| 长汀县| 荆州市| 兴化市| 扎囊县| 左云县| 金乡县| 丹凤县| 承德市| 六安市| 仙游县| 琼中| 赤城县| 定兴县| 承德市| 阜新| 曲阳县| 昆明市| 临澧县| 鱼台县| 阜平县| 犍为县| 锡林浩特市| 石楼县| 南溪县| 河西区| 久治县| 郸城县| 尼勒克县| 平果县| 巴林左旗| 信宜市| 蒙自县| 东光县| 无极县| 故城县| 治多县|