




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
上課遇到問題,先做好筆記,下課提問晚自修練習上課的內容上14:00-14:30(每天按排3人,并自做PPT材料 一、計算機概述(了解何軟件的計算機稱為機。常見的形式有臺式計算機、筆記本計算機、大型計算機CPU、主板、內存、電源、主機箱、硬盤、顯卡、鍵盤、鼠標,顯示DOS(DiskOperatingSystemWindowsLinuxUnixMacAndroid應用軟件 QQ聊天YY語言掃軟件開發(理解DOS命令:需要一些常見DOS命令(掌握d:回車盤符切換 mdmakedirectory):rd(removedirectory):cd(changedirectory)改變指定 cd..:退回到上一級cd\:deldelete):刪除文件,刪除一堆后綴名一樣的文件*.txtexit:dos命令行clsclearscreen)三、Java語言概述(了解1995523日,JAVA1996年,1997JDK1.0,JDK1.11999年,JAVA2000年,JDK1.4200493018:00PM,J2SE1.5Java示該版本的重要性,J2SE1.5JavaSE2005年,JAVAJAVAEE,JAVASE200612月,SUN2009年04月20日,Oracle以74億收購Sun。取得java 20109月,JDK7.020117月,甲骨文公司發布java7的正式版。(2)Java有很多小特點,重點有兩個開源,跨平臺(一次編譯,到處運行(3)Java語言是跨平臺的,請問是如何保證的呢?(理解)四、JDK,JRE,JVM的作用及關系(掌握JRE:java運行環境。 JRE=java虛擬機+類庫(輔助java虛擬機運行的文件)JDK:java開發工具集。 JDK= java開發工具+jre.notepadnotepad++EclipseMyEclipse五、JDK(掌握jdk 介紹bin:java sum公司自帶的一個數據庫。 java虛擬機的文件夾lib src: 源代碼文件。java語言是開源的。java開發工具:javac.exe:啟動javajava源文件進行編譯。javacjava源文件java.exe:啟動javaclass文件。 class文件六、環境變量path環境變量(掌握path保證javac命令可以在任意 同理可以配置qq等pathB:classpath環境變量(理解classpath保證class文件可以在任 下運classpathsetsetset變量名=set變量名=setpath=新值七、注意事項A:JDK,JRE,JVM分別是什么B:Java語言是跨平臺的嗎?JVM是跨平臺的嗎?C:path和classpath的區別path環境變量中配置的路徑去找classpathjava關鍵字、標識符、注釋、常量、變量、一、關鍵字(掌握JavaA:gotoconst二、標識符(掌握B:不能是java常見名規則(見名知意 tD:三、注釋(掌握軟件:用戶幫助文檔 文檔注釋與多行注釋的區別:文檔注釋的內容可以用于生成一個開發者文檔。jajace如何使用javadocjavadocjavadoc-d java的源文件。軟件 數據+指 +說明文java程序模擬QQjava編譯器會忽略注釋 實現方式://注釋的內容 實現方式:/* 文檔注釋 實現方式:/**注釋的內容一般單行注釋都是在寫在代碼的右邊,}該類是用于模擬QQ@version 0416java基礎班publicclassQQ的登陸過程:要用戶用戶名與校驗用戶名與publicstaticvoidmain(String[]{System.out.println("請輸入用戶名與");System.out.println("校驗用戶名與");System.out.println("展示好友列表..");}}四、數據類型(掌握A:基本數據類型:48java┏數值型━┳━整數型:byteshortint ┗━浮點型:float 數據類型 java的數據類型分基本數據類型(原始數據類型)和基本八大類,圖中可以很清楚的看到;這種類型的數據變量在之后java就會立刻分配給他內存空間。如:shorta;java會在可使用的內存空間尋找一個占兩個字節的塊給aC/C++(具體的值),這類變量時不會分配內存 整數 1個字節,最小值:-128 2個字節,最小值:-32768,最大值:32767 4個字節,最小值 ,最大值 8個字節最小值 最大 8個字節,最小值:4.9E-324,最大值:1.7976931348623157E308 2個字節,最小值:0,最大值:65535 一個字節或者節。(java規范 如果boolean用于一個基本類型變量時是占節,如果用于一個數據類
整數默認是intdouble。長整數要加L或者l。Ff五、數據類型轉換(掌握booleanB:byte,short,char--int--long--float--C:byte,short,char之間不相互轉換,直接轉成int目標數據類型被轉換的數據floatf1=12.345f;floatf2=byteb1=3;byteb2=byteb3=b1+b2;byteb4=3+4;byteb=(byte)130;ASCIISystem.out.println("o"+'a'+1);System.out.println('a'+1+"o");七、作業(劉意546對應的二進制,八進制,十六進制的值。OK了。不用浪費太多時間。byteb1=3,b2=4,b; =八、作業(鐘太瀲 oworld打印根據java自動類型提升規則,同樣道理char提升為int。就把’a’代表的數字體現了出來。a表示的是97 97+1就是98 ++,在后的區別++前先自增,后運算。后++shorts3ss+2s+=2,s=s+2;由于s+2運算時會自動提升式的類型,所以結果是int型,再賦值給short類型shorts1=1;s1+=1;由于+=java語言規定的運算符,java編譯器會對它進行特“&”和“&&”一、運算符(掌握B:+b:**a++或者++ainta=intb=inta=intb=intx10;10intxshorts=1;s=s+1;shorts=1;s+=1;C:千萬==寫成了&:false|:true則^:相同則falsetrue。!:true則falsefalse則位運算符(了解B:**采用第變a,b,ab:28truefalse。true1就是結果。二、鍵盤錄入(掌握import位置:在classScannersc=newintx=三、流程控制語句四、if語句(掌握if(比較表達式語句體}true還是true,就執行語句體B:if(比較表達式}else}true還是if(1}elseif(}else}1true還是
D:elseif,是不會出現比較表達式的。C:獲取三個數中的最大值(if語句的嵌套)F:xy的值并輸出if所有的三元運算符能夠實現的,if語句的第二種格式都能實現。五、練習鍵盤錄入一個分數,然后根據分數輸出對應的等級。100-90A等級89-80B等 E級importjava.util.Scanner;classIfDemo{publicstaticvoidmain(String[]args)Scannersc=new//intscore=sc.nextInt();if(score<0||score>100)}elseif(score>=90&&score<=100}elseif(score>=80&&score<90}elseif(score>=70&&score<80}elseif(score>=60&&score<70}else}}}鍵盤錄入用戶名與,如果用戶名與分別是root,admin,那么提示登錄成功,importjava.util.Scanner;classDemo2{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);Stringuser=sc.next();System.out.println("請輸入:");Stringpassword=sc.next();if("root".equals(user)&&"admin".equals(password)){ }}}六、作業(3:shorts1ss1;有沒有問題?如果有怎么解決?shorts=1;s+=1;有沒有問題?如果有怎么解決?intx=1,y=if(x++==2&{x}intx=1,y=if(x++==2&&{x}intx=1,y=if(x++==1|{x}intx=1,y=if(x++==1||{x}booleanb=elseif(b)elseif(!b)13:編寫代碼實現如下內容:if語句實現 A B C D60以下E14:把今天講過的其他案例再練一、順序語句(if…else、switch) 執行語句}elseif(}if第二種格式與三元運算符的區別:三元運算符運算完要有值出現。好處是:可以寫在其他表達式中。條件表達式無論寫成什么樣子,只看最終的結構是否是true或者falseswitchswitch(表達式case1:1;case2;n+1;}switch:switch語句。JDK5以后可以是枚舉JDK7break:switch語句switch1,switch語句選擇的類型只有四種:byte,short,int,char2,case之間與defaultcase,沒有匹配的casedefault3,switch語句停止的條件是遇到了break關鍵字或者結束switch4,如果匹配的case或者default沒有對應的break,那么程序會繼續向下執行,運行可以執行的語句,直到遇到break或者switch結尾結束。5,switchcase中的值必須要與switch表達式的值具有相同的數據類型。而且switchbyte嗎?long嗎?String嗎?可以,不可以,JDK7以后可以執行流程注意事項B:default可以省略嗎caseC:break可以省略嗎會出現一個現象:case。E:switch語句的結束條件a:break就結束了Strings=sc.nextLine();ifswitchboolean類型的判斷for,while,do...while掌握for}如果這里是true如果這里是false,循環就結束e:ba:boolean類型a:輸出10 b:1-10c:10-1d:1-10e:1-100的和,1-100的偶數和,1-100f:5=萬位十位=個位+++=whilewhile(判斷條件語句}}while循環可以和forB:whileforwhileC:forwhilefor語句的那個控制條件變量,在循環結束后不能在使用了。while的可以繼續使用。forwhile適合次數不明確的D:do...whiledodo{a:do...whileb:for和while必須先判斷條件是否是true體循環使用的注意事項(死循環break、continue、return(掌握B:outer:for(intouter:for(intinter:inter:for(intj=0;j<5;j++){breakouter;}}for(intx=1;x<=10;x++){if(x%3==0){//}}2次:Java基礎班7次:Java基礎班13次:JavaB:return,程序就不會在繼續往后執行。一、函數jvm調用。voidreturnreturn關鍵二、數組publicpublicstaticvoidselectSort(int[]{for(intx=0;x<arr.length-1;{for(inty=x+1y<arr.lengthy++)//為什么yx+1?//都用x{{inttemp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}}}publicstaticvoidbubbleSort(int[]{for(intx=0;x<arr.length-1;{{{inttemp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}}publicstaticinthalfSeach(int[]arr,int{intmin,mid,max;min=0;max=arr.length-1;mid=(max+min)/2;{{min=mid+1;elseif(key<arr[mid])max=mid-1;return-mid=}return}publicstaticvoidreverseArray(int[]{for(intstart=0,end=arr.length-1;start<end;start++,end--{}}publicstaticvoidswap(int[]arr,inta,int{inttemp=arr[a];arr[a]=arr[b];arr[b]=temp;}遍歷:toString() 排序:sort() 一、面向對象A.B. A.成員變量:它屬于對象,它隨著對象的創建而創建,隨著對象的而局部變量:voidshow(intfor(intfor(int}}}這時候id,i,j者是在方法內的,全是局部變j當里層forfor結束,jifor循環執行它的生命周期開始,當外層for結束,jid在方法被調用時開始,方法結束時,id.位置成員變量屬于對象,它在堆內,堆內的實體,當沒有指向其時,才回收清理局部變量存在棧內存中,當不在使用時,馬上就會被釋byte、short、int、longbooleanString類類型數組四、構造函數:構造函數是在對象建立時由jvm調用,給對象初始化。一般函數是對象建立后,當 五、構造代碼塊給對象進行初始化。對象立就運行并且優先于構造函數1:構造代碼塊和構造函數的區別,構造代碼塊是給所有對象進行統一初始化,構造函數六、thisthis關鍵字this問題:存在著同名的成員變量與局部變量時,在方法內部默認是局部變量的數據,如this一個類存在著同名的成員變量與局部變量時,在方法內部默認是局部變量的數據,我們可以通過this關鍵字指定成員變量的數據。thisthisthis七、super關鍵字super關鍵字代表的是父類的空間supersuper關鍵字可以在子super、this關鍵字調用調用構造函數的時候,不能同時出現在同一個構造函數。(因八、staticthissuperstatic隨著類的加載而加載,靜態會隨著類的加載而加載,隨著類的而。說1:類變量生命周期最長,隨著類的而1:優點:對對象的共享數據進行單獨空間的,節省空間例如7(n份)非靜態成員變量是在每個對象中都一份數(1份)靜態成員變量只會在方法中一份數據非靜態成員變量是在堆內存中。 。static2:定義一個求數組和的功能函數1遍歷2classArraysprivateArrays()}1:publicstaticvoidprint(int[]arr)for(intx=0;x<arr.length;x++)if(x!=(arr.length-1))System.out.print(arr[x]+}else}}}2:publicstaticintgetSum(int[]arr)intsum=for(intx=0;x<arr.length;x++){sum+=arr[x];}return}3:publicstaticintgetMax(int[]arr)intmax=for(intx=0;x<arr.length;x++)if(arr[max]<arr[x]){max=x;}}return}4:publicstaticintgetIndexMax(int[]arr)intmax=for(intx=0;x<arr.length;x++)if(arr[max]<arr[x]){max=x;}}return}5:publicstaticintgetIndex(int[]arr,intsrc)intindex=-for(intx=0;x<arr.length;x++)if(arr[x]==src){index=x;}}return}publicstaticvoidtest(int[]arr)for(intx=0;x<arr.length-1;x++)if(arr[x]>arr[x+1]){inttemp=arr[x+1];arr[x+1]=arr[x];arr[x]=temp;}}}publicstaticvoidselectSort(int[]arr)for(intx=0;x<arr.length-1;x++)for(inty=1+x;y<arr.length;y++)if(arr[x]>arr[y]){inttemp=arr[y];arr[y]=arr[x];arr[x]=temp;}}}}//publicstaticvoidreverseSort(int[]arr)intstart=intend=arr.length-for(intx=0;x<arr.length;x++)if(start<end)inttem=arr[start];arr[start]=arr[end];arr[end]=tem;}}}publicstaticinthalfSearch(intkey,int[]arr)intmin=intmax=arr.length-intmid=while(min<max)mid=(min+max)/if(key>arr[mid]){min=mid+1;}elseif(key<arr[mid]){max=mid-1;}elsereturn}}return-}}classDemo6publicstaticvoidmain(String[]args)int[]arr={3,4,5,2,3,7,4}}九、mainpublicstaticvoidmain(String[]public保證該類在任何情況下,jvm都對其方法可見static被jvm調用,不用創建對象,直接類名。voidjvmjvm返回值。mainjvmStringargs可以在dos窗口中執行javaDemo5 oworld 給類Demo5的main方法傳遞2個參數,參數與參數之間通過空格隔開。可以在dos窗口中執行java 給類Demo5的main方法傳遞2個十、instanceofinstanceof關鍵字的使用格式:對象instanceof類名instanceof十一、final(最終finalfinalfinal關鍵字修飾一個類型變量時,其重新指向新的對象final修飾一個類的時候,該類不能被繼承。常量的修飾符:publicstaticfinal.十二、superthissuperthis語句為什么不能同時存在,super 一 (抽象 修飾 修飾final不能與static二、interfaceinterface接口名}classimplements接口}A.類實現接口可以通過implements實現,實現接必須把接口中的所有方法實現,publicstaticfinal的,即靜態常量既然是常量,那么定接口中的成員變量都是屬于常量,默認的修飾符publicstatic接口中的方法都是抽象的方法,默認的修飾符: java三、多態多態:父類類型變量指向了子類的對象或者是接口的類型變量指向了接口實現類的對象。(一個對象具備多種形態)總結:多態情況下,子父類存在同名的成員時,默認都會父類的成員.只有存在非靜成員變量:編譯看左邊,運行看左邊(型變量所屬的類。靜態成員函數:編譯看左邊,運行看左邊多態用于形式參數類型的時候,可以接收類型的參數classpublicintage=publicvoidteach()}}classextends{publicintage=20;publicvoidteach()}publicvoidyGame()}}//向上爹k爹=newSystem.out.println(k爹.age40k爹.teach();//講解論語//k爹.yGame();//這是兒子才能做//向下k=()k爹;System.out.println(k.age20k.teach();//講解論語k.yGame();四、作業一、內部類內部類的class文件名:外部類$內部類.class成員內部類的方式(普通的方法方式一:在外部類提供一個方法創建內部類的對象進行。格式:外部類.內部類變量名new外部類().new內部類,比如是一個類有心臟,心臟的功能在直接的其他內容。這時就將心臟定義在類中,作為內部類存在。,外部類內部類的屬publicpublicclassOuterintclassintpublicvoidprint(){}}publicvoidnew}publicstaticvoidmain(String[]args)new }}}成員內部類細privateprivateclass//intpublicvoidprint(){}}classclassstaticclassinter{staticintnum2=2;publicvoidprint(){}}}publicclassTestpublicstaticvoidmain(String[]args){Oeroi=newOer();}}2、如果內部類中包含有靜態成員,那么java規定內部類必須為靜態的靜態內部類的形式:Outer.Innerin=newOuter.Inner();特點:如果內部類中包含有靜態成員,那么java規定內部類必須為靜的Outer.Innerin=new內部類與外部類存在同名的成員時,在內部類中默認是內部類的成員,私有的成員內部類只能通過在外部類提供一個公共的方法進行。在其他二、局部內部類A.注意:局部內部類只能所在函數的f /*內部類定義局部位置上,只能該局部中被final修飾的常量classintpublicvoidmethod(finalintfinalintclassvoidshow(){}}new}}publicclassTestpublicstaticvoidmain(String[]args)new}}三、內部new父類或者接口(){執行代碼A.interfaceinterface}voidclass/*classpublicvoidshow(){}}publicvoidprint(){newInter().show();}publicvoidnewpublicvoidshow() }}}publicclassTestpublicstaticvoidmain(String[]args)new}}B.show1、show2方法。內部類的實現classclassclasspublicvoidshow2(){System.out.println("show1");}publicvoidshow1(){System.out.println("show2");}}publicvoidnewnew}}C.使用內部類實interfaceinterface}voidvoidclassInnerinner=newInner()publicvoidshow2(){System.out.println("show1");}publicvoidshow1(){System.out.println("show2");}publicvoidprint(){}}}publicclassTestpublicstaticvoidmain(String[]args)new}}1.使用內部類時,如果需要調用內部類的兩個方法或者兩個方法以上。可以使四、Throwablejava|——Throwable(java的錯誤和異常ThrowablepublicString)publicvoidpublicpublicclassTestpublicpublicstaticvoidmain(String[]args)Throwableable=newThrowable("異常信息");System.out.println(able.toString輸出該異常的類名System.out.println(able.getMessage(輸出異常的信息able.printStackTrace();//打印棧信息}}java.lang.Throwable異常信息publicvoidatpublicStringjava.lang.Throwable異常信息publicString包機制、修飾符、jar一、包機制在java中采用包機制處理開發者定義的類名問題。package包名。javacPackDemo1.javajavaPackDemo1在當 下找不到有pack目錄,更加找不到 下面自己在當 Javapagk.PackageDemo1命令。(包其實就是文件夾). 防止類文件包機制的問題解決:import語句。import包名.;使用*classimport語句可以是多條二、修飾protectedprivate他類包中的子類也可以三、JarjarjavaactiveFile,zipjarclassjar命令.1:jar工具存放于jdk的bin 2:jar工具:主要用于對class文件進行打包(壓縮)3:dos中輸入jar查看幫助day10cntest.jar文件(cnjavacd編譯class文件夾)jarcvftest.jar詳細命令1:jarcftest.jarcn在當 2:jarcvftest.jarcn3:jartftest.jar顯示jar文件中包含的所 4:jartvftest.jar顯示jar文件中包含的所有 5:jarxftest.jar解壓test.jar到當前 6:jarxvftest.jar解壓test.jar到當前 ,顯示詳細信息7:可以使用WinRaR進行jar解壓8test2.jarjarcvftest2.jarDemo3.classDemo4.class2jdkrt.jarjartvfrt.jar3:jartvfrt.jar>d:\rt.txt---------| ---------------|Error 錯誤,錯誤一般都是由于jvm或者是硬件的問題。一般都不會通過---------------|Exceptiontry-catch}catch(){}trytry-catch塊外面的代碼可try塊中出現了異常的代碼,那么在一個try塊中出現異常代碼后面的2.(throw如果一個方法的內部拋出了一個編譯時異常對象,那么必須要在方法拋出如果調用了一個拋出編譯時異常類型的方法,那么調用者必須要進行處理,否一個方法如果遇到了throw關鍵字,那么該方馬上停止執行throw與throwsthrow關鍵字一次只能拋出一個異常對象,throws一次可以拋出多種異常類型-----|Throwable----------|Error錯誤錯誤一般都是由于jvm或者是硬件的問題。一般不通過代碼處----------|Exception---------------|運行時異常(RunTimeException以及RuntimeException子類) 方法內部拋出了一個運行時異常對象,那么方法可以拋出也可以不拋出---------------|編譯時異常(非運行時異常,受檢異常) finallyfinallytry塊使用,System.exit(0);//0jvm0jvmObject、一、ObjecttoString方法(略publicpublicStringint{publicbooleanequals(Objectobj){if(objinstanceof )obj;}returntrue;}return}publicinthashCode()return}}二、StringStringString(byte[]bytes)使用一個byte數組構建一個字符串.byte數組的是字符對應的String(byte[]bytes,intoffset,intlength) byte字節數組構建一個字符串對象,[] String(char[]value,intoffset,intcount) 使用一個char字符數組構建一個字符串對象,int charcharAt(intindex)(角標越界)intindexOf(Stringstr)獲取特定字符的位置(overload)intlastIndexOf(intch)booleanendsWith(Stringstr)booleancontains(CharSequences)booleanequals(ObjectanObject)booleanequalsIgnoreCase(StringanotherString)char Stringrece(charoldChar,charnewChar)替Stringsplit(Stringregex)Stringsubstring(intStringsubstring(intbeginIndexintendIndex)截取字串StringtoUpperCase()轉大寫StringtoLowerCase()Stringtrim()去除空格1:自己實現一個trim練習2:獲取上傳文件名"D:\\ 練習3:將字符串對象中的字符反序。三、StringBuffer增 刪delete(intstart,intend)deleteCharAt(intindex)查toString()indexOf(Stringstr)改rece(intstartintendString 使用給定String中的字符替換此序列的子字符串startend1setCharAt(intindexchar reverse()一、StringBuffer字符串緩沖類:字符的一個集合容器。StringBuffer?StringBuilderStringBufferStringBuilder相同點:都是字符串緩沖類,底層都是了一個字符數組用于數據的。StringBufferStringBuilder是線程非安全的,操作StringBufferjdk1.0StringBuilderjdk1.5的時候出現。推薦使用:StringBuilder二、Systemarraycopy(ObjectsrcintsrcPosObjectdestintdestPosint src-srcPos-dest-destPos-length-要的數組元素的數量 exit(int jvm,0表示正常退出jvm0 建議jvm盡快的啟動回收器回收 StringjavaHome=PropertiespSystem.getProperties獲取所有的系統屬性//StringosName=Runtime三、date類(淘汰Datedate=newDate();Calendarcalendar=Calendar.getInstance(); SimpleDateFormatdateFormat=newSimpleDateFormat("yy年MM月ddStringtext=dateFormat.format(newDate());Stringtext2="1111年11月11日 Datedate=dateFormat.parse(text2);Mathabs(double ceil(doublea) 向上取整。floor(doublea)向下取整round(doublea)四舍五入Randomrandom=new"+;//1、實現一個四位的chararra','A','中','雨','共StringBuildersb=newStringBuilder();Randomrandom=newRandom();for(inti=0;i<4;i++){intindex=random.nextInt(arr.length);}12-15一、只能同一種類型的元素。除了Object類型的數組以外數組中元素與元間的內存地址是連續的。集合:集合任意對象數據的容器。----------| ----------------|List List----------------|Set SetColllection增加add(E 刪除兩個集合集元 containsAll(Collection<?>c) 如果此collection包含指定collection中的所有元素,則返回true 如果Collection不包含任何的元素,則返回true,否則返回false. 需求:實現于登陸功能。登陸:提示用戶輸入用戶名與,如果用戶名與一致匹配上集合中的某個元素,那么登陸成功。(強制要求使用迭代器去實現)importjava.util.ArrayList;importjava.util.Collection;importjava.util.I importclassEmployeeprivateStringprivateStringpublicEmployee(StringuserName,Stringpassword)this.userName=this.password=}publicEmployee()//TODOAuto-generatedconstructor}publicStringgetUserName()return}publicvoidsetUserName(StringuserName)this.userName=}publicStringgetPassword()return}publicvoidsetPassword(Stringpassword)this.password=}publicStringtoString()return"Employee[userName="+userName+",password="++}}publicclassTest2staticScannerscanner=newstaticCollectionEmployees=newpublicstaticvoidmain(String[]args)while(true)System.out.println("請選擇功能:A() Stringoption=scanner.nextLine();}elseif("b".equalsIgnoreCase(option))}else}}}publicstaticvoidreg(){StringuserNamescanner.nextLine();Stringpassword=scanner.nextLine();Employeee=newEmployee(userName,System.out.println("集合的元素}publicstaticvoidlogin(){StringuserName=scanner.nextLine();Stringpassword=scanner.nextLine(); torit=Employees.itor();booleanflag=false;while(it.hasNext())Employeeuser=(Employee)}}}}}---------|Collection-------------| List-------------| Set有序:在集合中所謂的“有序”不是指自然順序,而是指添加進去的順序與的順序一二、Listadd(intindexE addAll(intindex,Collectionremove(int ,set(intindexE get(int indexOf(Object 查找指定元素第一次出現的索引值,回-1表示lastIndexOf(Objecto) 則返回-1表示.subList(intfromIndexint tor add(E set(E publicclassTestpublicstaticvoidmain(String[]args){ArrayListlist=newArrayList();Object[]for(inti=0;i<arr.length;i++){}for(int} torit=list.listI }}}}---------|Collection List------------------|ArrayList ArrayList的底層是了一個Object數組去實現的,特點:查如果操作的數據時查詢比較多,增刪比較少,這時候則應該使用ArrayList. 比如:圖| |Vector了解 SetArrayList0.5倍。classintStringdoublepublicBook(intid,Stringname,doubleprice)this.id=id;=name;this.price=price;}publicStringtoString()return"{書號:this.id+"書名:}publicbooleanequals(Objectobj){Bookbook=(Book)obj;returnthis.id==book.id;}publicinthashCode()return}}publicclassDemo9publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add(newBook(110,"java編程思想",86));list.add(newBook(112,"java技術",64));list.add(newBook(110,"java神書",86));list.add(newBook(119,"深入javaWeb",32));ArrayListnewList=clearRepeat(list);System.out.println("新集合的元素是:newList);}publicstaticArrayListclearRepeat(ArrayListArrayListnewListnewArrayList(); torit= Bookbook=(Book) //,
}}return}}---------|Collection List------------------|ArrayList ArrayList的底層是了一個Object數組去實現的,特點:查------------------|LinkedList |Vector了解 Set三、LinkedList addLast(E removeLast()1堆棧數據結構特點: A.機試題目使用LinkedList模擬堆棧與隊列的數據結堆棧數據結構特點:先進后出,后進先出。隊列的特點:先進先出,后進后出。//LinkedListpubliclist=new}publicvoidadd(Objecto){}publicObjectreturn}publicintreturn}} 模擬了隊列的數據結構方classLinkedListlist list=new}publicvoidadd(Objecto){}publicObjectreturn}publicintreturn}}publicclassDemo11publicstaticvoidmain(StringargsTeamListlist=newTeamList();intsize=for(inti=0;i<size ;i++){}}}四、---------|Collection List------------------|ArrayList ArrayList的底層是了一個Object數組去實現的,特點:查------------------|LinkedList ------------------|Vector(了解 Vector的底層也是使用一個Object數組去實現的,但 Set五、作業練習 classStringintpublic(Stringname,intage)=this.age=}publicStringtoString()return"[name="+name+",age="+age+}}publicclassTestpublicstaticvoidmain(String[]args){LinkedListlist=newLinkedList();list.add(new("",19)); (" (" }publicstaticvoidsort(LinkedListfor(intp1=()list.get(i);p2=()list.get(j);list.set(i,list.set(j,}}}}}練習2:定義一個LinkedList一副牌,再定義一個方法可以洗牌的classStringcolor;StringpublicPoker(Stringcolor,Stringnum)this.color=color;this.num=num;}publicStringtoString()return}}classpublicstaticvoidmain(String[]args){LinkedListlist=createPoker();}publicstaticvoidshufflePoker(LinkedListlist){Randomrandom=newRandom();for(intintindex=random.nextInt(list.size());intindex2=random.nextInt(list.size());Pokerp1=(Poker)list.get(index);Pokerp2=(Poker)list.get(index2);list.set(index,p2);}}publicstaticLinkedListcreatePoker(){LinkedListlist=newLinkedList();String[][]for(intfor(intlist.add(new}}return}publicstaticvoidshow(LinkedListfor(int}}}}classUserStringuserName;Stringpassword;publicUser(StringuserName,Stringpassword)this.userName=this.password=}publicStringtoString()return"User[userName="+userName+",password="+password+}publicbooleanequals(Objectobj)//TODOAuto-generatedmethodstubUseruser=(User)obj;}publicinthashCode()//TODOAuto-generatedmethodreturnthis.userName.hashCode()+}}publicclassTest2publicstaticvoidmain(String[]args){HashSetusers=newHashSet();Scannerscanner=newwhile(true)StringuserNamescanner.next();Stringpassword=scanner.next();if(users.add(newUser(userName,password}else}}}}一、map如果需要成對存在的數據,那么就要使用雙列集合----Map集合-----------|Map 實現了Map接口的集合類具備的特點:的數據都是以鍵值對的形式存在的,鍵(key)不能重復,值(value)可以重復 | | Map接口的方法增put(KkeyV map集合,keykeynullputAll(Map<?extendsK,?extendsV>刪containsKey(Objectkey)get(Objectkey)一、(map集合)----------|Map雙列集合的根接口:如果是實現了Map接口的集合類具備的特點:的 底層也是依賴于哈希碼去實現的,的位置是根據鍵的哈希碼算 底層也是使用了樹數據結構去實現的,特點:是會根據鍵數據進行排序-----------|HashTable(了解): 底層也使用哈希表實現的,實現原理與HashMap一致,HashMap的原理往HashMap元素的時候,首先hashMap會調用鍵的hashCode方法得到一個哈希情況一:如果根據鍵的哈希碼值算出的位置目前沒有任何元素,那么該元素可以情況二:如果根據鍵的哈希碼值算出的位置目前已經有其他元素了那么還會調equalstrue,那么該元素被視為重復元素,不允許添加,equals方法返回的是false,該元素TreeMap添加元素的時候,如果鍵不具備自然順序的特性,那么鍵所屬的類就必Comparable接口。TreeMap添加元素的時候,如果鍵不具備自然順序的特性,而且鍵所屬的類就沒Comparable接口,那么必須要在創建treeMap對象的時候傳入一個比較器對象-----------| ---------------| List------------------|ArrayList底層是了一個Object數組實現的。特點:查詢速度快,增刪 ------------------|Vector 底層也是了一個Object數組實現的,實現的原理與ArrayList是一致的,但是是線程安全的,操作效率低。---------------| Set 底層是使用了一個哈希表的。特點:存取速度快------------------| 底層是使用了樹數據結構實現的,特點:會對到中的元素進行排序.然順序的特性進行排序。Comparable接口。TreeSet添加元素時,如果元素不具備自然順序的特性,而且元素所屬的類沒有Comparable接口,那么就必須要在創建TreeSet對象的時候傳入比較器對象。class類名implements}三、CollectionsCollectionCollectionsCOllectionCollections1list 2listintint 4listSetsynchronizedSet(Set<T>s)ListsynchronizedList(List<T>list)forforfor循環的格式: 變量 :遍歷的目標}使用增強for循環的前提:只有實現了I ble接口的對象或者是數組對象才能使用。增強for循環要注意的細節:for們手動獲取迭代器而已,所以在使用增強for循環的遍歷元素的過程中使用集合forfor循環只能用于遍歷集合的元素,不能增刪元素。而迭代器的遍歷方式可以使用迭代器的方法增刪元素。forfor循環TreeMap<Integer,String> tree=newTreeMap<Integer,String>();tree.put(110,"");tree.put(109,"tree.put(120,"tree.put(115,"http://使用增強for循環遍歷map集合、。Set<Entry<Integer,String>>entryes=tree.entrySet();for(Entry<Integer,String>entry: System.out.println("鍵:"+entry.getKey()+"值:}二、可變參數。數據類型 javajava對于基本類型的數據也使用了對應的類進行了描述,我們把描述基本類型變量的類稱 基本數據類型設計出對應的包裝類型的好處:可以讓基本數據類型也使用上方法,讓功
獲取而不會創建新的Integer對象。 ---------->把一些常用的數據事先創建好,然后貢獻給大家一起使用:享元模式。Integeri1=127;Integeri2=System.out.println("是同一個對象嗎 四、枚舉.解決方案:自定義類,限制著別人隨意創建對象。jdk1.5sun/*classpublicstaticfinalGenderman=newGender("男");publicstaticfinalGenderwomannewGender("女");Stringvalue;privateGender(Stringvalue){this.value=value;}}enumStringprivateGender(Stringthis.value=}}classStringprivate publicGenderget() }publicvoid (Gender) }publicStringtoString()return":"++":"+ }}ctrlshift ctrlshift publicclassDemo6publicstaticvoidmain(String[]args)p=new();="狗娃"; }}五、正則表達式.任何字符(與行結束符可能匹配也可能不匹配\d數字:[0-\D[^0-\s空白字符:\S\w單詞字符:[a-zA-Z_0- a-zA-Z0-9\WSystem.out.println(".System.out.println("\\D代表了非數字:"+("@".matches("\\D")));System.out.println("\\s代表了空白字符:"+("\n".matches("\\s")));X?X,一次或一次也沒有X*X,零次或多次X+X,一次或多次X{n}X,恰好n次X{n,XnX{n,mXnm:"+("System.out.println("*零次或多次System.out.println("+至少一次System.out.println("{n}n次System.out.println("{n,}n次System.out.println("{n,m}至少出現n~m次:"+ [abca、bc(簡單類[^abc]a、bc(否定[a-zA-ZazAZ,兩頭的字母包括在內(范圍一、IOIO流技術:解決設備與設備之間的數據傳輸問題。 比如:內存-----硬盤 內存, 鍵盤----->內存IO導出報表,上傳大頭照、音頻文件、切水果 FileFile(Stringpathname)指定文件或者文件夾的路徑,創建一個File對象File(Fileparent,Stringchild)指定父路徑與子路徑構建一個File對象。File(Stringparent,String File 分隔符:System.out.println("存在嗎:"+file.exists());File false renameTo(Filedest) true操作文件:如果源文件與目標文件在同一級路徑下,那么renameTo方法的作用是重命名, 下,那么renameTo的作用就是剪切。命名,如果源文件夾與目標文件夾不在同一級下,renameTo不起作用(不能用于剪delete()true,失敗返回false。deleteOnExit()在虛擬機終止時,請求刪除此抽象路徑名表示的文件或 是否是一 getAbsolutePath() 0L。 ()staicFile[] 作會返回null。 對(File類實例包含隱藏文件。對于文件這樣操作會返回null。A.classJavaFileFilterimplementsFilenameFilter{publicbooleanaccept(Filedir,Stringname){returnname.endsWith(".java");}}publicclassDemo8publicstaticvoidmain(String[]args)FiledirnewFile("F:\\0416\\day02\\代碼\\day02");}publicstaticvoidlistJava2(FileFile[]files=dir.listFiles(newJavaFileFilter());for(Filefile:files){}}}疑問:windowswidnows真的在同時運行多個應用程序嗎?宏觀角度,windows確實在同時運行多個應用程序。cpu在做一個快速的切換動作,由于切換的速度比較快,所以我們沒有感進程:正在運行的程序稱作為一個進程。進程負責了內存空間的劃分。線程:線程負責了代碼的執行,線程是進程中的一個代碼執行路徑。多線程:在一個進程中有多個線程在執行不同的任務代碼。java程序在運行的時候,jvmmain方法的代碼執行完畢。筆試題目:一個java2個線程,主線線程,回收器線程cpuThreadrunrunrunmainmain方法里面的所run方法中的所有代碼。調用線程的start方法開啟線程,一個線程一旦開啟就會執行runrunrun方法相當于調用了一個普通的方法而一、批處理文件常見批處理文件令echotiltleechooff表示在此語句后所有運行令都不顯示命令行本color@與echooff相象但它是加在每個命令行的最前面表示運行時不顯示這一行令(只pause運行此句會暫停批處理的執行并在屏幕上顯示Pressanykeytocontinue...的提示,等rem表示此命令后的字符為解釋行(注釋(相當于程序中的注釋)或者%注釋的內容%%[1-9]表示參數,參數是指在運行批處理文件時在文件名后加的以空格(Tab)分隔的@ECHO REMsetjava java-classpath.\libarary.jarcn. 二、設計模式單列設計模式懶漢模式–通常被稱為延遲加載。注意存程安全問題classclassSingleprivatestaticSinglesnewSingle()privateSingle()}publicstaticSinglegetInstance()return}}classclassprivatestaticSingleprivate}publicstaticSinglesynchronized(single){single=new}}}return}}publicpublicclassDemo1publicstaticvoidmain(StringargsCarbmw=CarFactory("BMW");CarbenzCarFactory("Benz");}publicstaticCarCarFactory(StringcarName)if("BMW".equals(carName))returnnew}elseif("Benz".equals(carName))returnnew}elsethrownewRuntimeException("車型有誤}}}classCarvoid}classBMWextendsCar{publicvoidrun(){}}classBenzextendsCarpublicvoidrun(){}}importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importimportclassprivateintprivateStringpublicStudent(intid,Stringthis.id==}public}publicintgetId()return}publicvoidsetId(intid)this.id=}publicStringgetName()return}publicvoidsetName(Stringname)=}publicStringtoString()returnthis.id+"-}} privateint }publicStringtoString()return}}publicclassDemo1publicstaticvoidmain(String[]args)throwsException{Objecto=getInstance();}publicstaticObjectgetInstance()throwsException{FileReaderfileReader=newFileReader("src/info.txt");BufferedReaderbufferedReader=newBufferedReader(fileReader);Stringline=bufferedReader.readLine();Classclazz=Class.forName(line);Constructorc=clazz.getConstructor(null);Objectc1=c.newInstance(null);String[]datas=Fieldf=clazz.getDeclaredField(datas[0]);f.set(c1,}}return}}有多個觀察者時,不可以依賴特定次序SwingGUI框架也是如此。publicpublicclassWeatherStationprivateStringString[weathers下雨","下雪","下冰雹","staticList<BookWeather>list=newRandomrandom=newpublicvoidnewThread(){publicvoidrun()try{}catch(InterruptedExceptione){}}}}publicvoidweatherweathers[random.nextInt(4)];System.out.println("天氣:"+weather);}publicStringgetWeather()return}publicpublicimplementsBookWeatherString (S=}privateWeatherStationstation(Stringname,WeatherStationthis.station=}//下雨","","下冰雹","publicvoidnotifyWeather()Stringweather=}elseif("下雪".equals(weather)){System.out.println(name+"");}elseif("下冰雹帶著頭盔上班"}elseif
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年全球及中國外延片檢測系統行業頭部企業市場占有率及排名調研報告
- 2025-2030年中國四耳接線盒項目投資可行性研究分析報告
- 2024年全球及中國商業養老服務中心行業頭部企業市場占有率及排名調研報告
- 洪洞格賓石籠施工方案
- 2025年海上風電場工程項目可行性研究報告
- 進度分析報告示例
- 證券知識培訓課件
- 中國制傘市場深度調查及發展前景研究預測報告
- 2025年中國彈性水泥防水涂料行業市場發展前景及發展趨勢與投資戰略研究報告
- 股權轉讓合同
- 小學語文擴句、縮句專題
- PDCA降低I類切口感染發生率
- 人類能源史課件
- 農村公路安全生命防護工程施工方案
- 科技社團活動記錄2017年秋
- (部編版)統編版小學語文教材目錄(一至六年級上冊下冊齊全)
- 抗滑樁專項的施工組織方案[專家評審]
- 常用彈簧鋼號對照表
- 小學二年級下冊勞動教案
- 食品安全及衛生保證措施
- 60m3臥式液化石油氣儲罐設計
評論
0/150
提交評論