java學(xué)習(xí)筆記與心得_第1頁
java學(xué)習(xí)筆記與心得_第2頁
java學(xué)習(xí)筆記與心得_第3頁
java學(xué)習(xí)筆記與心得_第4頁
java學(xué)習(xí)筆記與心得_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

GUI:GraphicsUserInterfaceAWT:AbstractWindowToolkitjava.awt——包含了構(gòu)成抽象窗口工具集(abstractwindowtoolkits)的多個類,這些類被用來構(gòu)建和管理應(yīng)用程序的圖形用戶界面(GUI)。javax.swing——完全Java版的圖形用戶界面(GUI)解決方案,提供了很多完備的組件,可以應(yīng)對復(fù)雜的桌面系統(tǒng)構(gòu)建。——包含執(zhí)行與網(wǎng)絡(luò)相關(guān)的操作的類,如URL,Socket,ServerSocket等。java.io——包含能提供多種輸入/輸出功能的類。java.util——包含一些實用工具類,如定義系統(tǒng)特性、使用與日期日歷相關(guān)的方法。還有重要的集合框架。1:多態(tài)是針對兩個類之間的方法來說的。2:重載是針對一個類之間的同名方法而言的。3:覆蓋是針對兩個類的同名同參的方法來說的。3:兩個子繼承之間的類不能轉(zhuǎn)換,就算是強(qiáng)制轉(zhuǎn)換都不行。4:java文檔名,應(yīng)該用publicclass的公共類名來賦名。5:當(dāng)編譯一個java文檔時,java編譯器會根據(jù)class類的數(shù)量,來生成多個對應(yīng)class文件。6:運行時屏蔽斷言。運行時屏蔽斷言:java-disableassertions/java-da運行時允許斷言java-enableassertion/java-ea一個類的所有基本類型數(shù)據(jù)成員都保證獲得一個初始值每個編譯單元內(nèi)都只能有一個public類一個有效的程序就是一系列.class文件,它們可以封裝和壓縮到一個JAR文件里(使用Java1.1提供的jar工具)程序片的運行②;由于程序片觀察器會忽略除APPLET標(biāo)記之外的任何東西,所以可將那些標(biāo)記作為注釋置入Java源碼://<appletcode=MyApplet.classwidth=200height=100></applet>這樣就可直接執(zhí)行“appletviewerMyApplet.java”,不必再創(chuàng)建小的HTML文件來完成測試。新建一個類或創(chuàng)建一個類都不會觸發(fā)該類的main入口函數(shù)publicstaticvoidmain(String[]argv)的String[]argv與publicstaticvoidmain(Stringargv[])的Stringargv[]之間的區(qū)別:兩者作用一樣,前者是java新引入的數(shù)組的一種寫法,后者是c++的數(shù)組的寫法形式,在java中,兩種寫法都可以。導(dǎo)入已有的javaapplet文件,file-import-general-existingprojectsintoworkspace字段就是指數(shù)據(jù)成員方法就是指成員函數(shù)執(zhí)行一個類需要寫全包名javacom.xiaoliu.abc.HelloWorldvoidnothing(){return;}return的作用是退出語句,而不是返回0的一個值,當(dāng)在有返回值的情況之下,就會提示必須返回一個值,即return0;每種非基本類型的對象都有一個toString()方法如果類沒有默認(rèn)的自變量,或者想調(diào)用含有一個自變量的某個基礎(chǔ)類構(gòu)建器,必須明確地編寫對基礎(chǔ)類的調(diào)用代碼。這是用super關(guān)鍵字以及適當(dāng)?shù)淖宰兞苛斜韺崿F(xiàn)的classGame{Game(inti){System.out.println("Gameconstructor");}}classBoardGameextendsGame{BoardGame(inti){super(i);//調(diào)用父類的自變量是int類型的構(gòu)造函數(shù)-----------------------------System.out.println("BoardGameconstructor");}}final類的意義就是禁止一個新類來繼承它接口包含了基本數(shù)據(jù)類型的數(shù)據(jù)成員,但它們都默認(rèn)為static和final,也就是說接口是不能用extends繼承。接口中的字段會自動具備public屬性,所以沒必要專門指定,也就是說接口是拿來用的,設(shè)置成private就失去了意義。javadoc命令行javaFrogfinalizetoString方法的引用下面是調(diào)用打印的另一個方法(盡管在效率上可能會差一些):System.out.println(""+e.nextElement());它采用了封裝到Java內(nèi)部的“自動轉(zhuǎn)換成字串”技術(shù)。一旦編譯器碰到一個字串,后面跟隨一個“+”,就會希望后面又跟隨一個字串,并自動調(diào)用toString()。取對象的地址值super.toString()super的對象是指根類Object隨機(jī)為boolean賦值booleanshadom=Math.random()>0.5;違例跟蹤publicclassNeverCaught{staticvoidf(){thrownewRuntimeException("Fromf()");//3}staticvoidg(){f();//6}publicstaticvoidmain(Stringargs[]){g();//9}}編擇出Exceptioninthread"main"java.lang.RuntimeException:Fromf()atNeverCaught.f(NeverCaught.java:3)atNeverCaught.g(NeverCaught.java:6)atNeverCaught.main(NeverCaught.java:9)3,6,9能夠跟蹤到拋出異常的地方j(luò)ar命令行jarcfmyJarFile.jar*.class用于創(chuàng)建一個名為myJarFile.jar的JAR文件,其中包含了當(dāng)前目錄中的所有類文件,同時還有自動產(chǎn)生的查看java包的大類和相應(yīng)的小類在E:\ProgramFiles\Java\jre6\lib\rt.jar\java用壓縮文件打開rt.jar文件rt=runtime運行時類java.lang是java的核心類,也是已經(jīng)默認(rèn)導(dǎo)入的類,所以可以直接引入String\System類,即不用importjava.lang.*;java.lang類包括String\System\Integer\Math\Thread\Exception\的一些常用功能的類對當(dāng)前所在目錄的全部文件進(jìn)行打包成jar文件當(dāng)前所在的目錄必須用cd命令行引入jar-cvfabc.jar*.**.*表示全部文件Object類一個構(gòu)造函數(shù)Object();多個方法clone()equals(Objectobj)finalize()getClass()hashCode()toString()與線程相關(guān)的方法notify()notifyAll()wait()wait(longtimeout)wait(longtimeout,iintnanos)toStringpublicclassTesttoString{publicstaticvoidmain(Stringargs[]){Dogd=newDog();System.out.println("d:"+d);}}classDog{ }里面的System.out.println("d:"+d)=System.out.println("d:"+d.toString());overridethetoStringfunctionoverride=重寫如果沒有重寫toString方法,則d=getClass().getName()+'@'+Integer.toHexString(hashCode())d=Dog@757aef==比較的是對象之間的地址值是否相等equals()方法比較的是兩個對象的內(nèi)容是否相等一般都重寫equals()方法instanceof判斷該Object類對象是否是Cat類的對象ObjectinstanceofCat返回true/false多態(tài)存在的三個條件1:要有繼承2:要有方法重寫3:父類引用子類對象如:Parentp=newChild();抽象類的父類可以聲明Personperson,但不可以進(jìn)行實例化Personperson=newPerson();只要類中有一個方法是抽象方法,該類就必須聲明為抽象類,關(guān)鍵字abstractfinal關(guān)鍵字final的變量不可以改變final的方法不可以重寫final的類不可以繼承interface接口的默認(rèn)前置publicinterfaceRunner{publicstaticfinalinti;publicvoidstart();publicvoidrun();publicvoidstop();}=pulbicinterfaceRunner{inti;voidstart();voidrun();voidstop();}voidstop();異常Throwable包含兩個子類Error:系統(tǒng)內(nèi)部錯誤,不需要程序員處理Exception:程序員需要處理的錯誤Exception又包含運行時錯誤RuntimeException方法后面接throws往外拋異常,交給上一層結(jié)構(gòu)處理,即printStackTrace()的路徑軌跡的上、下層結(jié)構(gòu)的一層重寫方法需要拋出與原方法所拋出異常類型一致異常或不拋出異常路徑的正反斜桿window的是反斜桿 \linux的是正斜桿 /但統(tǒng)一寫正斜桿/的兩者皆可容器(接口)在java.util工具類里面一個一個地往里裝 Collection一對一對地往里裝 Map(HashMap)Collection有兩個子類,Set(HashSet)+List(ArrayList+LinkedList)Set的數(shù)據(jù)對象沒有順序且不可以重復(fù)List的數(shù)據(jù)對象有順序且可以重復(fù)LinkedList方便刪除、添加、插入元素ArrayList方便訪問元素Map接口定義了存儲“鍵(Key)-值(value)映射對”的方法當(dāng)調(diào)用remove、contains等方法需要比較對象是否相等時,需要重寫equals和hashCode方法以實現(xiàn)自定義的對象相等規(guī)則對象一樣,則索引也必須一致,如字典,但有時也不一定,看情況。hashCode就是實現(xiàn)索引的效率Iterator接口1:所有實現(xiàn)了Collection接口的容器類都有一個Iterator方法用以返回一個實現(xiàn)了Iterator接口的對象2:Iterator對象稱作迭代器,用以方便的實現(xiàn)對容器元素的遍歷操作3:Iterator接口定義了三個方法:booleanhasNext(); 判斷游標(biāo)右邊是否有元素Objectnext(); 返回游標(biāo)右邊的元素并將游標(biāo)移動到下一個位置voidremove(); 刪除游標(biāo)左面的元素,在執(zhí)行完nest之后該操作只能執(zhí)行一次-A-A-A-A-A-A-A--:游標(biāo)A:元素用法:Collectionc=newHashSet();c.add(newName("firstname","lastname"))Iteratori=c.iterator();while(i.hasNext()){Namename=(Name)i.next();//i.remove()i.next();}Collection是一個接口Collections是一個類Map接口鍵值不能重復(fù),即鍵不能重復(fù)。當(dāng)鍵相同時,由于一一對應(yīng)的關(guān)系會把相應(yīng)的value值替換掉。因為比較equals判斷是否重復(fù)的效率比較慢,而比較兩個對象的hashCode是否相同,從中判斷是否重復(fù),這種方法比較快,因而一般都重寫該對象的hashCode方法Auto-boxing/unboxing在合適的時機(jī)自動打包、解包打包:自動將基礎(chǔ)類型轉(zhuǎn)換為對象解包:自動將對象轉(zhuǎn)換為基礎(chǔ)類型有一種相當(dāng)于String類型的s+""的形式如Intergeri=newInterger(100);i+1;泛型(Generic)list<String>=newArrayList<String>();Map<String,integer>=newhashMap<String,integer>();裝入的對象只能是String對象<T>interface<E>classio:以stream結(jié)尾的為字節(jié)流Reader/Write的為字符流io2:PrintWriter PrintStreamPrintWriter和PrintStream都屬于輸出流,分別針對字符和字節(jié)兩者都提供了重載的print兩者的輸出操作不會拋出異常,并且有自動flush功能io3:InputStream OutputStreamReader WriterFileInputStream FileOutputStreamFileReader FileWriterBufferedInputStream BufferedOutputStreamBufferedReader BufferedWriterByteArrayInputStream ByteArrayOutputStreamInputStreamReader OutputStreamWriterDataInputStream DataOutputStreamPrintStream PrintWriterObjectInputStream ObjectOutputStream處理流:1:緩沖流 BufferInputStream/BufferOutputStreamBufferReader/BufferWriter2:轉(zhuǎn)換流,字節(jié)流到字符流的轉(zhuǎn)換InputStreamReader/OutputStreamWriter3:數(shù)據(jù)流,將基礎(chǔ)數(shù)據(jù)類型寫入到文件中,或從文件中讀取,如int、long、doubleDataInputStream/DataOutputStreamDate:CST=ChinaStandardTimenewDate()————WedOct2418:26:20CST2012線程Thread//Threadt=newThread(Runnabler);(方法1——Runnable接口實現(xiàn)——推薦,重復(fù)實現(xiàn))Runnerr=newRunner();Threadt=newThread(r);t.start();classRunnerimplementsRunnable{publicvoidrun(){} //重寫run方法}Thread構(gòu)造函數(shù)是一個Runnable接口,Thread.start()調(diào)用屬于接口Runnable類型的run()方法}(方法2——繼承Thread類實現(xiàn))Runnerr=newRunner();r.start();classRunnerextendsThread{publicvoidrun(){}}線程同步/加鎖synchronized在父類Runnable/Thread的子類當(dāng)中的方法必須全部加上synchronized關(guān)鍵字————前提是兩個方法都有修改子類的數(shù)據(jù)成員的值的時候,不然達(dá)不了真正同步加了鎖的目的加上synchronized只能保證一個線程進(jìn)入當(dāng)前的方法當(dāng)中,但不能保證別的線程能夠訪問調(diào)用其它的方法如銀行賬戶的修改不能讓兩個線程同時訪問線程的wait sleep yieldwait放棄鎖——synchronized,由notify呼喚sleep不會放棄鎖——synchronizedyield放棄一個CPU時間片wait/notify屬于Object的方法sleep/yield屬于Thread的方法本地的IP地址是“”所有可顯示的圖形元素的父類為ComponentFlowLayout是Panel類的默認(rèn)布局管理器Flow流水線式的布局BorderLayout是Frame類的默認(rèn)布局管理器Border劃分為東西南北中五個區(qū)正則表達(dá)式\——\\字母——.數(shù)字——\djava.util.regex.Pattern字符x字符x\\反斜線字符\0n帶有八進(jìn)制值0的字符n(0<=n<=7)\0nn帶有八進(jìn)制值0的字符nn(0<=n<=7)\0mnn帶有八進(jìn)制值0的字符mnn(0<=m<=3、0<=n<=7)\xhh帶有十六進(jìn)制值0x的字符hh\uhhhh帶有十六進(jìn)制值0x的字符hhhh\t制表符('\u0009')\n新行(換行)符('\u000A')\r回車符('\u000D')\f換頁符('\u000C')\a報警(bell)符('\u0007')\e轉(zhuǎn)義符('\u001B')\cx對應(yīng)于x的控制符字符類[abc]a、b或c(簡單類)[^abc]任何字符,除了a、b或c(否定)[a-zA-Z]a到z或A到Z,兩頭的字母包括在內(nèi)(范圍)[a-d[m-p]]a到d或m到p:[a-dm-p](并集)[a-z&&[def]]d、e或f(交集)[a-z&&[^bc]]a到z,除了b和c:[ad-z](減去)[a-z&&[^m-p]]a到z,而非m到p:[a-lq-z](減去)預(yù)定義字符類.任何字符(與行結(jié)束符可能匹配也可能不匹配)\d數(shù)字:[0-9]\D非數(shù)字:[^0-9]\s空白字符:[\t\n\x0B\f\r]\S非空白字符:[^\s]\w單詞字符:[a-zA-Z_0-9]\W非單詞字符:[^\w]POSIX字符類(僅US-ASCII)\p{Lower}小寫字母字符:[a-z]\p{Upper}大寫字母字符:[A-Z]\p{ASCII}所有ASCII:[\x00-\x7F]\p{Alpha}字母字符:[\p{Lower}\p{Upper}]\p{Digit}十進(jìn)制數(shù)字:[0-9]\p{Alnum}字母數(shù)字字符:[\p{Alpha}\p{Digit}]\p{Punct}標(biāo)點符號:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\p{Graph}可見字符:[\p{Alnum}\p{Punct}]\p{Print}可打印字符:[\p{Graph}\x20]\p{Blank}空格或制表符:[\t]\p{Cntrl}控制字符:[\x00-\x1F\x7F]\p{XDigit}十六進(jìn)制數(shù)字:[0-9a-fA-F]\p{Space}空白字符:[\t\n\x0B\f\r]java.lang.Character類(簡單的java字符類型)\p{javaLowerCase}等效于java.lang.Character.isLowerCase()\p{javaUpperCase}等效于java.lang.Character.isUpperCase()\p{javaWhitespace}等效于java.lang.Character.isWhitespace()\p{javaMirrored}等效于java.lang.Character.isMirrored()Unicode塊和類別的類\p{InGreek}Greek塊(簡單塊)中的字符\p{Lu}大寫字母(簡單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論