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

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

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

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567


    點擊這里給楊愛友發(fā)消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    ----------------------------------------------------------------------------------------------------
    在Java語言中,判斷兩個對象是否相等有兩種方法:
    1.判斷兩個對象的內存地址是否相同;
    2.判斷兩個對象的值是否相同。
    ‘==’運算符就是判斷內存地址是否相同的;Object類中的equals()方法也是根據(jù)內存地址來判斷,所以說如果一個類沒有覆蓋Object類中的equals()方法,那么用‘==’和 equals()是等同的;但Java API中的一些類覆蓋了Object類的equals()方法,實現(xiàn)按‘值’進行比較。這些類包括:
    String、Date、Java所有包裝類(基本數(shù)據(jù)類型包裝類);
    ----------------------------------------------------------------------------------------------------
    Java集合類之Set集:

    它最像數(shù)學中的集合—無序的;不能有重復元素。它有兩個實現(xiàn)類:HashSet和TreeSet。
    HashSet類按照哈希酸法來存/取集合中的對象,存:根據(jù)對象的哈希碼類計算對象應該存放的位置。注意,HashSet集合里的元素如果覆蓋了Object類中的equals()方法,那么也應該覆蓋Object類中的HashCode()方法,否則兩個對象相等(用equals()方法判斷),卻有不同的哈希碼,從而把兩個對象存儲到集合的不同地方,是HashSet不能正常工作。換過來說,HashSet里添加的對象不能重復,依據(jù)是兩個對象的hashCode不同 。
    TreeSet類實現(xiàn)了SortedSet接口,能對集合中的對象排序。
    1.自然排序
    TreeSet調用ComparaTo()方法比較對象的大小,進行排序。
    向TreeSet里加入的對象必須滿足兩個前提:一,同類型,否則無法排序;二,實現(xiàn)了Comparable接口,否則無法調用ComparaTo()方法。有一條不滿足將會拋出ClassCastException。
    Set<Role> roleSet = new HashSet<Role>();
    for(int i = 0;i < roles.length;i++){
     Role role = new Role();
     role = (Role)session.get(Role.class,roles[i]);
     roleSet.add(role);//如果是TreeSet添加第二個對象時會出錯
    }
    開始我用的是TreeSet,用短點調試,每循環(huán)到第二次就會報錯-類型轉換異常,無意間換成了HashSet對了,但是不知道原因,查了些網(wǎng)站都是泛泛介紹下兩者的區(qū)別,一個有序,一個無序,但都沒深入的去介紹,知道今天看了孫衛(wèi)琴‘孫衛(wèi)琴精通Hibernate才豁然開朗。原因就是我的Role類沒有實現(xiàn)Comparable接口,不能進行對象的比較,無從排序。
    學習一個新知識,死記可以記住一周,看懂可以記得一月,而寫出來一年忘不了,及時進行總結,堅持寫blog是一個很好的習慣,深刻領悟到。
    2.客戶化排序
    用戶可以先創(chuàng)建一個實現(xiàn)了java.util.Comparator接口的類xxxComparator()來指定具體的排序方式,如下構造TreeSet實例:Set set = new TreeSet(new xxxComparator());可以實現(xiàn)按xxxComparator()中定義的排序方式排序。
    用Hibernate來做持久化框架時最好每個PO都重寫equals()和hashCode()方法,并且應該按照業(yè)務主鍵來比較/計算。為什么不按照主鍵來比較計算,請參考孫衛(wèi)琴精通Hibernate第15.1節(jié)的介紹。

    Java集合類之List:
    list最大的特點對象以線性方式存儲,可以插人重復元素;他的實現(xiàn)類有ArrayList和LinkedList,ArrayList以大小可變的數(shù)組形式存儲對象,LinkedList以鏈表數(shù)據(jù)結構來存儲對象;還一個類似ArrayList的Vector,唯一的區(qū)別是Vector采用了同步機制?
    --------------------------------------------------------------------------------------------------
    AJAX不是一種新技術,而是一種新模式,是幾中技術的組合。它是異步JS+XML的組合。
    AJAX速度為什么會快?因為整個頁面不刷新,刷新的只是提交的表單范圍,其他范圍的數(shù)據(jù)不用重新去請求服務器。
    AJAX采用異步機制,當用戶發(fā)送http請求后,瀏覽器不會被掛起,等著服務器響應,而是繼續(xù)對用戶與頁面進行響應,并在服務器響應達到時進行處理。在服務器端,把對客戶端的響應序列化成XML,并把XML寫入HttpServletResponse。回到客戶端時,調用注冊在xmlHttpRequest上的回調函數(shù),處理服務器返回的XML,最后,根據(jù)服務器返回的數(shù)據(jù),用javaScript操縱頁面的HTML DOM,把用戶截面刷新。

    DWR簡單說就是一個引擎,他把服務器端JAVA對象中的方法公開給javascript,就好象在本地調用方法一樣快捷。有了DWR,系統(tǒng)中不必再出現(xiàn)AJAX請求-響應循環(huán)代碼,這意味著客戶端再也不需要處理XMLHttpRequest對象,不必處理服務器端的響應,不用編寫對象序列化代碼,不用自己編碼生成XML文件。
    ---------------------------------------------------------------------------------------------------
    jtds連接sqlserver時出現(xiàn)java.sql.SQLException: "Network error IOException: Connection refused: connect"異常,折騰了半天突然想起一個叫SPX的東西,找了個sp4裝上,再試,好了。哎,已經(jīng)是第二次栽在這里了,也聽說過SP3 、SP4的重要性,但因為我第一次接觸數(shù)據(jù)庫、第一份工作沒有用到SP*之類的東西,經(jīng)常忽視掉它,到現(xiàn)在依然不明白為什么我以前不裝SP*也能正常運行。
    又花了我倆小時時間。

    利用struts開發(fā)項目,報錯java.lang.IllegalArgumentException: Resources cannot be null.
    原因之一是因為找不到formBean里定義的form類,其一是路徑錯,其二是你的form類沒有繼承Struts的ActionForm,我屬于第二種情況,忘記寫上extends ActionForm。
    又花我倆小時。

    在eclipse里書寫代碼更容易發(fā)現(xiàn)錯誤,但它的速度實在慢,所以可以折中,對于一些重要的文件,比如xml,先在editPlus里編寫好,再從eclipse里打開,看看是否有錯誤。
    資源文件:不必要做國際化時是沒用的。
    盡量在高層捕獲異常,但這樣的話每個地方都要捕獲異常,如果在低層捕獲異常,那么調用它的每個地方都不用捕獲,使代碼簡潔易讀。到底哪種好呢?
    ---------------------------------------------------------------------------------------------------
    web.xml里的hibernateFilter段:

     <filter>
      <filter-name>hibernateFilter</filter-name>
      <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
      <init-param>
       <param-name>sessionFactoryBeanName</param-name>
       <param-value>sessionFactory</param-value>
      </init-param>
     </filter>
     <filter-mapping>
      <filter-name>hibernateFilter</filter-name>
      <url-pattern>*.do</url-pattern>
     </filter-mapping>
     <filter-mapping>
      <filter-name>hibernateFilter</filter-name>
      <servlet-name>dwr-invoker</servlet-name>
     </filter-mapping>
    作用:當用hibernate查詢時,查詢完畢后session關閉,此時在結果集里是沒有子表里的信息的,當取其結果集中子表信息時session再次被打開,查詢子表信息,此功能就由這一段來實現(xiàn)。

    加了這一段有時會出現(xiàn)以下異常:
     Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition

    錯誤解決辦法:

     <init-param>
       <param-name>singleSession</param-name>
       <param-value>false</param-value>
      </init-param>
    不解是什么原理。
    只知道這樣可能會出現(xiàn)數(shù)據(jù)庫連接數(shù)過多異常。
    --------------------------------------------------------------------------------------------
    提問:
    1.Object類中hashCode()方法如何定義的呢,哈希碼如果計算的?
    --------------------------------------------------------------------------------------------------

    java中有自帶的正則表達式引擎,位于java.util.regex包。里面包括兩個類Pattern、Matcher。
    1.書寫用于匹配的表達式;
     String regEx="a|f";
    2.將正則表達式編譯為Pattern的實例,得到一個匹配模式。
     Pattern p=Pattern.compile(regEx);
    3.調用匹配模式的matcher(str)方法得到一個匹配器
     Matcher m=p.matcher(str);
    matcher只是得到了一個包含“正則表達式”和“字符串信息”匹配器的實例,并沒有進行任何的匹配、查找動作。而對字符串的匹配及其他操作都在此匹配器 m 上進行。
    使用舉例:
     boolean result=m.find();
    查找是否有匹配項;
     String newStr = m.replaceAll("p");
    將匹配子串都替換為"p";注意原來字符串的內容并沒有改變,因為字符串本身是不可邊量,所以字符串內容不會改變。
    ---------------------------------------------------------------------------------------------
    java中的流分為兩中:字節(jié)流、字符流。分別由四個抽象類來表示InputStream、outputStream、Reader和Writer,其他種類的流都是由他們派生出來的。
    其他類如:BufferedReader是Reader的一個子類,它具有緩沖的功能,避免頻繁得從物理設備中讀取信息;
    若目的地是文件需要用FileWriter來包裝,若要在寫過程緩沖需要用BufferedWriter包裝,若要格式化輸出需要再用PrintWriter包裝。
    最基本的方法有read和write,其他用得最多的是readLine()方法。

    posted on 2007-06-21 12:33 楊愛友 閱讀(517) 評論(0)  編輯  收藏

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


    網(wǎng)站導航:
     
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 国产成人精品亚洲日本在线| 亚洲Av无码精品色午夜| 亚洲综合图片小说区热久久| 99在线观看免费视频| 国产成人精品日本亚洲18图| 无码av免费一区二区三区试看| 亚洲日韩一页精品发布| 可以免费观看的毛片| 亚洲va中文字幕无码久久不卡| 国产亚洲免费的视频看| 亚洲电影国产一区| 免费看男女下面日出水来| 亚洲手机中文字幕| 四虎www免费人成| 国产99久久亚洲综合精品| 亚洲中文字幕丝袜制服一区| 久久国产精品成人免费| 久久亚洲日韩看片无码| 在线a毛片免费视频观看| 香蕉视频免费在线播放| 国产亚洲美女精品久久久| 久久久国产精品福利免费| 亚洲欧洲精品一区二区三区| 成年性生交大片免费看| 一区二区三区精品高清视频免费在线播放| 亚洲黄黄黄网站在线观看| 亚洲一区免费观看| 亚洲色大成WWW亚洲女子| 亚洲另类激情专区小说图片| 国产精品99精品久久免费| 欧洲 亚洲 国产图片综合| 亚洲一级片内射网站在线观看| 特级精品毛片免费观看| 亚洲一区二区无码偷拍| 亚洲精品国精品久久99热一| 在线永久看片免费的视频| 色老头综合免费视频| 亚洲沟沟美女亚洲沟沟| 亚洲国产高清精品线久久| 91成人在线免费观看| 全黄A免费一级毛片|