国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

為什么要自己寫底層涵式?

2019-11-18 15:18:16
字體:
來源:轉載
供稿:網友

有很多人在問我,既然SUN或第三方已經為我們提供足夠多的API,我們為什么還要自己寫底層涵式?
其實這個問題對于初學者和普通的程序員是不會理解的,但當你對一門語言,不然不僅是說java,精通到一定的程序時,你就自然地理解了-----你不再想用別人為你設計的涵式,因為你相信你自己寫的涵式的實現過程比別人提供給你的更strong.
這個strong的標準應該上效率更高,功能更好(不是更多).

我們先把SUN和第三方軟件商提供的API叫標準API,我們自己的就叫快捷API,
標準API的特點是通用,為了這個通用,就要付出一定的資源,就象JAVA本身為了通用就要先實現JVM,一個普通的BEAN,它的業務邏輯可能只有一行代碼,但為了照顧那些菜鳥級的客戶程序員,BEAN的設計者們(服務程序員)不得不花更多的時候來寫BEAN的接口.就是所謂的規范:以80%的資源來完成業務邏輯以外的功能.

就比如JAVAMAIL,在一個MAIL系統中,真正實現非常完整的MAIL功能的API大約有30個左右,但JAVAMAIL為了基于"消息機制"這一規范,無論從效率還是從易用性方面都成了郵件系統中的垃圾,我自己雖然學過好多種語言,但我對JAVA語言有一種狂熱.我這樣評價JAVAMAIL并不影響我對JAVA語言和JAVA技術的熱愛.
可以說,JAVA開發小組的人員已經不是原來的那些精英了,他們最初的思想并沒有被一直發揚,就JAVAMAIL本身來說,他們已經從思想退化到程式的水平------為了通用而故意通用,結果陷入了難用的泥坑.

對于我們來說,假如你對JAVA技術的實現非常了解,自己寫涵式解決問題是一個最有效的手段.比如我們明知道String的+操作在底層是StringBuffer的append()操作,為什么不在程式中直接這樣做呢?假如你這樣你會獲得驚人的效率:
String s = "";
for(int =0;i<1024*1024*4;i++)
s += 1;
這樣得到4M的字符串在我的P2上要30分鐘以上,

StringBuffer sb = new StringBuffer();
for(int =0;i<1024*1024*4;i++)
sb.append("1");
String s = new String(sb);
不到一秒.為什么不這么做呢?當然String和StringBuffer是普通程序員都知道的,但是對于更多的數據結構的效率,有幾個程序員都明明白白清清楚楚?

我多次說過,所有的語言,哪怕是匯編,所有日期涵式都是從UNIX時間戳轉換來的,
那么從這個值轉換過去是最快的方法,你別看SUN為你提供了DateFormat,Calendar等類以及一些什么after(),before()方法,它們也都是從UNIX時間戳來比較再轉換的,為了實現通用,它們還要考慮不同國家的格式規范,
(local),所以根本不如你自己寫來得更有效.

另外一方面,你要相信,標準API的開發人員并不是每個人都比你更聰明,同樣的功能他們也許實現得比你更差勁,或者說你能做得比他們更好.當然絕大多數的功能他們實現得很好,這就是我,我們都還在用JAVA語言而沒有去自己重寫JAVA語言的原因,但在實際應用中,很多很多的時候,應該自己動手動手去寫出更有效率,更加實用的快捷API來.

最后說說,如何能寫出更好的API.
首先你要對現有的API非常熟悉,那些連什么隨機數API都不知道還要問人的人不要再看了,你們應該好好地下一些真功夫在JAVA語言本身上,而不要急于做一些項目,你們現在要做的不是項目,而是作業.

對JAVA語言有了相當的了解后,提高一個檔次,深入地理解一個JAVA技術.
然后回過頭來,再深入JAVA語言,就是說在功夫到了七層左右,先要對十層的境界有一個概覽再回頭練八層.這時你把JDK的幾個jar文件都展開了,然后把目錄結構打印出來,對每個包下的每個類這樣的整體結構的目錄樹先熟悉,然后天天對其中的幾個jad出來,看看SUN的實現過程,吹毛求疵!!!不是為了和他們過不去,是為了加深記憶和理解.
假如沒有足夠的時候,至少對常用的類要做到以上的要求.

接下來,你要學習的是JAVA語言的調試技術,不要用任何工具,就用命令行.
熟悉以后學習JAVA虛擬機規范,這是你成為高手的要害.

經過以上學習,當然在學習中為了解決一些問題你已經無意地學了更多地東西.
你自己試試看,自己寫一個String類,把jdk中的那個給replace了看看,假如一切沒問題你應該可以是真正的高手了.這時你一定會感覺到自己寫API的效率和樂趣了.

相關網址:http://forum.cnjsp.com/showthread.php?s=&threadid=2895

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陵水| 安阳市| 平潭县| 洛浦县| 华池县| 弋阳县| 和顺县| 宝兴县| 法库县| 西贡区| 阿城市| 原平市| 新源县| 宁波市| 慈溪市| 库尔勒市| 华亭县| 盐边县| 鄂州市| 灵石县| 达孜县| 南丹县| 清流县| 禹州市| 无极县| 浦江县| 邵阳县| 河北省| 元朗区| 屯昌县| 花莲市| 广平县| 北流市| 社会| 乐至县| 新建县| 崇州市| 崇州市| 雷州市| 临沧市| 南木林县|