<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年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678


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

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    第一章 概述

    名詞解釋
        體系結(jié)構(gòu)中立:java編譯器會生成與特定的計算機體系結(jié)構(gòu)無關(guān)的字節(jié)碼,只要有java運行時系統(tǒng),就可以在許多處理器上運行,而且還可以跨素的翻譯成本地機器的代碼。
        高性能:它通過即時編譯器,一次把字節(jié)碼編譯為本地代碼,并將結(jié)果緩存起來,在需要的時候重新調(diào)用,從而提高運行速度。
        可移植性:各種類型的數(shù)據(jù)都明確的規(guī)定了其大小,不隨處理器的改變而改變;二進制有嚴格的格式,這樣就能輕松移植到其他處理器上執(zhí)行。
    第三章 JAVA語法基礎(chǔ)

    1.書中提到JAVA中的每個類都要有一個main方法,但我們平時設(shè)計的類里都沒有main方法,怎么解釋?
    2.在jdk 5.0中用p表示指數(shù)。
    3.浮點數(shù)不適合用于禁止出現(xiàn)舍入誤差的金融計算中,因為浮點數(shù)采用的是二進制系統(tǒng)表示的,而在二進制中無法精確表示出0.1,就好象十進制無法精確表示出1/3一樣,這時應(yīng)該用BigDecimal。
    4.熟悉math類和String類的常用方法。
    5.JAVA中將String類的對象稱為不可變字符串,原因是不能修改JAVA字符串,平時所謂的修改,只是將字符串變量指向了另外個字符串常量。equals方法判斷兩字符串內(nèi)容是否相等,而‘==’檢測兩字符串的內(nèi)存位置是否相等。
    6.大數(shù)值BigInteger、BigDecimal,可以處理任意長度的數(shù)值,但是他們沒有+ 、*等運算,而是使用他們的add()、multiply()方法。
    7.Arrays類(不是Array類)方法:sort(type[] a)排序,binarySearch(type[] a,v)二分查找法查找v所在的位置,若數(shù)組a事先沒有排序結(jié)果將返回負數(shù)。
    第四章 類和對象

    關(guān)鍵句子:
    1. 一個對象并沒有實際包含對象,而僅僅引用一個對象。
    2. 為了保持數(shù)據(jù)的隱藏性,強烈建議將實例域標記為private。
    3. 一發(fā)方法可以訪問所屬類的所有對象的私有數(shù)據(jù)。
    4. 本地方法可以修改由final修飾的常量值。
    5. 因為靜態(tài)方法不能操作對象,所以不能在靜態(tài)方法中訪問實例域。但是,靜態(tài)方法可以訪問自身類的靜態(tài)域。
    6. 方法參數(shù)使用:
    JAVA中的參數(shù)傳遞都是值傳遞。
       1).一個方法不能修改一個基本數(shù)據(jù)類型的參數(shù)。
       2).一個方法可以改變一個對象參數(shù)的狀態(tài)。
       3).一個方法不能讓對象參數(shù)引用另一個對象(如果可以那就是指針即引用傳遞了)。
    7. 變量在使用前必須進行初始化,否則會出現(xiàn)編譯時錯誤,而域如果不初始化將為默認值(0、false或null)。
    8. 僅當類沒有提供任何構(gòu)造器時,系統(tǒng)才會提供一個默認的構(gòu)造器。若類提供了至少一個構(gòu)造器,但是沒有 
        提供默認的構(gòu)造器,那么在構(gòu)造對象時若不提供參數(shù)將視為不合法。
    9. 調(diào)用構(gòu)造器的步驟:
       1).所有數(shù)據(jù)域被初始化為默認值(0、flase或null)。
       2).按順序執(zhí)行所有域初始化語句和初始化塊。
       3).如果構(gòu)造函數(shù)第一行調(diào)用了另一個構(gòu)造器,則先執(zhí)行第二構(gòu)造器,再執(zhí)行第一構(gòu)造器主體部分。
    10. 創(chuàng)建一類對象的方法稱為工廠方法,如NumberFortmat類中的getNumberInstance()方法,此方法返回類型為
          NumberFormat的對象。
    11. 對靜態(tài)域進行初始化可以使用靜態(tài)初始化塊,用static{}標志。可以利用靜態(tài)初始化塊寫一個沒有main函數(shù) 
          的程序。
    12. 用類似import java.util.*;的形式導入所使用的類,對代碼的大小沒有任何負面影響,但是讀者不易知道程序
          加載了哪些類,可讀性差一些。
    13. 靜態(tài)導入:JDK 5.0增加了導入靜態(tài)方法和靜態(tài)域的功能,但可讀性明顯降低,在使用Math類的方法和使用
         Calendar類的常量時可以使用這種靜態(tài)導入,使代碼簡潔。
    14. 虛擬機如何定位類?
    有關(guān)時間的兩個類:Date類和GregorianCalendar類,前者用來表示時間點,后者是人們所熟悉的日歷表示形式,用不同的類表示不同的概念是個很好的思想。

    時間操作:
    獲取當前時間
    獲取某個時間的某個格式
    設(shè)置時間
    時間有關(guān)計算

    涉及到的類有java.util.Date;java.sql.Date;java.text.SimpleDateFormate;java.util.Calendar;
    1.獲取當前時間直接用Date()既可。
    2.獲取時間格式 用到時間格式化類SimpleDateFormate,首先創(chuàng)建一個格式化的實例,并指定其時間模式與區(qū)   
       域;然后去格式化原始時間。代碼示例:
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日_HH時mm分ss  
        秒",Locale.SIMPLIFIED_CHINESE);//定義一個格式化器,包括一個模式和時區(qū)
       String timeStr = sdf.format(new Date()); //真正格式化當前時間
    3.設(shè)置時間 與獲取時間類似,這里只寫出代碼示例
        SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
        sdf.applyPattern("yyyy年MM月dd日_HH時mm分ss秒");
        Date date = sdf.parse("2006年07月01日_14時00分00秒");
    4.時間計算
       主要用到Calendar類,此類可以輕松獲取當前時間的年、月、日、小時、分、秒,獲取到這些值后關(guān)于計算
       只是簡單整型數(shù)學算術(shù)了。代碼示例:
       Calendar ca1 = Calendar.getInstance();
       Calendar ca2 = Calendar.getInstance();
       ca1.setTime(date1);
       ca2.setTime(date2);
       int distanceHour = ca2.get(Calendar.HOUR_OF_DAY) - ca1.get(Calendar.HOUR_OF_DAY);

     第五章 繼承

    1. super不能指向一個對象,不即不代表當前類對象引用,也不代表超類對象引用,他只是一個調(diào)用超類方法 
        的一個關(guān)鍵字。如果子類沒有顯式的調(diào)用超類的構(gòu)造器,則將自動地調(diào)用超類默認的構(gòu)造器。
    2. 一個對象變量可以引用多種實際類型的現(xiàn)象被稱為多態(tài)。尤其是一個對象變量可以引用其子類的對象。在
        運 行時能夠自動地選擇調(diào)用的適當方法的現(xiàn)象稱為動態(tài)綁定。如果方法是private、static、final或者構(gòu)造器,
        那么編譯器可以準確地知道應(yīng)該調(diào)用哪個方法。我們將這種調(diào)用方式稱為靜態(tài)綁定。在覆蓋一個方法時,
        子類方法不能低于超類方法的可見性。
    4. 如果將一個類聲名為final,其方法將自動地成為final,而它的域則不一定是final的。
    5. 強制類型轉(zhuǎn)換規(guī)則:只能在繼承層次內(nèi)進行類型轉(zhuǎn)換;在將超類轉(zhuǎn)換成子類之前,應(yīng)該使用instanceof方法進
        行檢查。
    6. 抽象類:它有什么必要?它可以包括非抽象方法和具體數(shù)據(jù),不包含抽象方法的類也可以聲名為抽象類,
        但它仍然不可以實例化。可以定義一個抽象類型的對象變量,但它只能引用非抽象子類的對象。
    7. 數(shù)據(jù)封裝原則之一,在本類做了任何修改不影響其他地方。
    8. 4個訪問修飾符的可見性:private只對本類可見;public對所有類可見;protected對本包及所有子類可見;默
        認對本包可見。
    9. Object類的equals方法設(shè)計講究很多原則,他用于比較兩個對象是否相等,是比較兩個對象的內(nèi)存地址是否 
        相等。若子類不覆蓋此方法,相等性比較將也是比較兩個變量是否引用同一快內(nèi)存空間,這顯然是沒有任 
        何意義的,所以設(shè)計類時一般要覆蓋掉Object類的equals方法。
    10. hashCode方法:是由對象導出的一個沒有規(guī)律的整型值,所以若x和y是兩個不同對象,其散列碼基本上不
         會相等。Object的散列碼值是對象的存儲地址。若子類重寫了Object的equals方法,也必須重寫Object的
         hashCode,因為兩個對象相等,他們必須保證有相同的散列碼。
    11. toString()方法,用于返回表示對象狀態(tài)值的字符串,Object中的toString()方法得到類名和散列碼,很多方法
         都覆蓋了Object的toString方法,用于輸出對自己有意義的結(jié)果
    12. ArrayList是一個采用類型參數(shù)的泛型類。此功能在JDK5.0以后才出現(xiàn)。
    13. 將基本數(shù)據(jù)類型如 int轉(zhuǎn)換為包裝類型如 Integer的構(gòu)成叫打包,反過來叫拆包。在JDK5.0以前必須手工地
         插入打包和拆包的代碼,現(xiàn)在編譯器可以自動的進行打包拆包動作。
    14. JDK5.0以后支持參數(shù)個數(shù)可變的方法。
    15. 反射:這個久聞的詞對我來說一直很神秘,今天拜讀了這章內(nèi)容,了解了一些概念,但仍然沒有領(lǐng)會到
         其中的原理,只聽說spring的IOC就是基于這個原理而設(shè)計的。這里我只記錄一些需要記憶性的概念、方
         法,至于深層的原理,還得再來一遍了。
         能夠分析類能力的程序稱為反射??梢岳梅瓷錂C制:
             a. 在運行時分析類的能力。
             b. 在運行時查看對象,例如,編寫一個toString方法供所有類使用。
             c. 實現(xiàn)數(shù)組的操作代碼。
             d. 利用Method對象,使用一個叫“對象指針”的東西。
        反射是一個功能強大但復雜的機制,它的主要使用對象是工具構(gòu)造者,并不針對項目開發(fā)中的代碼編寫
        者。
    16. Class類:在程序運行期間,JAVA運行時系統(tǒng)始終為所有的對象維護一個被稱為運行時的類型標志。這個
          信息保存著每個對象所屬的類足跡。虛擬機利用運行時信息選擇相應(yīng)的方法執(zhí)行??梢酝ㄟ^專門的JAVA
          類訪問這些信息。保存這些信息的類被稱為Class。虛擬機為每個類型管理著一個Class對象。
              java.lang.Class類:
             static Class forName(String className)返回類名為className的Class對象。
             Object newInstance()返回一個該類的實例。
             典型的應(yīng)用在加載數(shù)據(jù)庫驅(qū)動時,先創(chuàng)建一個驅(qū)動類的對象,再返回該類的實例。
             Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
    17. 使用反射分析類的能力(檢查類的結(jié)構(gòu)):
          在java.lang.reflect包中有三個類Field、Method、Constructor分別用語描述類的域、方法和構(gòu)造器。公用的方
          法有g(shù)etName()--返回該條目的名字;getModifiers()返回一個整形數(shù)值,此數(shù)值用于判斷該條目的修飾符。
         Class類的getFields、getMethods、getConstructors方法將分別返回類支持的Public域、方法和構(gòu)造器數(shù)組,其
         中包括類的公有成員。Class類的getDeclareFields、getDeclareMethods、getDeclareConstructors方法將分別返回
         類中聲明的全部域、方法和構(gòu)造器,其中包括私有域,但不包括超類中的條目。
          ... ...


    第六章 接口與內(nèi)部類

    1. 接口不是類,而是一組對類的需求描述,這些類要遵從接口描述的同意格式進行定義。
    接口中的所有方法
        自動地屬于public,域自動的屬于public static final,因此在聲明方
    法時,不必提供關(guān)鍵字public,但為了增強
        代碼閱讀性,依然要加上關(guān)鍵字public。接口
    不能含有實例域和靜態(tài)方法,但可以包含常量。
    2. JAVA機制提供接口的必要性:JAVA是一種強制類型語言,在調(diào)用方法的時候編譯器將會
    檢查這個方法是
        否存在。檢查接口中是否存在此方法比在本類中檢查是否存在此方法要快
    得多?
    3. 書中提到的一個有用例子:Arrays類中有個sort(Object[] a)方法,可以對a中的元素
    排序,但要求數(shù)組中的元
        素必須實現(xiàn)compareable接口,并且在元素對象中要提供具體的
    compareTo()方法。compareTo()方法的設(shè)計很
        有講究,其一是要符合“反對稱”原則。
    4. 對象克?。荷梢粋€對象的一個拷貝,對它進行修改不會影響原來對象的狀態(tài)。默認的
    克隆操作是“淺拷
        貝”,它并沒有克隆包含在對象中的對象,比方說user.menus。為了實
    現(xiàn)對象的深烤貝,我們應(yīng)該重寫   
        Object類的clone()方法,對對象內(nèi)部的對象域再進行克隆
    。
    5. 使用clone()方法并不必須要實現(xiàn)Cloneable,因為clone()方法可以從Object類中繼承過
    來;是這樣的嗎?
    6. 回調(diào):是一種設(shè)計模式,在這種設(shè)計模式中,可以指出某個特定事件發(fā)生時應(yīng)該采取的
    動作。但如下:
           for(int i = 0;i < 10;i++){
                if(i == 5){
                   System.out.println("i's value is:" + i);
               }
           }
        即當i==5時采取out.println()事件,這算是回調(diào)嗎?回調(diào)與方法調(diào)用區(qū)別在哪里?
    7. 內(nèi)部類:定義在類中的類。它有如下特點:
           a. 內(nèi)部類方法可以訪問該類定義的所在的作用域中的數(shù)據(jù),包括私有的數(shù)據(jù)。
           b. 內(nèi)部類可以對同一個包中的其他類隱藏起來。
           c. 當想定義一個回調(diào)函數(shù),又不想編寫大量代碼時,使用匿名內(nèi)部類非常便捷。
        對于 ${c}完全不能理解,內(nèi)部類到底有多大必要,沒有體會。
    8. 代理:...

    第11章 異常與調(diào)試
    倆概念--1、已檢查異常,需要我們進行聲明或捕獲的異常類型,當異常發(fā)生時,我們要尋找合適的處理器進行異常處理;2、未檢查異常,要么不可控制(error),要么就應(yīng)該避免他們的發(fā)生(數(shù)組下標越界)。

     

    posted on 2007-08-11 01:55 楊愛友 閱讀(1071) 評論(2)  編輯  收藏

    FeedBack:
    # re: java核心技術(shù)讀書筆記 2007-08-11 08:45 飄搖
    呵呵 又有進步了  回復  更多評論
      
    # re: java核心技術(shù)讀書筆記 2007-08-13 09:41 cresposhi
    不錯,厲害!  回復  更多評論
      

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


    網(wǎng)站導航:
     
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 亚洲av无码专区在线观看素人| 日本免费人成网ww555在线| 美女视频黄是免费的网址| 亚洲视频在线视频| 久久一区二区三区免费播放| 亚洲人成网站在线观看播放| 最新久久免费视频| 亚洲AV日韩AV永久无码绿巨人| a在线免费观看视频| 亚洲成人免费在线| **aaaaa毛片免费| 亚洲videos| 国产一级高清视频免费看| 另类图片亚洲校园小说区| 亚洲福利精品一区二区三区| 五月婷婷免费视频| 亚洲精品无码MV在线观看| 久久99精品免费视频| 亚洲国产理论片在线播放| 成年女人18级毛片毛片免费| 国产精品亚洲а∨无码播放麻豆 | 全部免费毛片在线| ssswww日本免费网站片| 久久精品国产96精品亚洲| 亚洲视频免费播放| 亚洲.国产.欧美一区二区三区| 免费大黄网站在线观| 久久最新免费视频| 亚洲人成在线精品| 亚洲国产成人精品女人久久久| 中文字幕无线码中文字幕免费| 亚洲经典在线中文字幕| 免费黄色app网站| 99在线免费观看| 亚洲AV无码专区在线亚| 亚洲精品黄色视频在线观看免费资源| a级片免费在线播放| 亚洲欧美精品午睡沙发| 国产亚洲一区二区在线观看| 久久综合AV免费观看| 国产真人无码作爱免费视频|