版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1Java語言基礎關鍵字與標識符數(shù)據(jù)類型數(shù)據(jù)類型的轉(zhuǎn)換運算符和表達式流程控制數(shù)組21.1標識符(Identifier)程序員對程序中的各個元素加以命名時使用的命名記號稱為標識符,包括:類名、變量名、方法名……Java語言中,標識符是以字母,下劃線(_),貨幣符($£¥)開始的一個字符序列,后面可以跟字母,下劃線,貨幣符,數(shù)字。Java標識符區(qū)分大小寫字母。標識符中最好不使用貨幣符($£),因為這些符號常被用于內(nèi)部處理。合法的標識符:IdentifieruserNameUser_Name_sys_value$changemy$Change非法的標識符:2mailroom#class31.2數(shù)據(jù)類型(DataType)Javatypesystemprimitivereferencenullcharnumericbooleanclassinterfacearrayintegralfloating-pointbyteshortintlongfloatdouble41.2數(shù)據(jù)類型(DataType)數(shù)據(jù)類型
所占位數(shù)
數(shù)的范圍
boolean 1 true/falsechar 16 0~65535byte
8
-27~27-1short 16 -215~215-1 int 32 -231~231-1 long 64 -263~263-1 float0.0f 32 7 -3.4e+38
~3.4e+38double0.0 64 15 -1.7e+308
~1.7e+30851.2數(shù)據(jù)類型(DataType)所有基本類型所占的位數(shù)都是確定的,并不因操作系統(tǒng)的不同而不同。所有基本類型的關鍵詞都是小寫的。數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:不能對boolean類型進行類型轉(zhuǎn)換。不能把對象類型轉(zhuǎn)換成不相關類的對象。在把容量大的類型轉(zhuǎn)換為容量小的類型時必須使用強制類型轉(zhuǎn)換。61.2.1布爾類型(boolean)布爾型數(shù)據(jù)只有兩個值true和false它們不對應于任何整數(shù)值false為缺省值布爾型數(shù)據(jù)只能參與邏輯關系運算:&&||==!=!示例:booleanb1;booleanb2=true;b=!b2;booleanb=(b1&&b2)!=false;71.2.2字符類型(char)字符型數(shù)據(jù)代表16位的Unicode字符字符常量是用單引號括起來的一個字符'a'‘B’‘\n’‘\u0030’字符型數(shù)據(jù)的取值范圍為0~65535或者說\u0000~\uFFFF\u0000為缺省值示例charc1; \\缺省值為0charc2=‘0’; \\賦初值為字符'0'charc3=32; \\用整數(shù)賦初值為空格81.2.2字符類型(char)特殊字符的常量表示法:反斜線(Backslash) ‘\\’退格(Backspace) ‘\b’回車(Carriagereturn) ‘\r’進紙符(Formfeed) ‘\f’制表符(Formfeed) ‘\t’換行(Newline) ‘\n’單引號(Singlequote) ‘\’’八進制數(shù)(‘\0’~‘\377’
) ‘\DDD’Unicode字符 ‘\uHHHH’91.2.3整數(shù)類型(byteshortintlong)整數(shù)常量表示法:十進制:
0-243
2147483647八進制以0開頭:
010[=8]-0377[=-255]十六進制以0x或0X開頭:
0x10[=16]-0XF=[-15]64位長整數(shù)以l或L結尾:12l-343L0xfffffffffL1L<<32等于4294967296L1<<32等于1(特別注意非0)沒有以l或L結尾的數(shù)字,根據(jù)其實際值所屬范圍,可以被用作byte,short,或int型整數(shù)以l或L結尾的數(shù)字,無論其實際值所屬范圍怎樣,都被用作long型整數(shù)101.2.3整數(shù)類型(byteshortintlong)示例byteb1; \\缺省值為0byteb2=127; \\賦初值為127shorts1=(short)(b1+b2);\\強制類型轉(zhuǎn)換shorts2=(short)(b1+123)\\強制類型轉(zhuǎn)換intn=b1+b2; \\不需要強制類型轉(zhuǎn)換longl1=2343; \\不需要強制類型轉(zhuǎn)換longl2=4294967296L; \\必須用L或l結尾longl3=65536*63356; \\乘法運算越界,l3為0longl4=65536L*63356; \\l3為4294967296L111.2.4浮點數(shù)類型(floatdouble)浮點數(shù)(實數(shù))常量的兩種表示法十機制小數(shù)形式:0.23.18-234.科學計數(shù)法形式:0.23e61.23E-432位浮點數(shù)形式:0.23f1.23E-4f.18F示例doubled1=127.0; \\賦初值為127doubled2=127; \\賦初值為127floatf1=127.0f; \\必須在數(shù)字后加f或Ffloatf2=4.0e38f; \\錯誤!32位浮點數(shù)不能超過 \\3.4028234663852886e38floatf3=(float)d1; \\必須強制類型轉(zhuǎn)換121.2.5類型轉(zhuǎn)換(typecast)基本數(shù)據(jù)類型在賦值時的自動類型轉(zhuǎn)換規(guī)則:byte short,char,int,long,float,doubleshort int,long,float,doublechar int,long,float,doubleint long,float,doublelong float,doublefloat double反向的類型轉(zhuǎn)換必須使用強制類型轉(zhuǎn)換轉(zhuǎn)換過程中可能損失精度(byte)255==-1 (byte)0x5634==0x34浮點數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到,而不是四舍五入(int)23.7==23 (int)-45.89f==-45131.3字符串(String)字符串是Java中最常用的類字符串常量是雙引號(“”)引起來的字符序列“astring”“a\nmultiline\nstring\n”多個字符串通過連接運算(+)生成新字符串對象“twostring”+“concatenateintoone”字符串可以和基本類型做連接運算Strings=“0xF=”+0xF;//“0xF=15”字符串可以和任何對象做連接運算Strings=“s=”+anObject;//“s=…”141.3.1基本類型轉(zhuǎn)換為字符串布爾類型(boolean)true->“true” false->“false”整數(shù)類型(byteshortintlong)byteshortintlong->整數(shù)的十進制表示字符類型(char)’A’->“A” ‘\uHHHH’->“\uHHHH”浮點數(shù)類型(floatdoule)相應精度的十進制浮點數(shù)(必要時使用科學計數(shù)法)float的精度約為7;double的精度約為15151.3.2對象轉(zhuǎn)換為字符串任何一個對象都有toString()方法,這個方法在所有對象的基類Object中有缺省實現(xiàn)在需要將對象自動轉(zhuǎn)換為字符串的地方,對象的toString()方法被調(diào)用,用來生成相應的字符串。任何類(class)、接口(interface)、數(shù)組(array)的實例都是對象。161.3.3字符串(String)特殊字符在字符串中的表示法反斜線(Backslash) \\退格(Backspace) \b回車(Carriagereturn) \r進紙符(Formfeed) \f制表符(Formfeed) \t換行(Newline) \n雙引號(Doublequote) \”八進制數(shù)(‘\0’~‘\377’
) \DDDUnicode字符 \uHHHH172.1運算符(Operator)算術運算符:+,―,*,/,%,++,--關系運算符:>,<,>=,<=,==,!=布爾邏輯運算符:!,&&,||位運算符:>>,<<,>>>,&,|,^,~賦值運算符:=,+=,-=,*=,/=三元條件運算符:?:182.1運算符(Operator)其它特殊的運算符包括分量運算符:.下標運算符:[]實例類型判斷運算符:instanceof對象示例創(chuàng)建運算符:new,強制類型轉(zhuǎn)換運算符:(類型)方法調(diào)用運算符:()192.2表達式表達式是由操作數(shù)和運算符按一定的語法形式組成的符號序列。一個常量或一個變量名字是最簡單的表達式,其值即該常量或變量的值;表達式的值還可以用作其他運算的操作數(shù),形成更復雜的表達式。示例:X num1+num2 a*(b+c)+d3.14 x<=(y+z) x&&y||z202.3優(yōu)先級和結合順序1) .,
[],() 9) &2) ++,--,!,~,instanceof 10) ^
3) +,-,(type),
new 11) |4) *
,/,% 12) &&5) +,- 13) ||6) >>,>>>,<< 14) ?:7) >,<,>=,<= 15) =,+=,-=,*=,/=,%=,^=8) ==,!= 16) &=,|=,<<=,>>=,>>>=注:紅色的從右到左,其余的從左到右;用括號改變結合順序。 藍色運算符對byte、short、char作運算時,結果為int型整數(shù)。212.4語句和代碼段一個由分號(;)結尾的單一命令是一條語句(Statement),一條語句一般是一行代碼,但也可以占多行代碼。inta=1;//變量定義及初始化語句用大括號({……})圍起來的多條語句構成一個代碼段(Codeblock);同時代碼段也大括號前的一些修飾性描述:classAclass{ for(inti=0;i<=1;i++){……
……
} }222.5作用域(Scope)作用域決定了變量可使用的范圍全局變量(Globalvariables):變量可以在整個類中被訪問;(成員變量,類變量)局部變量(Localvariables):變量只能在定義其的代碼段中被訪問。作用域規(guī)則:在一個代碼段中定義的變量只能在該代碼段或者該代碼段的子代碼段中可見。使用局部變量比使用全局變量更安全。232.5作用域(示例)classScoping{intx=0;voidmethod1(){inty;y=x;//OK.method1可以訪問y.}voidmethod2(){intz=1;z=y;//Error.y在method2的作用域之外定義
}}243.Java語言的控制分支語句:if-else,switch循環(huán)語句:while,do-while,for與程序轉(zhuǎn)移有關的其它語句:break,continue,return例外處理語句:try-catch-finally,throw253.1條件語句if-elseif(boolean-expression1){statements1;}elseif(boolean-expression2){statements2;}……elseif(boolean-expressionN){statementsN;}else{statementsElse;}263.1條件語句if-else布爾表達式boolean-expression是任意一個返回布爾數(shù)據(jù)類型的表達式,而且必須是(比C或C++要嚴格)。與C或C++一樣,每個單一語句后面都要有分號。為了增強程序的可讀性,應將if或else后的語句用{}括起來。else子句是任選的,不能單獨作為語句使用,它必須和if語句配對使用,并且總是與離它最近的if配對。if(1<2){System.out.println(“1issmallerthan2”);}else{System.out.println(“CanNOTreachhere!”);}273.1多分支語句switchswitch(expression) {casevalue1:statements1;break;……casevalueN:statementsN;break;[default:defaultStatements;]}283.1多分支語句switch表達式expression的返回值類型必須是這幾種類型之一:int、byte、char、short、String。case子句中的值valueI必須是常量,而且所有case子句中的值應是不同的。default子句是任選的。break語句用來在執(zhí)行完一個case分支后,使程序跳出switch語句,即終止switch語句的執(zhí)行。如果某個case分支后沒有break語句,程序?qū)⒉辉僮霰容^而執(zhí)行下一個分支。switch語句的功能可以用if-else語句來實現(xiàn),但某些情況下,使用switch語句更簡煉。293.1多分支語句switchinta=100,b=20,c;charoper=‘+’;switch(oper){case‘+’:c=a+b;break;case‘-’:c=a-b;break;default:c=a*b;
[break;]}303.2循環(huán)語句while[initialization]//初始化條件while(termination){//循環(huán)條件
body; //循環(huán)體
[iteration;] //迭代變更循 //環(huán)條件}當表達式termination為true時,執(zhí)行{}中的語句,否則終止循環(huán)。tbfalsetrue313.2循環(huán)語句do-while[initialization]//初始化條件do{body; //循環(huán)體
[iteration;] //迭代變更循 //環(huán)條件}while(termination);//循環(huán)條件首先執(zhí)行一遍{}中的語句,當表達式termination為true時,繼續(xù)執(zhí)行{}中的語句,否則終止循環(huán)。tbfalsetrue323.2循環(huán)語句forfor(Init;Termination;Iterat){ body;//循環(huán)體}Init//初始化條件Termination//循環(huán)條件Iterat//迭代變更循環(huán)條件tbodyfalsetrueiterainit333.2循環(huán)語句forfor語句執(zhí)行時,首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。初始化、終止以及迭代部分都可以為空語句(但分號不能省),三者均為空的時候,相當于一個無限循環(huán)。在初始化部分和迭代部分可以使用逗號語句,來進行多個操作。逗號語句是用逗號分隔的語句序列。for(inti=0,intj=10;i<j;i++,j--){……}343.2循環(huán)語句比較intn=1,sum=0;while(n<=10){sum=sum+n;n++;}intn=10,sum=0;do{sum+=n;n--;}while(n>0);intsum=0;for(inti=1;i<=10;i++){sum+=i;}while循環(huán)do-while循環(huán)for循環(huán)353.3程序轉(zhuǎn)移相關語句break在switch語中,break語句用來終止switch語句的執(zhí)行,使程序從整個switch語句后的第一條語句開始執(zhí)行。在循環(huán)語句中,break用于終止并跳出循環(huán),從緊跟著循環(huán)體代碼段后的語句執(zhí)行。在Java中,可以為每個代碼塊加一個標號,break語句可用于跳出它所指定的塊,并從緊跟該塊后的第一條語句處執(zhí)行。BlockLabel:{codeBlock;breakBlockLabel;}363.3程序轉(zhuǎn)移相關語句breaka:{//標記代碼塊a…… b:{//標記代碼塊b……c:{//標記代碼塊c……breakb;……//這段語句將不執(zhí)行
}//代碼塊c結束
……//這段語句也不執(zhí)行
}//代碼塊b結束
……//從這段語句開始執(zhí)行}//代碼塊a結束373.3程序轉(zhuǎn)移相關語句continuecontinue語句用來結束本次循環(huán),跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行終止條件的判斷,以決定是否繼續(xù)循環(huán)。對于for語句,在進行終止條件的判斷前,還要先執(zhí)行迭代語句。它的格式為:continue;也可以用continue跳轉(zhuǎn)到括號指明的外層循環(huán)中,這時的格式為continueouterLable;383.3程序轉(zhuǎn)移相關語句continueouter:for(inti=0;i<10;i++){//外層循環(huán)
inner:for(intj=0;j<10;j++){//內(nèi)層循環(huán)
if(i<j){ ……
continueouter; } ……}//內(nèi)層循環(huán)結束
……}//外層循環(huán)結束for(inti=0;i<10;i++){if(i==5){continue;}
……}393.3程序轉(zhuǎn)移相關語句returnreturn語句從當前方法中退出,返回到調(diào)用該方法的語句處,并從緊跟該語句的下一條語句繼續(xù)程序的執(zhí)行。返回語句有兩種格式:returnexpression;//當方法需要返回某種類型數(shù)據(jù)時return;//當方法的返回類型為void時單獨一條return語句放在方法中間時,會產(chǎn)生編譯錯誤,因為其后的語句將不會執(zhí)行到。若真需要退出方法,可以通過將return語句嵌入某些語句(如if-else)來使程序在未執(zhí)行完方法中所有語句時退出。404
數(shù)組和字符串數(shù)組是一組同類型的變量或?qū)ο蟮募蠑?shù)組的類型可以是基本類型,或類和接口數(shù)組中每個元素的類型相同引用數(shù)組元素通過數(shù)組名[下標]數(shù)組下標(數(shù)組的索引)從0開始數(shù)組是一種特殊的對象(Object)定義類型(聲明)創(chuàng)建數(shù)組(分配內(nèi)存空間):new釋放(Java虛擬機完成)一維數(shù)組、多維數(shù)組414.1一維數(shù)組一維數(shù)組的元素只有一個下標變量例:A[1],c[3]一維數(shù)組的聲明方法1:類型數(shù)組名[];Stringargs[];inta[];doubleamount[];charc[];方法2:類型[]數(shù)組名;String[]args;int[]a;double[]amount;char[]c;注意類型是數(shù)組中元素的數(shù)據(jù)類型(基本和構造類型)數(shù)組名是一個標識符數(shù)組聲明后不能被訪問,因未為數(shù)組元素分配內(nèi)存空間variabledmightnothavebeeninitializedSystem.out.println(d[0]);^1errordouble[]d;System.out.println(d[0]);42數(shù)組的創(chuàng)建用new來創(chuàng)建數(shù)組為數(shù)組元素分配內(nèi)存空間,并對數(shù)組元素進行初始化格式:數(shù)組名=new類型[數(shù)組長度]例:a=newint[3];聲明和創(chuàng)建的聯(lián)用:int[]a=newint[3];默認賦初值整型初值為0int[]i=newint[3];實型初值為0.0float[]f=newfloat[3];布爾型初值為falseboolean[]b=newboolean[3];字符型初值為\u0000(不可見)char[]c=newchar[3];43classTest{ publicstaticvoidmain(Stringargs[]){ int[]i=newint[3]; float[]f=newfloat[3]; boolean[]b=newboolean[3]; char[]c=newchar[3]; for(intj=0;j<i.length;j++) System.out.println(i[j]); for(intj=0;j<f.length;j++) System.out.println(f[j]); for(intj=0;j<b.length;j++) System.out.println(b[j]); for(intj=0;j<c.length;j++) System.out.println(c[j]); }}C:\>javaTest0000.00.00.0falsefalsefalseC:\T44一維數(shù)組的初始化為數(shù)組元素指定初始值方式一:聲明和創(chuàng)建數(shù)組后對數(shù)組初始化classTest{ publicstaticvoidmain(Stringargs[]){ inta[]=newint[5]; System.out.println(“\t輸出一維數(shù)組a:”); for(inti=0;i<5;i++){ a[i]=i+1; System.out.println(“\ta[”+i+“]=”+a[i]); }}}a.length45一維數(shù)組的初始化方式二:在聲明數(shù)組的同時對數(shù)組初始化格式:類型數(shù)組名[]={元素1[,元素2……]};inta[]={1,2,3,4,5};classTest{ publicstaticvoidmain(Stringargs[]){ inta[]={1,2,3,4,5}; System.out.println(“\t輸出一維數(shù)組a:”); for(inti=0;i<5;i++) System.out.println(“\ta[”+i+“]=”+a[i]); }}46數(shù)組的賦值數(shù)組的整體賦值用java.lang.System類的方法進行數(shù)組復制47數(shù)組整體賦值classTest{ publicstaticvoidmain(Stringargs[]){ inta[]={2,4,6,8}; intb[];int[]c={1,3,5,7}; b=a;c=a; for(intj=0;j<a.length;j++) System.out.print(a[j]+““); System.out.println(); for(intj=0;j<b.length;j++) System.out.print(b[j]+““); System.out.println(); for(intj=0;j<c.length;j++) System.out.print(c[j]); }}C:\>javaTest246824682468C:\>T48一維數(shù)組的數(shù)組復制java.lang.System類的方法publicstaticvoidarraycopy(Objectsrc, intsrcIndex, Objectdest, intdestIndex, intlength)49classTest{publicstaticvoidmain(Stringargs[]){int[]a={2,4,6,8}; int[]b; int[]c={1,3,5,7,9}; b=a; System.arraycopy(a,1,c,0,3); System.out.print(“數(shù)組a:”); for(inti=0;i<a.length;i++) System.out.print(a[i]+“”); System.out.println(); System.out.print(“數(shù)組b:”); for(inti=0;i<b.length;i++) System.out.print(b[i]+“”); System.out.println();一維數(shù)組的數(shù)組復制System.out.print(“數(shù)組c:”);for(inti=0;i<c.length;i++) System.out.print(c[i]+“”);System.out.println();}}數(shù)組a:2468數(shù)組b:2468數(shù)組c:46879T50小結類型相同、數(shù)量確定的存儲結構用下標訪問數(shù)組中任一個元素,數(shù)組名[下標]聲明、創(chuàng)建(new)、初始化/賦值int[]d;System.out.println(d[0]);System.out.println(d.length);variabledmightnothavebeeninitializedSystem.out.println(d[0]); ^System.out.println(d.length);^514.2多維數(shù)組數(shù)組的數(shù)組ArraysofArrays例:表格(行和列)以二維數(shù)組為例期中考試期末考試姓名總分6870學生A698085學生B847590學生C8652二維數(shù)組的聲明類型數(shù)組名[][]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年旅游服務代理合同樣本
- 2025年度綠植花卉租賃與城市景觀提升合同范本4篇
- 2025年度綠化工程環(huán)境保護與節(jié)能減排合同范本4篇
- 2025版綠色建筑項目租賃與能源管理合同4篇
- 2025年度個人二手房交易安全協(xié)議范本4篇
- 個人間短期資金周轉(zhuǎn)合同書版
- 個人買賣合同范文(2024版)
- 二零二五年度風力發(fā)電機組安裝及運營維護協(xié)議3篇
- 2025年度個稅起征點調(diào)整下簽勞務合同稅務籌劃合作協(xié)議
- 二零二五年度素食餐飲品牌授權合作合同
- 車站值班員(中級)鐵路職業(yè)技能鑒定考試題及答案
- 極簡統(tǒng)計學(中文版)
- JTG∕T E61-2014 公路路面技術狀況自動化檢測規(guī)程
- 高中英語短語大全(打印版)
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以兩位數(shù)-豎式運算300題
- 寺院消防安全培訓課件
- 比摩阻-管徑-流量計算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗
- 五年級數(shù)學應用題100道
評論
0/150
提交評論