![配套課件-Java-JDK-6學(xué)習(xí)筆記_第1頁](http://file4.renrendoc.com/view15/M02/0E/3A/wKhkGWebraKAGaO2AABbwLkAt-A162.jpg)
![配套課件-Java-JDK-6學(xué)習(xí)筆記_第2頁](http://file4.renrendoc.com/view15/M02/0E/3A/wKhkGWebraKAGaO2AABbwLkAt-A1622.jpg)
![配套課件-Java-JDK-6學(xué)習(xí)筆記_第3頁](http://file4.renrendoc.com/view15/M02/0E/3A/wKhkGWebraKAGaO2AABbwLkAt-A1623.jpg)
![配套課件-Java-JDK-6學(xué)習(xí)筆記_第4頁](http://file4.renrendoc.com/view15/M02/0E/3A/wKhkGWebraKAGaO2AABbwLkAt-A1624.jpg)
![配套課件-Java-JDK-6學(xué)習(xí)筆記_第5頁](http://file4.renrendoc.com/view15/M02/0E/3A/wKhkGWebraKAGaO2AABbwLkAt-A1625.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章了解Java什么是JavaJava的特性如何學(xué)習(xí)Java什么是Java最早是Sun公司GreenProject中撰寫Star7應(yīng)用程序的一個(gè)程序語言JamesGosling的窗外有顆橡樹(Oak)全球信息網(wǎng)興起,JavaApplet成為網(wǎng)頁互動(dòng)技術(shù)的代表1995/5/23,JavaDevelopmentKits(當(dāng)時(shí)的JDK全名)1.0a2版本正式對外發(fā)表什么是JavaJava是面向?qū)ο螅∣bject-Oriented)程序語言,具有更高的跨平臺可能性在今日,更多時(shí)候代表了軟件開發(fā)的架構(gòu)開發(fā)者版本發(fā)表時(shí)是以JavaDevelopmentKits名稱發(fā)表,簡稱JDKJ2SE5.0(Java2PlatformStandardEdition5.0)時(shí)的JDK稱為J2SEDevelopmentKit5.0
什么是JavaJ2SE5.0(Java2PlatformStandardEdition5.0)時(shí)的JDK稱為J2SEDevelopmentKit5.0
從JavaSE6(JavaPlatform,StandardEdition6)開始的JDK6則稱之為JavaSEDevelopmentKit6不再帶有“2”這個(gè)號碼,版本號6或1.6.0都使用6是產(chǎn)品版本(productversion),而1.6.0是開發(fā)者版本(developerversion)Java的特性語言特性簡單(Simple)面向?qū)ο螅∣bject-oriented)網(wǎng)絡(luò)(Network-savvy)解譯(Interpreted)堅(jiān)固(Robust)安全(Secure)可攜(Portable)高效能(High-performance)Java的特性應(yīng)用平臺JavaSEJavaPlatform,StandardEditionJavaEEJavaPlatform,EnterpriseEditionJavaMEJavaPlatform,MicroEditionJavaPlatform,StandardEdition(JavaSE)Java各應(yīng)用平臺的基礎(chǔ)JavaPlatform,StandardEdition(JavaSE)JVMJava虛擬機(jī)(JavaVirtualMachine,JVM)JREJava執(zhí)行環(huán)境(JavaSERuntimeEnvironment,JRE)JDKJava語言JavaPlatform,EnterpriseEdition(JavaEE)以JavaSE的基礎(chǔ),定義了一系列的服務(wù)、API、協(xié)定等適用于開發(fā)分布式、多層式(Multi-tiered)、以組件為基礎(chǔ)、以Web為基礎(chǔ)的應(yīng)用程序技術(shù)像是JSP、Servlet、EnterpriseJavaBeans(EJB)、JavaRemoteMethodInvocation(RMI)等JavaPlatform,MicroEdition
(JavaME)作為小型數(shù)字設(shè)備上開發(fā)及部署應(yīng)用程序的平臺,像是消費(fèi)性電子產(chǎn)品或嵌入式系統(tǒng)等最為人所熟悉的設(shè)備如手機(jī)、PDA、股票機(jī)等活躍的社群與豐富的資源開發(fā)工具開放原始碼的組件容器測試工具各式各樣的軟件專案各個(gè)社群所支持的討論區(qū)取之不盡的文件如何學(xué)習(xí)Java奠定Java語法基礎(chǔ)運(yùn)用基本的JavaSEAPI字符串處理、例外處理、對象容器(Container)、輸入輸出(I/O)、線程(Thread)/javase/6/docs/api/index.html如何學(xué)習(xí)Java使用搜索引擎/加入社群參與討論.tw/學(xué)習(xí)地圖/developer/onlineTraining/new2java/javamap/intro.html第2章入門準(zhǔn)備
下載、安裝、瞭解JDK設(shè)定Path與Classpath第一個(gè)Java程序選擇開發(fā)工具下載JDKJDK6發(fā)表日期為2006年12月11日較新的修正版本將以Update名稱,加上號碼來表示修正的版本號/javase/downloads/index.jsp安裝JDK包括公用JRE一定要記得安裝JDK一定要記得了解JDK公用JRE是給開發(fā)好的程序之執(zhí)行平臺JDK本身也有自己的JRE位于JDK安裝目錄的「jre」目錄下JDK本身所附的JRE比公用JRE多了個(gè)server的VM(VirtualMachine)執(zhí)行選項(xiàng)了解JDKJDK的JRE有server選項(xiàng)了解JDKJDK的安裝目錄「bin」目錄JDK的工具程序「demo」目錄范例程序「jre」目錄JDK自己附帶的JRE「db」目錄ApacheDerby數(shù)據(jù)庫,純Java所撰寫的數(shù)據(jù)庫了解JDKJDK的安裝目錄「lib」目錄工具程序?qū)嶋H上會(huì)使用的Java工具類別JDK中的工具程序,大多也是由Java所撰寫而成bin文件夾下的工具程序,不過是個(gè)包裝器(Wrapper)執(zhí)行javac.exe等程序時(shí),最后會(huì)呼叫l(wèi)ib目錄中tools.jar中的對應(yīng)類別了解JDKJDK的安裝目錄src.zipJava提供的API類別之原始碼文件壓縮檔設(shè)定Path找不到j(luò)avac工具程序必須告訴操作系統(tǒng),應(yīng)該到哪些目錄下嘗試找到您所想使用的工具程序設(shè)定系統(tǒng)變量中的
Path環(huán)境變量設(shè)定Path必須告訴操作系統(tǒng),應(yīng)該到哪些目錄下嘗試找到您所想使用的工具程序直接設(shè)定目前的環(huán)境變量包括Path變數(shù)Windows下安裝JRE時(shí),會(huì)將java.exe復(fù)制至「C:\Windows\System32\」路徑之下,而這個(gè)路徑在Path變量中是默認(rèn)的路徑setPath=C:\ProgramFiles\Java\jdk1.6.0\bin;%Path%設(shè)定ClasspathJava執(zhí)行環(huán)境本身就是個(gè)平臺,執(zhí)行于這個(gè)平臺上的程序是已編譯完成的Java程序設(shè)定Path變量是為了讓操作系統(tǒng)找到指定的工具程序(例如Windowsexe)設(shè)定Classpath目的就是為了讓Java執(zhí)行環(huán)境找到指定的Java程序(JVMclass)設(shè)定ClasspathJDK6默認(rèn)會(huì)到現(xiàn)行工作目錄,以及JDK的「lib」目錄中尋找Java程序javac-classpathclasspath1;classpath2…對于Windows操作系統(tǒng)來說,Path是讓操作系統(tǒng)可以找到“.exe”執(zhí)行檔的存在對于Java執(zhí)行環(huán)境來說,ClassPath就是讓JVM可以找到".class"執(zhí)行檔的存在第一個(gè)Java程序第一個(gè)Java程序新增一個(gè)「文字文件」重新命名文件為「HelloJava.java」第一個(gè)Java程序Java的源文件必須以擴(kuò)展名.java作結(jié)束主檔名與類別名稱必須一致注意每個(gè)字母的大小寫空白只能是半型空格符或是Tab字符第一個(gè)Java程序javacHelloJava.javaerror:cannotread:HelloJava.javajavac工具程序找不到您指定的.java檔案HelloJava.java:1:classHelloJavaispublic,shouldbedeclaredinafilenamedHellJava.java類別名稱與主檔名不符第一個(gè)Java程序HelloJava.java:3:cannotfindsymbol程序代碼中某些部份打錯(cuò)了,最常發(fā)生的原因可能是沒有注意到字母大小寫‘javac’不是內(nèi)部或外部命令、可執(zhí)行的程序或批處理文件
Path設(shè)定有誤或沒有在Path中加入JDK的「bin」目錄第一個(gè)Java程序javaHelloJavaExceptioninthread"main"java.lang.NoClassDefFoundErrorjava工具程序找不到您所指定的類別Exceptioninthread"main"java.lan.NosuchMethodError:main沒有指定Java程序的進(jìn)入點(diǎn)(Entrypoint),java工具程序指定的類別必須要有一個(gè)程序進(jìn)入點(diǎn),也就是必須包括main(String[]args)這個(gè)方法(method)選擇開發(fā)工具從簡單的文字編輯輔助工具開始UltraEdit(/)Editplus(/)簡單的開發(fā)環(huán)境JCreater(/)BlueJ(/index.html)功能更齊全的IDEEclipse(/)NetBeans(/)第3章語法入門
第一個(gè)Java程序文本模式下與程序互動(dòng)數(shù)據(jù)、運(yùn)算流程控制第一個(gè)Java程序定義類別(Class)
定義區(qū)塊(Block)定義main()方法(Method)
撰寫陳述(Statement)publicclassHelloJava
{
publicstaticvoidmain(String[]args)
{
System.out.println("嗨!我的第一個(gè)Java程序!");}}給C使用者的第一個(gè)Java程序給了C使用者類似printf()的功能publicclassHelloJavaForC{publicstaticvoidmain(String[]args){
System.out.printf("%s!這是您的第一個(gè)Java程序!\n","C語言Fan");}}System.out.printf("%s!這是您的第二個(gè)Java程序!","C語言Fan").println();System.out.printf("%s!這是您的第%d
個(gè)Java程序!\n","C語言Fan",3);為程序加入批注原始碼檔案中被標(biāo)注為批注的文字,編譯程序不會(huì)去處理它/*作者:良葛格*功能:示范printf()方法*日期:2005/4/30*/publicclassThirdJavaForC{publicstaticvoidmain(String[]args){
//printf()是J2SE5.0的新功能,必須安裝JDK5.0才能編譯
System.out.printf("%s!這是您的第%d個(gè)Java程序!\n","C語言Fan",3);}}
為程序加入批注不能用巢狀方式來撰寫多行批注多行批注可以包括單行批注/*批注文字1……bla…bla/*
批注文字2……bla…bla*/*//*批注文字1……bla…bla//批注文字2……bla…bla*/
使用Scanner取得輸入在J2SE5.0中,可以使用java.util.Scanner類別取得使用者的輸入可以使用這個(gè)工具的next()功能,來取得用戶的輸入字符串Scannerscanner=newScanner(System.in);System.out.print("請輸入您的名字:");System.out.printf("哈啰!%s!\n",scanner.next());System.out.print("請輸入一個(gè)數(shù)字:");System.out.printf("您輸入了%d!\n",scanner.nextInt());使用BufferedReader取得輸入BufferedReader建構(gòu)時(shí)接受java.io.Reader物件可使用java.io.InputStreamReaderBufferedReaderbufferedReader=newBufferedReader(
newInputStreamReader(System.in));
System.out.print("請輸入一列文字,可包括空白:");Stringtext=bufferedReader.readLine();System.out.println("您輸入的文字:"+text);標(biāo)準(zhǔn)輸入輸出串流System類別中的靜態(tài)物件out提供標(biāo)準(zhǔn)輸出串流(Stream)輸出通常對應(yīng)至顯示輸出(終端機(jī)輸出)可以將輸出重新導(dǎo)向至一個(gè)檔案javaHelloJava>HelloJavaResult.txtSystem標(biāo)準(zhǔn)輸入串流in在程序開始之后它會(huì)自動(dòng)開啟,對應(yīng)至鍵盤或其它的輸入來源標(biāo)準(zhǔn)輸入輸出串流標(biāo)準(zhǔn)錯(cuò)誤輸出串流err在程序執(zhí)行后自動(dòng)開啟,將指定的字符串輸出至顯示設(shè)備或其它指定的裝置err會(huì)立即顯示錯(cuò)誤訊息err輸出串流的訊息不會(huì)被重新導(dǎo)向System.out.println("使用out輸出訊息");System.err.println("使用err輸出訊息");javaErrDemo>ErrDemoResult.txt使用err輸出訊息輸出格式控制控制字符作用\\反斜杠\'單引號'\"雙引號"\uxxxx以16進(jìn)位數(shù)指定Unicode字符輸出\xxx以8進(jìn)位數(shù)指定Unicode字符輸出\b倒退一個(gè)字符\f換頁\n換行\(zhòng)r游標(biāo)移至行首\t跳格(一個(gè)Tab鍵)System.out.println("\u0048\u0065\u006C\u006C\u006F");輸出格式控制若是使用J2SE5.0或更高的版本//輸出19的十進(jìn)制表示
System.out.printf("%d%n",19);//輸出19的八進(jìn)制表示
System.out.printf("%o%n",19);//輸出19的十六進(jìn)制表示
System.out.printf("%x%n",19);格式字符作用%%在字符串中顯示%%d以10進(jìn)位整數(shù)方式輸出,提供的數(shù)必須是Byte、Short、
Integer、Long、或BigInteger%f將浮點(diǎn)數(shù)以10進(jìn)位方式輸出,提供的數(shù)必須是Float、Double或
BigDecimal%e,%E將浮點(diǎn)數(shù)以10進(jìn)位方式輸出,并使用科學(xué)記號,提供的數(shù)必須是Float、
Double或BigDecimal%a,%A使用科學(xué)記號輸出浮點(diǎn)數(shù),以16進(jìn)位輸出整數(shù)部份,以10進(jìn)位輸出指數(shù)部份,提供的數(shù)必須是Float、Double、BigDecimal%o以8進(jìn)位整數(shù)方式輸出,提供的數(shù)必須是Byte、Short、
Integer、Long、或BigInteger%x,%X將浮點(diǎn)數(shù)以16進(jìn)位方式輸出,提供的數(shù)必須是Byte、Short、
Integer、Long、或BigInteger%s,%S將字符串格式化輸出
%c,%C以字符方式輸出,提供的數(shù)必須是Byte、Short、Character或
Integer%b,%B將"true"或"false"輸出(或"TRUE"、"FALSE",使用
%B)。另外,非null值輸出是"true",null值輸出是"false"%t,%T輸出日期/時(shí)間的前置,詳請看在線API文件
輸出格式控制可以在輸出浮點(diǎn)數(shù)時(shí)指定精度System.out.printf("example:%.2f%n",19.234);example:19.23可以指定輸出時(shí),至少要預(yù)留的字符寬度System.out.printf("example:%6.2f%n",19.234);example:19.23補(bǔ)上一個(gè)空白在前端基本的數(shù)據(jù)型態(tài)(Primitivetype)整數(shù)短整數(shù)(short)(占2個(gè)字節(jié))整數(shù)(int)(占4個(gè)字節(jié))長整數(shù)(long)(占8個(gè)字節(jié))字節(jié)專門儲(chǔ)存位數(shù)據(jù)占一個(gè)字節(jié)浮點(diǎn)數(shù)浮點(diǎn)數(shù)(float)(占4個(gè)字節(jié))倍精度浮點(diǎn)數(shù)(double)(占8個(gè)字節(jié))基本的數(shù)據(jù)型態(tài)(Primitivetype)字符
采Unicode編碼前128個(gè)字符編碼與ASCII編碼兼容每個(gè)字符數(shù)據(jù)型態(tài)占兩個(gè)字節(jié)可儲(chǔ)存的字符范圍由'\u0000'到'\uFFFF'布爾數(shù)占內(nèi)存2個(gè)字節(jié)可儲(chǔ)存true與false兩個(gè)數(shù)值基本的數(shù)據(jù)型態(tài)(Primitivetype)
System.out.printf("short\t數(shù)值范圍:%d~%d\n",Short.MAX_VALUE,Short.MIN_VALUE);System.out.printf("int\t數(shù)值范圍:%d~%d\n",Integer.MAX_VALUE,Integer.MIN_VALUE);System.out.printf("long\t數(shù)值范圍:%d~%d\n",Long.MAX_VALUE,Long.MIN_VALUE);System.out.printf("byte\t數(shù)值范圍:%d~%d\n",Byte.MAX_VALUE,Byte.MIN_VALUE);System.out.printf("float\t數(shù)值范圍:%e~%e\n",Float.MAX_VALUE,Float.MIN_VALUE);System.out.printf("double\t數(shù)值范圍:%e~%e\n",Double.MAX_VALUE,Double.MIN_VALUE);
變數(shù)、常數(shù)在Java中要使用變量,必須先宣告變量名稱與數(shù)據(jù)型態(tài)使用int、float、double、char等關(guān)鍵詞來宣告變量名稱并指定其數(shù)據(jù)型態(tài)不可以使用數(shù)字作為開頭不可以使用一些特殊字符,像是*&^%之類不可以與Java內(nèi)定的關(guān)鍵詞同名intage;//宣告一個(gè)整數(shù)變量doublescope;//宣告一個(gè)倍精度浮點(diǎn)數(shù)變量
變數(shù)、常數(shù)鼓勵(lì)用清楚的名稱來表明變量的作用不可以宣告變量后,而在未指定任何值給它之前就使用它編譯程序在編譯時(shí)會(huì)回報(bào)這個(gè)錯(cuò)誤intageOfStudent;intageOfTeacher;variablevarmightnothavebeeninitialized變數(shù)、常數(shù)使用「指定運(yùn)算符」'='來指定變數(shù)的值intageOfStudent=5;doublescoreOfStudent=80.0;charlevelOfStudent='B';System.out.println("年級\t得分\t等級");System.out.printf("%4d\t%4.1f\t%4c",ageOfStudent,scoreOfStudent,levelOfStudent);變數(shù)、常數(shù)宣告變量名稱的同時(shí),加上“final”關(guān)鍵詞來限定這個(gè)變量一但指定了值,就不可以再改變它的值finalintmaxNum=10;maxNum=20;cannotassignavaluetofinalvariablemaxNum算術(shù)運(yùn)算加(+)、減(-)、乘(*)、除(/)、余除運(yùn)算符(%)System.out.println(1+2*3);System.out.println(1+2+3/4);System.out.println((double)(1+2+3)/4);算術(shù)運(yùn)算這段程序會(huì)印出什么結(jié)果?使用下面的方法inttestNumber=10;System.out.println(testNumber/3);inttestNumber=10;System.out.println(testNumber/3.0);System.out.println((double)testNumber/3);算術(shù)運(yùn)算將精確度大的值指定給精確度小的變量時(shí),由于在精確度上會(huì)有遺失,編譯程序會(huì)認(rèn)定這是一個(gè)錯(cuò)誤inttestInteger=0;doubletestDouble=3.14;testInteger=testDouble;System.out.println(testInteger);
possiblelossofprecisionfound:doublerequired:inttestInteger=testDouble^1error算術(shù)運(yùn)算必須明確加上轉(zhuǎn)換的限定字,編譯程序才不會(huì)回報(bào)錯(cuò)誤'%'運(yùn)算符是余除運(yùn)算符testInteger=(int)testDouble;count=(count+1)%360;比較、條件運(yùn)算大于(>)、不小于(>=)、小于(<)、不大于(<=)、等于(==)、不等于(!=)System.out.println("10>5結(jié)果"+(10>5));System.out.println("10>=5結(jié)果"+(10>=5));System.out.println("10<5結(jié)果"+(10<5));System.out.println("10<=5結(jié)果"+(10<=5));System.out.println("10==5結(jié)果"+(10==5));System.out.println("10!=5結(jié)果"+(10!=5));比較、條件運(yùn)算條件運(yùn)算符條件式?成立傳回值:失敗傳回值System.out.println("該生是否及格?"+(scoreOfStudent>=60?'是':'否'));System.out.println("是否為奇數(shù)?"+(number%2!=0?'是':'否'));邏輯、位運(yùn)算「且」(&&)、「或」(||)、「反相」(!)&(AND)、|(OR)、^(XOR)與~(補(bǔ)碼)intnumber=75;System.out.println((number>70&&number<80));System.out.println((number>80||number<75));System.out.println(!(number>80||number<75));
System.out.println("0AND0\t\t"+(0&0));System.out.println("0AND1\t\t"+(0&1));System.out.println("1AND0\t\t"+(1&0));System.out.println("1AND1\t\t"+(1&1));
bytenumber=0;System.out.println((int)(~number));邏輯、位運(yùn)算左移(<<)、右移(>>)、>>>運(yùn)算符intnumber=1;System.out.println("2的0次:"+number);number=number<<1;System.out.println("2的1次:"+number);number=number<<1;System.out.println("2的2次:"+number);number=number<<1;System.out.println("2的3次:"+number);00000001
100000010
200000100
400001000
8
遞增、遞減運(yùn)算遞增、遞減運(yùn)算符將遞增或遞減運(yùn)算符撰寫在變量之前或變量之后
inti=0;System.out.println(++i);System.out.println(--i);inti=0;intnumber=0;number=++i;//相當(dāng)於i=i+1;number=i;System.out.println(number);number=--i;//相當(dāng)於i=i-1;number=i;System.out.println(number);遞增、遞減運(yùn)算將遞增或遞減運(yùn)算符撰寫在變量之前或變量之后
inti=0;intnumber=0;number=i++;//相當(dāng)於number=i;i=i+1;System.out.println(number);number=i--;//相當(dāng)于number=i;i=i-1;System.out.println(number);
遞增、遞減運(yùn)算指定運(yùn)算符范例結(jié)果+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b%=a%=ba=a%b&=a&=ba=a&b|=a|=ba=a|b^=a^=ba=a^b<<=a<<=ba=a<<b>>=a>>=ba=a>>bif條件式語法復(fù)合陳述句if(條件式)
陳述句一;else
陳述句二;if(條件式){
陳述句一;
陳述句二;}else{
陳述句三;
陳述句四;}if條件式Scannerscanner=newScanner(System.in);
System.out.print("請輸入數(shù)字:");intinput=scanner.nextInt();intremain=input%2;//求除2的余數(shù)
if(remain==1)//如果余數(shù)為1System.out.println(input+"為奇數(shù)");elseSystem.out.println(input+"為偶數(shù)");if條件式if中再設(shè)定執(zhí)行的條件if(條件式一){
陳述句一;if(條件式二)
陳述句二;
陳述句三;}if(條件式一){
陳述句一;//其它陳述句}elseif(條件式二)
陳述句二;if(條件式一){
陳述句一;//其它陳述句
}elseif(條件式二)
陳述句二;if條件式Scannerscanner=newScanner(System.in);
System.out.print("輸入分?jǐn)?shù):");intscore=scanner.nextInt();
if(score>=90)System.out.println("得A");elseif(score>=80&&score<90)System.out.println("得B");elseif(score>=70&&score<80)System.out.println("得C");elseif(score>=60&&score<70)System.out.println("得D");elseSystem.out.println("得E(不及格)");switch條件式switch的語法架構(gòu)switch(變量名稱或表達(dá)式){case符合數(shù)字或字符:
陳述句一;break;case符合數(shù)字或字符:
陳述句二;break;default:
陳述三;}Scannerscanner=newScanner(System.in);System.out.print("請輸入分?jǐn)?shù):");intscore=scanner.nextInt();intlevel=(int)score/10;
switch(level){case10:case9:System.out.println("得A");break;case8:System.out.println("得B");break;case7:System.out.println("得C");break;case6:System.out.println("得D");break;default:System.out.println("得E(不及格)");for循環(huán)基本語法for(初始式;判斷式;遞增式){
陳述句一;
陳述句二;}for(intj=1;j<10;j++){for(inti=2;i<10;i++){System.out.printf("%d*%d=%2d",i,j,i*j);}System.out.println();}for循環(huán)for括號中的每個(gè)陳述區(qū)塊是以分號';'作區(qū)隔,而在一個(gè)陳述區(qū)塊中若想寫兩個(gè)以上的陳述句,則使用逗號','作區(qū)隔for(inti=2,j=1;j<10;i=(i==9)?((++j/j)+1):(i+1)){System.out.printf("%d*%d=%2d%c",i,j,i*j,(i==9?'\n':''));}while循環(huán)Scannerscanner=newScanner(System.in);intscore=0;intsum=0;intcount=-1;
while(score!=-1){count++;sum+=score;System.out.print("輸入分?jǐn)?shù)(-1結(jié)束):");score=scanner.nextInt();}
System.out.println("平均:"+(double)sum/count)while循環(huán)Scannerscanner=newScanner(System.in);intinput=0;intreplay=0;
do{System.out.print("輸入整數(shù)值:");input=scanner.nextInt();System.out.println("輸入數(shù)為奇數(shù)?"+((input%2==1)?'Y':'N'));System.out.print("繼續(xù)(1:繼續(xù)0:結(jié)束)?");replay=scanner.nextInt();}while(replay==1);break、continuebreak可以離開目前switch、for、while、dowhile的區(qū)塊continue只會(huì)結(jié)束其之后區(qū)塊的陳述句,并跳回循環(huán)區(qū)塊的開頭繼續(xù)下一個(gè)循環(huán)for(inti=1;i<10;i++){if(i==5)break;System.out.println("i="+i);}for(inti=1;i<10;i++){if(i==5)continue;System.out.println("i="+i);}break、continuebreak與continue還可以配合標(biāo)簽使用back:{for(inti=0;i<10;i++){if(i==9){System.out.println("break");breakback;}}System.out.println("test");}break、continuebreak與continue還可以配合標(biāo)簽使用back1:for(inti=0;i<10;i++){back2:for(intj=0;j<10;j++){if(j==9){continueback1;}}System.out.println("test");}第4章從autoboxing、unboxing認(rèn)識對象
關(guān)于對象自動(dòng)裝箱、拆箱使用對象想寫一個(gè)程序取得現(xiàn)在的系統(tǒng)時(shí)間,您只要產(chǎn)生一個(gè)java.util.Date工具就可以了Date實(shí)際上如何向系統(tǒng)取得時(shí)間,則無需您來操心Datedate=newDate();System.out.println(date.toString());TueMay0316:06:46GMT+08:002005使用對象字符串就是對象,是java.lang.String類別的一個(gè)實(shí)例Stringtext="Haveaniceday!!:)";
System.out.println("原文:"+text);
//傳回全為大寫的字符串內(nèi)容
System.out.println("大寫:"+text.toUpperCase());//轉(zhuǎn)回全為小寫的字符串內(nèi)容
System.out.println("小寫:"+text.toLowerCase());//計(jì)算字符串長度
System.out.println("長度:"+text.length());//傳回取代文字后的字符串
System.out.println("取代:"+text.replaceAll("nice","good"));//傳回指定位置后的子字符串
System.out.println("子字符串:"+text.substring(5));使用對象簡單的用戶登入程序System.out.print("使用者名稱:");Stringusername=scanner.next();System.out.print("用戶密碼:");Stringpassword=scanner.next();if("caterpillar".equals(username)&&"1975".equals(password)){System.out.println("秘密信息在此!");}else{System.out.println(username+"您好,輸入的登入數(shù)據(jù)有誤,請重新輸入!");}包裹(Wrap)基本型態(tài)Long、Integer、Double、Float、Boolean等類別是所謂的Wrapper類別主要目的,就是讓您提供一個(gè)對象實(shí)例作為「殼」,將基本型態(tài)包到這個(gè)對象之中如此您就可以操作這個(gè)對象,就好像您將基本型態(tài)當(dāng)作對象一樣操作包裹(Wrap)基本型態(tài)intdata1=10;intdata2=20;
//使用Integer來包里int資料
Integerdata1Wrapper=newInteger(data1);Integerdata2Wrapper=newInteger(data2);
//直接除以3System.out.println(data1/3);
//轉(zhuǎn)為double值再除以3System.out.println(data1Wrapper.doubleValue()/3);//進(jìn)行兩個(gè)值的比較
System.out.println(data1WpareTo(data2Wrapper));包裹(Wrap)基本型態(tài)自動(dòng)裝箱、拆箱在J2SE5.0之前,要如下才能將int包裝為一個(gè)Integer物件在J2SE5.0之后提供了自動(dòng)裝箱的功能Integerinteger=newInteger(10);Integerinteger=10;自動(dòng)裝箱、拆箱Integerdata1=10;Integerdata2=20;
//轉(zhuǎn)為double值再除以3System.out.println(data1.doubleValue()/3);//進(jìn)行兩個(gè)值的比較
System.out.println(pareTo(data2));自動(dòng)裝箱、拆箱自動(dòng)裝箱運(yùn)用的方法還可以如下:更一般化的java.lang.Number類別自動(dòng)裝箱inti=10;Integerinteger=i;Numbernumber=3.14f;自動(dòng)裝箱、拆箱自動(dòng)拆箱(unboxing)在運(yùn)算時(shí),也可以進(jìn)行自動(dòng)裝箱與拆箱IntegerfooInteger=10;intfooPrimitive=fooInteger;Integeri=10;System.out.println(i+10);System.out.println(i++);Booleanboo=true;System.out.println(boo&&false);小心使用boxing自動(dòng)裝箱與拆箱的功能是編譯程序來幫忙自動(dòng)裝箱與拆箱的功能是所謂的「編譯程序蜜糖」(Compilersugar)Integeri=100;Integeri=newInteger(100);Integeri=null;intj=i;Integeri=null;intj=Value();NullPointerException小心使用boxingIntegeri1=100;Integeri2=100;
if(i1==i2)System.out.println("i1==i2");elseSystem.out.println("i1!=i2");Integeri1=200;Integeri2=200;
if(i1==i2)System.out.println("i1==i2");elseSystem.out.println("i1!=i2");顯示"i1==i2"顯示"i1!=i2"小心使用boxing‘==’也用于判斷兩個(gè)對象參考名稱是否參考至同一個(gè)對象在自動(dòng)裝箱時(shí)對于值從-128到127之間的值,它們被裝箱為Integer對象后,會(huì)存在內(nèi)存之中被重用Integeri1=200;Integeri2=200;
if(i1.equals(i2))System.out.println("i1==i2");elseSystem.out.println("i1!=i2");第5章陣列
一維數(shù)組、二維數(shù)組進(jìn)階數(shù)組觀念一維數(shù)組對象宣告一個(gè)數(shù)組并初始數(shù)組內(nèi)容指定的索引值不可超出數(shù)組范圍會(huì)發(fā)生ArrayIndexOutOfBoundsExceptionlength為數(shù)組對象的屬性成員int[]score={90,85,55,94,77};
for(inti=0;i<score.length;i++)System.out.printf("score[%d]=%d\n",i,score[i]);一維數(shù)組對象當(dāng)您宣告一個(gè)數(shù)組時(shí),其實(shí)就是在配置一個(gè)數(shù)組對象一個(gè)完整的數(shù)組宣告方式如下int[]arr=newint[10];一維數(shù)組對象數(shù)據(jù)型態(tài)初始值byte0short0int0long0Lfloat0.0fdouble0.0dchar\u0000booleanfalse一維數(shù)組對象int[]arr=newint[10];
System.out.print("arr初始值:");for(inti=0;i<arr.length;i++){System.out.print(arr[i]+"");arr[i]=i;}System.out.print("\narr設(shè)定值:");for(inti=0;i<arr.length;i++)System.out.print(arr[i]+"");System.out.println();一維數(shù)組對象在使用new新增數(shù)組時(shí)一并指定初始值int[]score=newint[]{90,85,55,94,77};
for(inti=0;i<score.length;i++)System.out.printf("score[%d]=%d\n",i,score[i]);一維數(shù)組對象intlength=scanner.nextInt();
float[]score=newfloat[length];//動(dòng)態(tài)配置長度
for(inti=0;i<score.length;i++){System.out.print("輸入分?jǐn)?shù):");floatinput=scanner.nextFloat();score[i]=input;}可以使用動(dòng)態(tài)的方式來宣告數(shù)組長度,而不用在程序中事先決定數(shù)組大小二維數(shù)組對象二維數(shù)組使用「名稱」與「兩個(gè)索引」來指定存取數(shù)組中的元素以對象的方式來配置一個(gè)二維數(shù)組對象int[][]arr= {{1,2,3}, {4,5,6}};for(inti=0;i<arr.length;i++){for(intj=0;j<arr[0].length;j++)System.out.print(arr[i][j]+"");System.out.println();}int[][]arr=newint[2][3];二維數(shù)組對象以對象的方式來配置一個(gè)二維數(shù)組對象int[][]arr=newint[2][3];二維數(shù)組對象int[][]arr={{1,2,3}, {4,5,6}};int[]foo=arr[0];//將arr[0]所參考的數(shù)組對象指定給foofor(inti=0;i<foo.length;i++){System.out.print(foo[i]+"");}System.out.println();foo=arr[1];//將arr[1]所參考的數(shù)組對象指定給foofor(inti=0;i<foo.length;i++){System.out.print(foo[i]+"");}System.out.println();二維數(shù)組對象使用new配置二維數(shù)組一并指定初值宣告三維以上的數(shù)組int[][]arr=newint[][]{{1,2,3}, {4,5,6}};int[][][]arr={{{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}};int[][][]arr=newint[2][2][3];不規(guī)則數(shù)組intarr[][];
arr=newint[2][];arr[0]=newint[3];//arr[0]參考至長度為3的一維數(shù)組
arr[1]=newint[5];//arr[1]參考至長度為5的一維數(shù)組
for(inti=0;i<arr.length;i++){for(intj=0;j<arr[i].length;j++)arr[i][j]=j+1;}
for(inti=0;i<arr.length;i++){for(intj=0;j<arr[i].length;j++)System.out.print(arr[i][j]+"");System.out.println();}進(jìn)階的數(shù)組操作一維數(shù)組的參考名稱之宣告將同一個(gè)對象指定給兩個(gè)參考名稱int[]arr=null;int[]arr1={1,2,3,4,5};int[]tmp1=arr1;int[]tmp2=arr1;
System.out.print("透過tmp1取出數(shù)組值:");for(inti=0;i<tmp1.length;i++)System.out.print(tmp1[i]+"");進(jìn)階的數(shù)組操作將同一個(gè)對象指定給兩個(gè)參考名稱System.out.print("\n透過tmp2取出數(shù)組值:");for(inti=0;i<tmp2.length;i++)System.out.print(tmp2[i]+"");
tmp1[2]=9;System.out.print("\n\n透過tmp1取出數(shù)組值:");for(inti=0;i<tmp1.length;i++)System.out.print(tmp1[i]+"");System.out.print("\n透過tmp2取出數(shù)組值:");for(inti=0;i<tmp2.length;i++)System.out.print(tmp2[i]+"");System.out.println();進(jìn)階的數(shù)組操作將同一個(gè)對象指定給兩個(gè)參考名稱int[]arr1={1,2,3,4,5};int[]tmp1=arr1;int[]tmp2=arr1;進(jìn)階的數(shù)組操作int[]arr之后,arr是一維數(shù)組的參考名稱,可以參考至任何長度的一維數(shù)組對象int[]arr1={1,2,3,4,5};int[]arr2={5,6,7};int[]tmp=arr1;
System.out.print("使用tmp取出arr1中的元素:");for(inti=0;i<tmp.length;i++)System.out.print(tmp[i]+"");
tmp=arr2;System.out.print("\n使用tmp取出arr2中的元素:");for(inti=0;i<tmp.length;i++)System.out.print(tmp[i]+"");System.out.println();數(shù)組復(fù)制使用循環(huán)作數(shù)組復(fù)制int[]arr1={1,2,3,4,5};int[]arr2=newint[5];
for(inti=0;i<arr1.length;i++)arr2[i]=arr1[i];
for(inti=0;i<arr2.length;i++)System.out.print(arr2[i]+"");System.out.println();數(shù)組復(fù)制使用System類別所提供的arraycopy()方法在JDK6中,也為Arrays類別新增了數(shù)組復(fù)制的copyOf()方法int[]arr1={1,2,3,4,5};int[]arr2=newint[5];
System.arraycopy(arr1,0,arr2,0,arr1.length);
for(inti=0;i<arr2.length;i++)System.out.print(arr2[i]+"");System.out.println();Arrays類別名稱說明sort()幫助您對指定的數(shù)組排序,所使用的是快速排序法
binarySearch()讓您對已排序的數(shù)組進(jìn)行二元搜尋,如果找到指定的值就傳回該值所在的索引,否則就傳回負(fù)值
fill()當(dāng)您配置一個(gè)數(shù)組之后,會(huì)依數(shù)據(jù)型態(tài)來給定默認(rèn)值,例如整數(shù)數(shù)組就初始為
0,您可以使用Arrays.fill()方法來將所有的元素設(shè)定為指定的值
equals()比較兩個(gè)數(shù)組中的元素值是否全部相等,如果是將傳回true,否則傳回
false數(shù)組比較不可用'=='比較兩個(gè)數(shù)組的元素值是否相等int[]arr1={1,2,3,4,5};int[]arr2={1,2,3,4,5};
int[]tmp=arr1;
System.out.println(arr1==tmp);System.out.println(arr2==tmp);數(shù)組比較deepEquals()與deepToString()int[][]arr1={{1,2,3}, {4,5,6}, {7,8,9}};int[][]arr2={{1,2,3}, {4,5,6}, {7,8,9}};int[][]arr3={{0,1,3}, {4,6,4}, {7,8,9}};
System.out.println("arr1內(nèi)容等于arr2?"+Arrays.deepEquals(arr1,arr2));System.out.println("arr1內(nèi)容等于arr3?"+Arrays.deepEquals(arr1,arr3));System.out.println("arr1deepToString()\n\t"+Arrays.deepToString(arr1));foreach與數(shù)組加強(qiáng)的for循環(huán)(EnhancedforLoop)J2SE5.0之前在J2SE5.0之后for(typeelement:array){
System.out.println(element)....}int[]arr={1,2,3,4,5};for(inti=0;i<arr.length;i++)System.out.println(arr[i]);int[]arr={1,2,3,4,5};for(intelement:arr)System.out.println(element);foreach與數(shù)組如果是對象的話二維數(shù)組String[]names={"caterpillar","momor","bush"};for(Stringname:names)System.out.println(name);int[][]arr={{1,2,3},{4,5,6},{7,8,9}};for(int[]row:arr){for(intelement:row){System.out.println(element);}}對象數(shù)組以下產(chǎn)生幾個(gè)對象?以下的宣告產(chǎn)生幾個(gè)對象?以下產(chǎn)生幾個(gè)對象?int[]arr=newint[3];int[][]arr=newint[2][3];Integer[]arr=newInteger[3];對象數(shù)組以下的宣告產(chǎn)生幾個(gè)對象?Integer[][]arr=newInteger[2][3];第6章字串
認(rèn)識字符串(String)字符串進(jìn)階運(yùn)用String類別在某些程序語言中,字符串是以字符數(shù)組的方式存在在Java中字符串不僅僅是字符數(shù)組,而是String類別的一個(gè)實(shí)例Stringtext="字符串的使用";System.ou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球多人賽車游戲行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025文旅項(xiàng)目新年穿越之旅宋韻中國年主題活動(dòng)策劃方案
- 第10講 俄羅斯(解析版)
- 2025個(gè)人財(cái)產(chǎn)信托合同的范本
- 2025抵押借款的標(biāo)準(zhǔn)合同范本
- 2025水毀工程監(jiān)理合同
- 海洋工程裝備研發(fā)生產(chǎn)合同
- 2025企業(yè)承包經(jīng)營合同書模板
- 提高財(cái)務(wù)管理能力的技巧
- 提高回答問題的技巧主題班會(huì)
- 腦卒中后吞咽障礙患者進(jìn)食護(hù)理團(tuán)體標(biāo)準(zhǔn)
- 墨香里的年味兒(2023年遼寧沈陽中考語文試卷記敘文閱讀題及答案)
- 工行人工智能風(fēng)控
- 2023風(fēng)電機(jī)組預(yù)應(yīng)力混凝土塔筒與基礎(chǔ)結(jié)構(gòu)設(shè)計(jì)標(biāo)準(zhǔn)
- 小學(xué)語文閱讀教學(xué)落實(shí)學(xué)生核心素養(yǎng)方法的研究-結(jié)題報(bào)告
- 一年級的成長歷程
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 正月十五元宵節(jié)介紹課件
- 病毒性肺炎疾病演示課件
- 中考英語語法填空專項(xiàng)練習(xí)附答案(已排版-可直接打印)
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
評論
0/150
提交評論