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

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

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

    隨筆 - 4, 文章 - 2, 評論 - 36, 引用 - 0
    數(shù)據(jù)加載中……

    一些JAVA學(xué)習(xí)筆記

    準(zhǔn)備工作
    1、JDKjava develop kit java開發(fā)工具包;
    2、JREjava runtime environment, java 運行時環(huán)境;
    3、JDK 的三個版本:
    J2SEjava標(biāo)準(zhǔn)版,桌面程序和小應(yīng)用程序的開發(fā)
    J2EEjava企業(yè)版,企業(yè)級的開發(fā)(WEB開發(fā))
    J2ME:主要是手持移動設(shè)備程序的開發(fā);
    4、JAVA的特性:
    a 簡單的
    java屏棄了c++中一些復(fù)雜的操作,如指針、結(jié)構(gòu)等
    b 面向?qū)ο蟮?/font>
    java是完全面向?qū)ο蟮?/font>
    c 健壯的
    java通過檢查編譯和運行時的錯誤來保證程序的可靠性
    java提供的垃圾回收機制,保證了內(nèi)存不會泄露
    d 安全的
    e 解釋的
    ? java是解釋執(zhí)行的,而不是編譯執(zhí)行的,通過生成java的字節(jié)碼,來解釋執(zhí)行
    f 平臺無關(guān)的
    ? java生成字節(jié)碼,由java解釋器來解釋
    g 多線程的
    ? 在語言級上支持多線程
    h 動態(tài)的
    ? java將變量或方法的引用轉(zhuǎn)換成符號引用保存下來,傳遞給解釋器,由解釋器來動態(tài)決定其加載;
    5、java跨平臺的原理:
    ·java的跨平臺是通過JVM來實現(xiàn)的。Java的編譯器在編譯java的源代碼的時,并不是將變量和方法的引用編譯為數(shù)值引用,也不確定內(nèi)存布局,而是將這些信息保存在字節(jié)碼中,由解釋器在運行時候確定內(nèi)存布局。也就是說,java的編譯器生成的字節(jié)碼中,并不包含與特定硬件平臺相關(guān)的信息。
    ·java解釋器的執(zhí)行過程分為:字節(jié)碼的裝載、校驗、執(zhí)行。在裝載過程中,由裝載器裝載字節(jié)碼,所有本地代碼都被裝載到同一個內(nèi)存命名空間里,而所有外部引用的代碼都有自己的內(nèi)存命名空間,本地代碼只是保存了對其引用的符號信息。當(dāng)所有字節(jié)碼都裝載完成后,java解釋器就確定了內(nèi)存布局。
    ·通過實現(xiàn)不同平臺下的JVM,來實現(xiàn)字節(jié)碼的跨平臺;
    6、jdk\bin\jar.exe 可以對程序進行打包、發(fā)布;
    7、在java中,文件名必須與被聲明為public的類相同,所以在java文件中,最多只能有一個public的類;
    8、java解釋器加載的是類,因此,對類名的大小寫是敏感的;
    9、/** …..*/這種注釋可以自動生成一個注釋的文檔;
    10、當(dāng)定義了classpath后,java解釋器就會按照classpath進行查找,而不查找當(dāng)前目錄,若想查找當(dāng)前,則在classpath中加入;
    11java提供了8種基本數(shù)據(jù)類型:
      byte 有符號的1字節(jié)的整數(shù) (-128---127
    注 byte類型參與運算時,java會將其類型自動提升為int,
    如 byte a ; a= (byte)(a*2);

    ? ? short ? 有符號的2字節(jié)的整數(shù)  注 同上 
      ? int (4)
    ? long (8)    ? 注 默認(rèn)1.3這樣的數(shù),默認(rèn)為double

    ? ? ? float (4)
    ? ? ? double (8) ? ? ? ? ? ? ? ? ? ? ? ?
    ? ? char ? ? 無符號的2個字節(jié)  unicode編碼,表示
    ? boolean
    12java數(shù)組在定義時,不能直接分配空間;
    Int[] array;
    Array={1,3}; //這種寫法是error
    13java中二維數(shù)組,列數(shù)可以不相同,實際上每一行都是一個一維數(shù)組;
    14int i=3 ,count;
    Count=(i++)+(i++)+(i++);
    Out: count=12;
    Count=(++i)+(++i)+(++i);
    Out: count=15;


    位運算



    1、計算機數(shù)據(jù)常用16進制表示;
    2、原碼:第一位為符號位,0表示正,1表示負;
    反碼:正數(shù)的反碼是原碼本身,負數(shù)的反碼是符號位不變,其他各位按原碼取反;
    補碼:正數(shù)的補碼是原碼本身,負數(shù)的補碼是符號位不變,其他各位取反加1;
    3、計算機采用補碼進行數(shù)據(jù)處理;
    4、位運算符:
    & 按位與    只有兩位都為1時,結(jié)果為1;
    | 按位或    兩位任意一位為1時,結(jié)果為1;
    ^ ? 按位異或   只有兩位不同時,結(jié)果才為1;
    ~ 按位取反   
    5、移位運算符:
    << 左移
    >> 帶符號右移   (負數(shù):所有空位都補1)
    >>> 無符號右移
    6、API

    Java.lang.Integer. toHexString(int i);   //整型轉(zhuǎn)換為其對應(yīng)的十六進制數(shù)
    7、移位運算的效率要高于存儲運算,在一些講求效率的程序中,應(yīng)考慮使用移位運算;
    8、<<1 左移一位,相當(dāng)于乘以2
    >>1 右移一位,相當(dāng)于除以2






    Java的面向?qū)ο缶幊?/font>



    1、OOP:描述的是對象和對象之間的相互作用;
    2、面向過程和面向?qū)ο缶幊痰膮^(qū)別:
    ·面向過程編程,一般是先確定算法,然后考慮數(shù)據(jù)結(jié)構(gòu),而面向?qū)ο缶幊蹋瑒t是先確定數(shù)據(jù)結(jié)構(gòu),在設(shè)計算法;
    ·面向過程編程,往往是將數(shù)據(jù)保存到數(shù)據(jù)結(jié)構(gòu)中,并通過方法來操作數(shù)據(jù),而面向?qū)ο蟮木幊讨校瑒t是將數(shù)據(jù)和方法組織到一個對象中;
    3、類是對象的摸板,對象是類的實例;
    4、面向?qū)ο缶幊趟悸罚合葘F(xiàn)實世界實體抽象成對象,然后考慮解決的方法;
    5、類的構(gòu)造方法,沒有返回類型,名字與類名相同,構(gòu)造函數(shù)用于對類對象定義初始化狀態(tài),每個類必須有構(gòu)造函數(shù),若沒顯示定義,則java編譯器會自動生成一個不含參數(shù)的構(gòu)造方法,若顯示定義,則java不會提供任何默認(rèn)構(gòu)造方法;
    6、new 關(guān)鍵字:
    ·為對象分配空間  ·引起構(gòu)造函數(shù)的調(diào)用  ·返回一個對象的引用
    7、方法的重載(OverLoad
    ·構(gòu)成重載的條件:方法名稱相同,參數(shù)個數(shù)或參數(shù)類型不同;
    8、this 關(guān)鍵字:
    ·this關(guān)鍵字代表著一個特定的類對象本身;
    ·this 只在方法內(nèi)部使用,代表調(diào)用方法的對象本身;
    ·this 可以簡化構(gòu)造方法的調(diào)用this();
    9、java的成員方法在內(nèi)存中都只包含一份拷貝,被所有對象所共享;而成員變量則有多份拷貝,屬于不同對象所擁有。當(dāng)特定對象調(diào)用一個成員方法的時候,this被表示為指代該對象,去調(diào)用成員方法,然后與該對象的成員變量進行關(guān)聯(lián);
    10static 關(guān)鍵字
    ·被定義為static的方法或變量,是屬于一個類的,而不屬于某一個對象的;
    ·static的方法或變量,在類加載的時候,就分配了內(nèi)存空間,并且在內(nèi)存中只有一份拷貝;
    ·在static的方法中,不可以引用非static的方法和變量,而在非static的方法中,可以引用static的方法或變量;
    ·static的方法和變量可以通過類和對象來引用(實質(zhì)還是通過類來引用)
    11final 關(guān)鍵字
    ? ·被聲明為final的常量,是不允許被修改的,并且在定義時,就必須對其進行初始化(實際也可以將初始化放到構(gòu)造函數(shù)中);
    ·常把final的常量,同時聲明為static,可以節(jié)約空間;
    12java中通過extends 實現(xiàn)繼承,不允許多繼承;
    13override
    在子類中實現(xiàn)一個與父類中,具有相同名稱,返回類型,參數(shù)的方法,稱為方法的重寫;
    14super 關(guān)鍵字
    ·super 提供了子類中訪問被重寫或隱藏了的父類的方法或變量的方法;
    ·在子類的構(gòu)造函數(shù)中,都會在第一句隱式地加入一句super(),如果父類中沒有這樣的構(gòu)造函數(shù),則會報錯;
    15、多態(tài):
    java中根據(jù)傳遞參數(shù)所引用的對象的不同,來調(diào)用相應(yīng)子類的方法;
    ·編譯時多態(tài):方法的重載;
    ·運行時多態(tài):根據(jù)傳遞對象的不同,來調(diào)用不同的方法;
    16instanceof
    用于判斷一個對象是否為一個類的實例;




    1、使用package關(guān)鍵字定義包,包層次對應(yīng)目錄的層次;
    2、使用 javac –d 目錄 *.java 編譯,生成包
    ? 使用 java 包名.類名來執(zhí)行文件;
    3、使用import 來導(dǎo)入一個包;


    類的修飾符

    1、·public公共類 ? ? ? ? ?
    ·default:包內(nèi)可見
    2final被聲明為final的類,是最終類,不允許被繼承;
    ? ·java.lang.String類是個final類;
    3abstract:包含抽象方法的類;
    ? ? ? 不允許產(chǎn)生抽象類的對象;
    ? ? ? 可以將不包含任何抽象方法的類,聲明為abstract,以避免產(chǎn)生這個類的任何對象;
    4、方法訪問說明符
    ? public ? 公共的
    protected 同一包中或不同包中的子類可以訪問
    default ? 同一包內(nèi)可以訪問
    private ? 同一個類內(nèi)可以訪問
    5、其他方法說明符
    · static
    · final ?
    將方法定義為final,則在繼承過程中,子類將不能重寫該方法;
    privatestatic方法,自然都是final的;
    · abstract 不包含方法體的方法;
    · nativeJNIJava Native Interface
    ? ? ? ·JNI允許JVM中運行的java程序與其他語言編寫的應(yīng)用程序進行互操作;
    ? ? ? ·JNI可以理解為java程序和本地應(yīng)用程序的之間的中介;
    ? ? ? ·JNI程序編寫步驟:
    1、寫一段java代碼;
    ? ? ? ? 2、編譯java代碼
    ? ? ? ? 3、創(chuàng)建 .h文件(使用javah –jni 類名)
    ? ? ? ? 4、寫一個本地方法的實現(xiàn)
    ? ? ? ? 5、創(chuàng)建一個共享的庫
    ? ? ? ? 6、執(zhí)行java程序;
    垃圾回收

    1、沒有任何引用的對象,成為垃圾內(nèi)存,會被垃圾回收器回收;
    2、垃圾回收器是自動運行的,當(dāng)JVM感覺到內(nèi)存不夠的時,就會自動運行來處理垃圾內(nèi)存;
    3、垃圾回收器在真正回收一個對象之前,會調(diào)用finalize()方法,子類重寫這個方法,來做一些配置系統(tǒng)資源或執(zhí)行其他清除的工作;
    4API

    Java.lang.Object. finalize(); //垃圾回收前調(diào)用該方法
    Java.lang.System.gc()   ? //運行垃圾回收器


    接口

    1、接口中全部方法默認(rèn)為public abstract,那么在實現(xiàn)接口的類中,也必須為public的;
    2、實現(xiàn)一個接口,若想去創(chuàng)建一個實現(xiàn)類的對象,那么就必須去實現(xiàn)接口中的所有方法;
    ? 否則,實現(xiàn)類必須聲明為abstract
    3、接口中允許有數(shù)據(jù)成員,這些成員默認(rèn)為 Public static final
    4java中允許一個接口繼承另一個接口;
    5java 中不允許類的多繼承,但允許接口的多繼承;
    6、先繼承類,然后再實現(xiàn)接口;


    內(nèi)部類

    1、在一個類中,定義一個類,這個類就叫做內(nèi)部類;
    2、當(dāng)我們建立一個內(nèi)部類時,內(nèi)部類的對象就會與外部類的對象之間產(chǎn)生某種聯(lián)系,這種聯(lián)系是通過this 引用形成的,從而使的內(nèi)部類可以隨意訪問外部類的成員(包括private的)
    3、在內(nèi)部類的方法中,通過this.x 引用內(nèi)部類的成員變量;通過outer.this.x引用外部類的成員變量;
    4、使用外部類名.內(nèi)部類名(outer.inner)的方式,在outer類外部引用內(nèi)部類;
    5、在未產(chǎn)生一個外部類對象時,不能使用new來直接創(chuàng)建一個內(nèi)部類對象,因為內(nèi)部類對象都是和一個外部類對象想關(guān)聯(lián)的,使用 Inner in=outer.new Inner()可以創(chuàng)建(outer為已創(chuàng)建的外部類對象);
    6、內(nèi)部類可以放到方法、條件語句體、語句塊中,但不管嵌套的層次有多深,內(nèi)部類都可以隨意訪問外部類的成員;
    7、當(dāng)內(nèi)部類在一個方法內(nèi)部定義的時候,那么方法的參數(shù)或局部變量,必須聲明為final,才可以被內(nèi)部類調(diào)用;
    8、內(nèi)部類可以被聲明為protected private的;
    9、內(nèi)部類可以被聲明為static的類,這時,創(chuàng)建內(nèi)部類對象就不需要必須首先產(chǎn)生一個外部類對象做為前提了,而這樣,內(nèi)部類也不能隨意訪問外部類的非static的成員了;
    ? static切斷了外部類與內(nèi)部類之間的關(guān)系)
    10、非static的內(nèi)部類中,不能有靜態(tài)的方法或變量存在;
    11、內(nèi)部類可以實現(xiàn)接口;
    12、將內(nèi)部類聲明為private的,可以很好的隱藏實現(xiàn)的細節(jié);
    13、匿名內(nèi)部類可以用于實現(xiàn)適配器類,在AWT編程中,經(jīng)常使用到;


    異常處理

    1Exception類:定義了程序中遇到的輕微錯誤條件,需要我們在程序中進行處理;
    2Error類:定義了程序中遇到的嚴(yán)重錯誤條件,內(nèi)存溢出,文件格式錯誤等,不需要我們?nèi)ヌ幚恚?/font>java 運行時系統(tǒng)來進行處理;
    3Java程序如果在運行的過程,發(fā)生了異常,就會自動生成一個異常對象,并將該異常對
    ? 象提交給java運行時系統(tǒng)(拋出異常throws),接受到異常對象,java運行時系統(tǒng)就會查找能夠處理該異常的代碼,并將該異常對象交給它進行處理(捕獲異常catch)。如果找不到能夠處理該異常的代碼,java程序就會終止運行;
    4try/catch/finally 來處理異常;
    5、在try中,發(fā)生異常的語句后的程序段,不會被執(zhí)行,而是直接跳轉(zhuǎn)到catch語句里去;
    執(zhí)行完catch里的語句,會繼續(xù)執(zhí)行后面的語句;finally里的語句始終都要執(zhí)行;
    6API
    ? Java.lang.Throwable. getMessage()
    ? Java.lang.Throwable. toString()
    Java.lang.Throwable. printStackTrace() ? //以上都是捕獲異常的信息
    6、在方法的參數(shù)列表后,跟上 throws Exception 用來聲明,該方法有可能會拋出異常。一旦,產(chǎn)生了異常,則異常會被拋給該方法的調(diào)用者。如果方法的調(diào)用者不做處理,依舊可以逐級向上拋,直到main函數(shù)也不做處理,將該異常拋給 java runtime system來處理;
    7、throw 實際拋出一個異常
    throws 聲明拋出一個異常
    8、RunTime 異常一般不需要我們?nèi)ヌ幚恚蛇\行時系統(tǒng)自己處理;
    9、子類在覆蓋父類方法的時候,不能拋出新的異常,而只能是相同的異常或該異常的子集;


    String



    1String 類是final類,不允許被繼承;
    2= = 是比較變量的值(引用對象的地址)是否相等
    ? equals()是比較變量的內(nèi)容(引用的對象內(nèi)容)是否相等;
    3+ 用于連接字符串;
    4+ +=java中唯一被重載的操作符;
    5String 變量是個常量,一旦被創(chuàng)建,就不能被改變;
    6、在處理大量字符串的程序中,常用 StringBuffer 來代替String
    7API
    ? Java.lang.StringBuffer.append() //
    8StringBuffer 創(chuàng)建的對象空間初始為16個字符,但當(dāng)空間不夠的時候,會自動增加;
    9java中的傳遞參數(shù),都是以傳值的方式,基本類型是傳遞值的拷貝,引用類型是傳遞的引用的拷貝;
    10、當(dāng)打印一個對象的時候,會調(diào)用該對象的toString方法;


    克隆機制
    ·為了獲得對象的一份拷貝,我們可以使用Object類中的clone()方法,在派生類中重寫clone()方法,并聲名為public
    ·必須在繼承類中實現(xiàn)cloneable接口(標(biāo)識接口),來告訴編譯器:該對象可以克隆了;
    ·在繼承類的clone()中調(diào)用 superClone();
    ·淺拷貝:當(dāng)在類中沒有引用對象存在時,類中所有的變量都可以拷貝過去;
    深拷貝:當(dāng)類中有存在引用對象時,將該引用對象一同克隆一份的克隆方法;(將引用對象所對應(yīng)的類也重寫clone方法,并且實現(xiàn)cloneable接口,并且在引用類的clone方法中,將clone方法返回值賦值給引用的變量中);
    數(shù)組操作:

    1API
    java.lang.system.arraycopy //數(shù)組的拷貝
    ? java.util.Arrays.sort ? ? // 對數(shù)組進行排序
    ? java.util.Arrays.binarySearch // 對有序數(shù)組進行搜索
    2、排序?qū)ο髷?shù)組,數(shù)組中的所有對象都必須實現(xiàn)Comparable接口;


    封裝類:



    1、針對八種基本類型,java中存在八個封裝類;
    2、數(shù)字字符串轉(zhuǎn)換為Integer類型: valueOf(String s);
    ? 數(shù)字字符串轉(zhuǎn)換為int 類型: ? parseInt(String s);


    反射API

    1java.lang.reflect


    單例模式:

    1、每一個類都只有一個實例;
    2、單例模式的構(gòu)造方法是private
    3、主要用于:需要一個類只提供一個實例的時候,例如計數(shù)器;
    4、單例類的一個實現(xiàn):
    ? class Singleton
    {
    ? private static Singleton st=new Singleton();
    ? private Singleton()
    ? {
    }
    public static Singleton getInstance()
    {
    return st;
    }
    }
    5、參考書java與模式》閻宏電子工業(yè)出版社





    多線程:

    1、程序:程序是一系列計算機指令的集合,以文件的形式存儲在計算機磁盤上;
    ? 進程:進程是一個程序在其自身地址空間內(nèi)的一次執(zhí)行活動,它可以申請系統(tǒng)資源,被調(diào)度、運行;
    ? 線稱:線程是一個進程中的一個單一連續(xù)控制流程,一個進程可以擁有多個線程,沒有獨立的內(nèi)存空間,而是與其他線稱共享同一進程的地址空間;
    2、進程與進程切換上下文切換耗時,遠遠低于線程間切換的效率;
    3java在語言級支持多線程;
    4、實現(xiàn)多線程的方法:
    ? 一、繼承Thread 類;
    ? 二、實現(xiàn)Runnable接口;
    5、實現(xiàn)run()方法,并用start()啟動一個線程;
    6setDaemonboolean )設(shè)置一個線程為后臺線程,當(dāng)程序的線程都為后抬線程時,程序就會退出;
    7yield()方法可以使一個線程放棄自己的時間片,而讓出執(zhí)行機會給其他線程;
    8setPriority設(shè)置一個線程的優(yōu)先級;
    9java的線程調(diào)度機制,不支持時間片輪換,而是支持搶占式的方式,對于具有相同級別的線程,如果操作系統(tǒng)支持時間片輪換,則java虛擬機也支持這種方式;
    10sleep():在指定的毫秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行)。該線程不丟失任何監(jiān)視器的所屬權(quán)。
    11、線程同步:同步塊和同步方法;
    ? ·synchronizedobj)塊,一個線程進入synchronized塊前,先給obj對象監(jiān)視器加鎖,其他線程則不能進入,等離開時,則對監(jiān)視器解鎖;
    ? ·synchronized方法,使用synchronized聲明一個方法,這種方法的鎖是加到this對象上邊;
    12、線程的死鎖:
    13wait():導(dǎo)致當(dāng)前的線程等待,直到其他線程調(diào)用此對象的 notify() 方法或 notifyAll() 方法
    notify():喚醒在此對象監(jiān)視器上等待的單個線程。如果所有線程都在此對象上等待,則會選擇喚醒其中一個線程。選擇是任意性的,并在對實現(xiàn)做出決定時發(fā)生。線程通過調(diào)用其中一個wait方法,在對象的監(jiān)視器上等待。
    14、終止線程:
    ·設(shè)置一個flag變量;
    ·Intrrupte() 中斷有一個線程;


    集合類:

    1、集合框架(Collections Framework):就是一個用來表示和操作集合的統(tǒng)一的架構(gòu),包含了實現(xiàn)集合的類和接口;
    2、集合框架中的接口:
    ? CollectionàSetàsortedSet ? ? ? ? ? MapàsortedMap
    ? ? ? ? à List
    ·collection:集合層次中的根接口,JDK中沒有提供這個接口的直接實現(xiàn)類;
    ·set:不能包含重復(fù)的元素。Sortedset是元素按照升序排列的set
    ·list:是一個有序的集合(不是指的排列順序),可以包含重復(fù)的元素,提供按索引訪問的方法;
    ·map:包含了key-value對。不能包含重復(fù)的元素。Sortedmap是一個將key值按升序排列的map
    3ArrayList
    ·arraylist可以看成是一個可以增長容量的數(shù)組;
    ·arraylist的實現(xiàn)是使用了一個對象數(shù)組,當(dāng)容量不夠的時候,會重新分配一個數(shù)組,將原來數(shù)組中的元素拷貝到新數(shù)組中;
    ·數(shù)組à List (Arrays.asList())
    Listà數(shù)組 ? (arrayList.toArray())
    ·迭代器(Itertator):
    ·對于沒有提供get方法的集合類,可以使用iterator來返回集合中的元素;
    ·可以提供一個通用的方法來返回元素,如
    Pubilc static vid printElems(Collection c)
    {
    ? ? Iterator i=c.iterator();
    ? ? While(i.hasNext())
    ? ? {
    ? ? ? System.out.println(i.next());
    }
    }
    4collections
    ·collections類中所有的方法都是static
    ·自然排序
    ·使用比較器排序
    5LinkedList
    ? ·使用雙向循環(huán)鏈表實現(xiàn)的;
    ? ·可以實現(xiàn)棧、隊列、雙向隊列;
    ·ArrayListLinkedList的比較:

    ? ·arrayList的低層是采用數(shù)組來實現(xiàn)的,而linkedlist是采用雙向鏈表實現(xiàn)的,linkedlist的每一個對象中,都包含了除了自身數(shù)據(jù)元素外的,兩個值,一個指向前一個元素,一個指向后一個元素;
    ? ·如果經(jīng)常要在list中的第一個位置插入數(shù)據(jù)或頻繁插入或刪除操作,則使用LinkedList
    ? 如果要經(jīng)常地查找某一個元素,則使用ArrayList,它提供了按索引查找;
    6HashSet
    ? ·實現(xiàn)set接口的hash table,依靠hash map來實現(xiàn)的;
    ? ·hashset的默認(rèn)負載因子是0.75
    ? ·每一個對象都有個hashCode,根據(jù)內(nèi)存地址計算出來的;
    ·hashset中存儲元素,則元素的類必須實現(xiàn)hashCode()和equals()
    7ThreeSet
    ·ThreeSet是依靠threeMap來實現(xiàn)的;
    ·ThreeSet中的元素是有序的,缺省按照升序排列,因此threeset中的元素必須實現(xiàn)Comparable接口;
    ·HashSet TreeSet的比較:

    HashSet是基于hash算法來實現(xiàn)的,通常其性能都是優(yōu)于TreeSet,通常都是使用hashset的;只有使用到排序功能的時候,才會使用TreeSet
    8HashMap
    9TreeMap
    ·按照key排序
    ·HashMapTreeMap的比較:

    ? set的一樣;




    I/O操作

    1、一個java中的File類,即可以表示一個文件,也可以表示一個目錄;
    2、在程序運行過程中,產(chǎn)生的運行時臨時程序,可以通過deleteOnEixt(),在程序結(jié)束的時候清除這些中間文件;
    3java中的讀取和寫入都是通過流來完成的;
    4、流:字節(jié)的源或目的;
    5、流分類:節(jié)點流和過濾流(需要一個存在的節(jié)點流對象)
    6InputStream
    ? Abstract int read()
    ? Int read(byte[])
    ? Int read(byte[],int off,int length)
    ? Void close()
    7outputStream:
    ? Abstract void write(int b)
    ? Void write(byte[] b)
    ? Void write(byte[] b,int off, int length)
    ? Void flush()
    ? Void close()
    8、基本流:
    ? ·FileInputStream FileOutputStream ? (節(jié)點流)
    ·BufferedInputStream BufferedOutputStream (過濾流)
    9、當(dāng)使用bufferedoutputstream()的時候,只有當(dāng)緩沖區(qū)滿的時候,才會輸出,可以使用flush()或關(guān)閉 close()方法強制輸出;
    10DataInputStream DataOutputStream (過濾流)
    ? ? 提供對基本數(shù)據(jù)類型的讀寫操作;
    11PipedInputStream PipedOutputStream (管道流)
    ? ? 用于線程之間的通信;
    12java的輸入\輸出,提供的是一種鏈結(jié)機制,可以把兩個流首尾相結(jié),形成一個流管道。這種模式被稱為裝飾模型(Decorater)。
    13Reader Writer 是用來讀寫字符流;
    ? InputStream OutputStream 是用來讀寫字節(jié)流;

    posted on 2008-12-08 16:41 幽夢新影 閱讀(1802) 評論(4)  編輯  收藏

    評論

    # re: 一些JAVA學(xué)習(xí)筆記   回復(fù)  更多評論   

    是不是沒啥東西寫了?籠統(tǒng)的一些概念。
    2008-12-08 17:33 | T

    # re: 一些JAVA學(xué)習(xí)筆記   回復(fù)  更多評論   

    亂得沒法看。
    2008-12-08 20:29 | ww

    # re: 一些JAVA學(xué)習(xí)筆記   回復(fù)  更多評論   

    雖然有點雜,不過對付java考試還是很有用
    2008-12-10 14:23 | ...

    # re: 一些JAVA學(xué)習(xí)筆記   回復(fù)  更多評論   

    嗯,雖然有點亂,但是很多東西對我都有用,支持樓主!
    2008-12-11 11:46 | 小人物

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 波多野结衣一区二区免费视频| 免费国产黄网站在线看| 国产成人高清亚洲| 久久99九九国产免费看小说| 国产在线精品一区免费香蕉| 亚洲AV综合永久无码精品天堂 | 欧美亚洲国产SUV| 亚洲欧洲国产经精品香蕉网| 国产亚洲一区二区三区在线观看 | 亚洲乱码在线观看| 亚洲视频在线一区| 亚洲中文字幕在线乱码| 国产午夜免费秋霞影院| 成人免费a级毛片| 国产精品色拉拉免费看| 久久精品电影免费动漫| 中国内地毛片免费高清| 黄色一级毛片免费看| 亚洲日本va一区二区三区| 亚洲videosbestsex日本| 91亚洲自偷手机在线观看| 亚洲不卡av不卡一区二区| 亚洲男同帅GAY片在线观看| 亚洲免费日韩无码系列| 国产一区二区免费在线| 午夜视频免费成人| 成年女性特黄午夜视频免费看| 国产成人免费在线| 99精品国产成人a∨免费看| 99热这里有免费国产精品| 一级毛片免费视频| 6080午夜一级毛片免费看6080夜福利| 亚洲免费观看视频| 国产成人免费视频| 欧洲人免费视频网站在线| 久久久国产精品福利免费| 久久永久免费人妻精品下载| 日韩在线不卡免费视频一区| 99久久精品免费精品国产| 亚洲视频在线观看免费视频| 免费在线看v网址|