欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
別人的經(jīng)驗--- Java關(guān)于XML的解析(好)
Java雜談(五)


        本來(lái)預計J2se只講了第四篇就收尾了,可是版主厚愛(ài)把帖子置頂長(cháng)期讓大家瀏覽讓小弟倍感責任重大,務(wù)必追求最到更好,所以關(guān)于J2se一些沒(méi)有提到的部分,決定再寫(xiě)幾篇把常用的部分經(jīng)驗全部寫(xiě)出來(lái)供大家討論切磋。這一篇準備講一講Xml解析包和Java  Swing,然后下一篇再講java.security包關(guān)于Java沙箱安全機制和RMI機制,再進(jìn)入J2ee的部分,暫時(shí)就做這樣的計劃了。如果由于實(shí)習繁忙更新稍微慢了一些,希望各位見(jiàn)諒! 

        1.  Java關(guān)于XML的解析   
        相信大家對XML都不陌生,含義是可擴展標記語(yǔ)言。本身它也就是一個(gè)數據的載體以樹(shù)狀表現形式出現。后來(lái)慢慢的數據變成了信息,區別是信息可以包括可變的狀態(tài)從而針對程序硬編碼的做法變革為針對統一接口硬編碼而可變狀態(tài)作為信息進(jìn)入了XML中存儲。這樣改變狀態(tài)實(shí)現擴展的唯一工作是在XML中添加一段文本信息就可以了,代碼不需要改動(dòng)也不需要重新編譯。這個(gè)靈活性是XML誕生時(shí)候誰(shuí)也沒(méi)想到的。 

        當然,如果接口要能提取XML中配置的信息就需要程序能解析規范的XML文件,Java中當然要提高包對這個(gè)行為進(jìn)行有利支持。筆者打算講到的兩個(gè)包是 org.w3c.dom和javax.xml.parsers和。(大家可以瀏覽一下這些包中間的接口和類(lèi)定義) 
       
        Javax.xml.parsers包很簡(jiǎn)單,沒(méi)有接口,兩個(gè)工廠(chǎng)配兩個(gè)解析器。顯然解析XML是有兩種方式的:DOM解析和SAX解析。本質(zhì)上并沒(méi)有誰(shuí)好誰(shuí)不好,只是實(shí)現的思想不一樣罷了。給一個(gè)XML文件的例子: 
          <?xml  version=”1.0”  encoding=”UTF-8”  > 
          <root  > 
<child    name=”Kitty”  >   
                  A  Cat   
                  </child  > 
          </root  > 
       
        所謂DOM解析的思路是把整個(gè)樹(shù)狀圖存入內存中,需要那個(gè)節點(diǎn)只需要在樹(shù)上搜索就可以讀到節點(diǎn)的屬性,內容等,這樣的好處是所有節點(diǎn)皆在內存可以反復搜索重復使用,缺點(diǎn)是需要消耗相應的內存空間。 
       
        自然SAX解析的思路就是為了克服DOM的缺點(diǎn),以事件觸發(fā)為基本思路,順序的搜索下來(lái),碰到了Element之前觸發(fā)什么事件,碰到之后做什么動(dòng)作。由于需要自己來(lái)寫(xiě)觸發(fā)事件的處理方案,所以需要借助另外一個(gè)自定義的Handler,處于org.xml.sax.helpers包中。它的優(yōu)點(diǎn)當然是不用整個(gè)包都讀入內存,缺點(diǎn)也是只能順序搜索,走完一遍就得重來(lái)。 
       
        大家很容易就能猜到,接觸到的J2ee框架用的是哪一種,顯然是DOM。因為類(lèi)似Struts,Hibernate框架配置文件畢竟是很小的一部分配置信息,而且需要頻繁搜索來(lái)讀取,當然會(huì )采用DOM方式(其實(shí)SAX內部也是用DOM采用的結構來(lái)存儲節點(diǎn)信息的)?,F在無(wú)論用什么框架,還真難發(fā)現使用 SAX來(lái)解析XML的技術(shù)了,如果哪位仁兄知道,請讓筆者也學(xué)習學(xué)習。 

        既然解析方式有了,那么就需要有解析的存儲位置。不知道大家是否發(fā)現org.w3c.dom這個(gè)包是沒(méi)有實(shí)現類(lèi)全部都是接口的。這里筆者想說(shuō)一下Java 如何對XML解析是Jdk應該考慮的事,是它的責任。而w3c組織是維護定義XML標準的組織,所以一個(gè)XML結構是怎么樣的由w3c說(shuō)了算,它不關(guān)心 Java如何去實(shí)現,于是乎規定了所有XML存儲的結構應該遵循的規則,這就是org.w3c.dom里全部的接口目的所在。在筆者看來(lái),簡(jiǎn)單理解接口的概念就是實(shí)現者必須遵守的原則。 

        整個(gè)XML對應的結構叫Document、子元素對應的叫做Element、還有節點(diǎn)相關(guān)的Node、NodeList、Text、Entity、 CharacterData、CDATASection等接口,它們都可以在XML的語(yǔ)法中間找到相對應的含義。由于這里不是講解XML基本語(yǔ)法,就不多介紹了。如果大家感興趣,筆者也可以專(zhuān)門(mén)寫(xiě)一篇關(guān)于XML的語(yǔ)法規則帖與大家分享一下。 

        2.  Java  Swing 
        Swing是一個(gè)讓人又愛(ài)又恨的東西,可愛(ài)之處在于上手很容易,較AWT比起來(lái)Swing提供的界面功能更加強大,可恨之處在于編復雜的界面工作量實(shí)在是巨大。筆者寫(xiě)過(guò)超過(guò)3000行的Swing界面,感覺(jué)用戶(hù)體驗還不是那么優(yōu)秀。最近又寫(xiě)過(guò)超過(guò)6000行的,由于功能模塊多了,整體效果還只是一般般。體會(huì )最深的就一個(gè)字:累!  所以大家現在都陸續不怎么用Swing在真正開(kāi)發(fā)的項目上了,太多界面技術(shù)可以取代它了。筆者去寫(xiě)也是迫于無(wú)奈組里面大家都沒(méi)寫(xiě)過(guò),我不入地域誰(shuí)入? 
       
        盡管Swing慢慢的在被人忽略,特別是隨著(zhù)B/S慢慢的在淹沒(méi)C/S,筆者倒是很愿意站出來(lái)為Swing正身。每一項技術(shù)的掌握絕不是為了流行時(shí)尚跟風(fēng)。真正喜歡Java的朋友們還是應該好好體會(huì )一下Swing,相信在校的很多學(xué)生也很多在學(xué)習它。很可能從Jdk  1.1、1.2走過(guò)來(lái)的很多大學(xué)老師可能是最不熟悉它的。 
Swing提供了一組輕組件統稱(chēng)為JComponent,它們與AWT組件的最大區別是JComponent全部都是Container,而 Container的特點(diǎn)是里面可以裝載別的組件。在Swing組件中無(wú)論是JButton、JLabel、JPanel、JList等都可以再裝入任何其他組件。好處是程序員可以對Swing組件實(shí)現“再開(kāi)發(fā)”,針對特定需求構建自己的按鈕、標簽、畫(huà)板、列表之類(lèi)的特定組件。 

        有輕自然就有重,那么輕組件和重組件區別是?重組件表現出來(lái)的形態(tài)因操作系統不同而異,輕組件是Swing自己提供GUI,在跨平臺的時(shí)候最大程度的保持一致。 
那么在編程的時(shí)候要注意一些什么呢?筆者談?wù)勛约旱膸c(diǎn)經(jīng)驗: 

        a.  明確一個(gè)概念,只有Frame組件才可以單獨顯示的,也許有人會(huì )說(shuō)JOptionPane里面的靜態(tài)方法就實(shí)現了單獨窗口出現,但追尋源代碼會(huì )發(fā)現其實(shí)現實(shí)出來(lái)的Dialog也需要依托一個(gè)Frame窗體,如果沒(méi)有指定就會(huì )默認產(chǎn)生一個(gè)然后裝載這個(gè)Dialog顯示出來(lái)。 

        b.  JFrame是由這么幾部分組成: 
                最底下一層JRootPane,上面是glassPane  (一個(gè)JPanel)和layeredPane  (一個(gè)JLayeredPane),而layeredPane又由contentPane(一個(gè)JPanel)和menuBar構成。我們的組件都是加在 contentPane上,而背景圖片只能加在layeredPane上面。  至于glassPane是一個(gè)透明的覆蓋了contentPane的一層,在特定效果中將被利用到來(lái)記錄鼠標坐標或掩飾組件。 

        c.  為了增強用戶(hù)體驗,我們會(huì )在一些按鈕上添加快捷鍵,但Swing里面通常只能識別鍵盤(pán)的Alt鍵,要加入其他的快捷鍵,必須自己實(shí)現一個(gè)ActionListener。 

        d.  通過(guò)setLayout(null)可以使得所有組件以setBounds()的四個(gè)參數來(lái)精確定位各自的大小、位置,但不推薦使用,因為好的編程風(fēng)格不應該在Swing代碼中硬編碼具體數字,所有的數字應該以常數的形式統一存在一個(gè)靜態(tài)無(wú)實(shí)例資源類(lèi)文件中。這個(gè)靜態(tài)無(wú)實(shí)例類(lèi)統一負責Swing界面的風(fēng)格,包括字體和顏色都應該包括進(jìn)去。 

        e.  好的界面設計有一條Golden  Rule:  用戶(hù)不用任何手冊通過(guò)少數嘗試就能學(xué)會(huì )使用軟件。所以盡量把按鈕以菜單的形式(不管是右鍵菜單還是窗體自帶頂部菜單)呈現給顧客,除非是頻繁點(diǎn)擊的按鈕才有必要直接呈現在界面中。 

        其實(shí)Swing的功能是相當強大的,只是現在應用不廣泛,專(zhuān)門(mén)去研究大概是要花不少時(shí)間的。筆者在各網(wǎng)站論壇瀏覽關(guān)于Swing的技巧文章還是比較可信的,自己所學(xué)非常有限,各人體會(huì )對Swing各個(gè)組件的掌握就是一個(gè)實(shí)踐積累的過(guò)程。筆者只用到過(guò)以上這些,所以只能談?wù)劜糠窒敕?,還望大家見(jiàn)諒! 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
關(guān)于SAX,DOM,JAXP,JDOM,DOM4J的一些理解 - hcx_2008 - J...
Java 解析xml文件
Java下XML編程接口比較:DOM SAX JDOM JAXP
Java面試題總結之OOA/D,UML,和XML
Java教程分享詳細了解Javasax解析器
DOM、JDOM、DOM4J的區別(轉載)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久