




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、java基礎(chǔ)知識(shí)總結(jié)%1. 基本數(shù)據(jù)類型byte 8位(一字節(jié)) short 16位(兩字節(jié))char 16位(兩個(gè)字節(jié)) int 32位(4個(gè)字節(jié))float 32位(四字節(jié))double 64 位(8 字節(jié))long 64位(八字節(jié))boolean 8位(一字節(jié))一共八種,作用:對(duì)基本內(nèi)存空間進(jìn)行劃分 在基木數(shù)據(jù)類型用注意以下兩點(diǎn):1在java中默認(rèn)的浮點(diǎn)數(shù)是double類型的,所以在進(jìn)行浮點(diǎn)數(shù)變雖賦值的時(shí)候,一 定要注意。例如:float a; 定義了一個(gè)單精度浮點(diǎn)類型變量ao a=1.0; 將一個(gè)浮點(diǎn)數(shù)1.0賦值給a。這在java中是不可以的。你需要這樣寫:float a;a=1.0f
2、; 令1.0為單精度再賦值給ao2. java 'i1的布爾值只能是true或者false。不像c語言那樣可以用0表示false用其 它的數(shù)表示trueo%1. 數(shù)據(jù)類型的轉(zhuǎn)換數(shù)據(jù)類型間的轉(zhuǎn)換有兩鐘:一種是自動(dòng)類型轉(zhuǎn)換;條件是:1).兩種類型必須兼容; 2)力標(biāo)類型的取值要大于源類型的取值。二種是強(qiáng)制類型轉(zhuǎn)換。但容易造成精度的 丟失。jaw中的類型自動(dòng)提升規(guī)則:one:所有byte類型,short類型,和char類型都將口動(dòng)提升為int類型 two:如果有一個(gè)操作符是long型。則計(jì)算結(jié)果就是long型 three:如果有一個(gè)操作符是float型。則計(jì)算結(jié)果就是float型 four:
3、 如果有一個(gè)操作符是double型。則計(jì)算結(jié)果就是clou bl3 .java中string和int,double數(shù)據(jù)類型之間的轉(zhuǎn)換: 把 string 轉(zhuǎn)為 int:string sl=nabcn;int il 二integer.parselnt(sl); 把 string 轉(zhuǎn)為 double: string sl="abc"double dl=double.parsedouble(sl);把string先轉(zhuǎn)為double,后轉(zhuǎn)為int:string sl="abc"int i2=(int)double.parsedouble(sl);class zh
4、public static void main (string args j)string sl=habc"int 訂二 intege 匚 patselnt(sl);system.out.println(i 1);為什么編譯的時(shí)候不報(bào)錯(cuò)了,而運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò)?將int類型轉(zhuǎn)換不double類型是看自動(dòng)進(jìn)行的,而double轉(zhuǎn)換不int需要強(qiáng)制類型 轉(zhuǎn)換.例:double x=0.999;int n=(int)x; 強(qiáng)制類型轉(zhuǎn)換是通過截?cái)嘈?shù)部分轉(zhuǎn)換不整型的基本類型與其包裝器類z間的轉(zhuǎn)換包裝器類對(duì)彖變量= new包裝器類(基本類型變量);基本類型 基本類型變量名=對(duì)彖變量名基本類型va
5、lue();例:int i=l;integer io=new integer(i);int b=value();數(shù)據(jù)轉(zhuǎn)換string類型string strl = ,v +基本類型變量;十進(jìn)制到其他進(jìn)制的轉(zhuǎn)換integer.tobinarystring(int i); /十進(jìn)制 轉(zhuǎn)換成二進(jìn)制integer.tohexstring(int i); /十進(jìn)制 轉(zhuǎn)換成十六進(jìn)制integer.tooctalstring(int i); 十進(jìn)制 轉(zhuǎn)換成八進(jìn)制tostring(int/long i, int radix)方法,可以將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成任意進(jìn)制的字符。byte, short, f
6、loat 和 double 等數(shù)據(jù)類型,可以利用 integer 或者 long 的 tobinarystring, tohexstring, to octalstring和tostring方法轉(zhuǎn)換成其他進(jìn)制的字符串。其它進(jìn)制到十進(jìn)制的轉(zhuǎn)換integer.valueof(n1000m,幾進(jìn)制);integer和long類的valueof(string source, int門方法,可以將任意進(jìn)制的字符串轉(zhuǎn)換 成十進(jìn)制數(shù)據(jù)。字節(jié)數(shù)組與數(shù)據(jù)類型的轉(zhuǎn)換整型轉(zhuǎn)換為字節(jié)數(shù)組,其它類型參考此例例1:public static byte inttobytearray(int n)int tmp = n;by
7、tefl b=new byte4;b3=new i nt eger( tmp). byte valu e();tmp=tmp»8;b2=new integer(tmp).bytevalue();tmp=tmp»16;b| 1 j=new integer(tmp).bytevalue();tmp=tmp»24;b|0j=new integer(tmp).bytevalue();return b;例2:public static byte inttobytearray(int n)int tmpl = n;byte b=new byte4; 整型需要4個(gè)字節(jié)存儲(chǔ)for
8、 (int i = b.length - 1; i >=0; i)/int的后8位轉(zhuǎn)換為byte型bi = new integer(tmp 1 ).bytevalue();tmpl = tmpl » 8;return b;字節(jié)數(shù)組轉(zhuǎn)換為整型byte b=new byte4;b0=0;bl=0;b2=39;b3=16;public static int tolnteger(byte b)int s=0;s=b0 * 256 * 256 * 256 + bl * 256 * 256 +b2 * 256+b3;return s;boolean類型轉(zhuǎn)換為string例一:boolean
9、 b=true;string strl=b.valueof(b);例二:boolean b=new boolean(true);string str2=b.tostring();%1. 變量對(duì)于第一種變量,:hwa虛擬機(jī)會(huì)口動(dòng)進(jìn)行初始化。如果給出了初始值,則初始化 為該初始值。如果沒有給出,則把它初始化為該類型變量的默認(rèn)初始值。int類型變量默認(rèn)初始值為0float類型變量默認(rèn)初始值為o.ofdouble類型變量默認(rèn)初始值為0.0boolean類型變量默認(rèn)初始值為falsechar類型變量默認(rèn)初始值為0(ascii碼)long類型變量默認(rèn)初始值為0所有對(duì)象引用類型變量默認(rèn)初始值為null,即不
10、指向任何對(duì)象。注意數(shù)組本身也是 對(duì)象,所以沒有初始化的數(shù)組引用在口動(dòng)初始化后其值也是nullo對(duì)于兩種不同的類屬性,static屬性與instance屬性,初始化的時(shí)機(jī)是不同的。instance 屬性在創(chuàng)建實(shí)例的時(shí)候初始化,static屬性在類加載,也就是第一次用到這個(gè)類的時(shí) 候初始化,對(duì)于后來的實(shí)例的創(chuàng)建,不再次進(jìn)行初始化。這個(gè)問題會(huì)在以后的系列 屮進(jìn)行詳細(xì)討論。有時(shí)你希望定義一個(gè)類成員,使它的使用完全獨(dú)立于該類的任何對(duì)象。通常情況下, 類成員必須通過它的類的對(duì)象訪問,但是可以創(chuàng)建這樣一個(gè)成員,它能夠被它自c 使用,而不必引用特定的實(shí)例。在成員的聲明前面加上關(guān)鍵字static(靜態(tài)的)就能創(chuàng)
11、 建這樣的成員。如果一個(gè)成員被聲明為static,它就能夠在它的類的任何對(duì)象創(chuàng)建之 前被訪問,而不必引用任何對(duì)象。你可以將方法和變量都聲明為statico static成員 的最常見的例子是main()。因?yàn)樵诔绦蜷_始執(zhí)行時(shí)必須調(diào)用main(),所以它被聲明為 static o聲明為static的變量實(shí)質(zhì)上就是全局變量。當(dāng)聲明一個(gè)對(duì)象時(shí),并不產(chǎn)生static變量 的拷貝,而是該類所有的實(shí)例變量共用同一個(gè)static變量。聲明為static的方法有以 下幾條限制:1. 它們僅能調(diào)用其他的static方法。2. 它們只能訪問static數(shù)據(jù)。它們不能以任何方式引用this或super (關(guān)鍵字su
12、per與繼承有關(guān))。如果你需耍通過計(jì)算來初始化你的static變量,你可以聲明一個(gè)static塊,static塊 僅在該類被加載時(shí)執(zhí)行一次。下面的例子顯示的類有一個(gè)static方法,一些static變 量,以及一個(gè)static初始化塊:/ demonstrate static variables, methods, and blocks.class usestatic static int a = 3;static int b;static void meth(int x) system.out.printlnc'x = " 4- x);system.out.println(
13、"a = ” + a);system.out.printlnc'b = " + b);static system.out.printlnc'static block initialized/');b = a * 4;public static void main(string args) meth(42);一旦usestatic類被裝載,所有的static語句被運(yùn)行。首先,a被設(shè)置為3, static 塊執(zhí)行(打印一條消息),最后,b被初始化為a*4或12o然后調(diào)用main(), main()調(diào) 用meth(),把值42傳遞給x。3個(gè)print in
14、 ()語句引用兩個(gè)static變量a和b,以及 局部變量x。注意:在一個(gè)static方法中引用任何實(shí)例變量都是非法的。下面是該程序的輸hhstatic block initialized.x = 42a = 3b = 12在定義它們的類的外面,static方法和變量能獨(dú)立于任何對(duì)象而被使用。這樣,你 只要在類的名字后面加點(diǎn)號(hào)運(yùn)算符即可。例如,如果你希望從類外面調(diào)用一個(gè)static 方法,你可以使用下面通用的格式:classname.method()這里,classname是類的名字,在該類中定義static方法??梢钥吹?,這種格式與通 過對(duì)象引用變量調(diào)用非static方法的格式類似。一個(gè)sta
15、tic變量可以以同樣的格式來 訪問類名加點(diǎn)號(hào)運(yùn)算符。這就是java如何實(shí)現(xiàn)全局功能和全局變量的一個(gè)控制版本。f面是一個(gè)例子。在main()中,static方法callme()和static變量b在它們的類之 外被訪問。class staticdemo static int a = 42;static int b = 99;static void callme() system.out.println(ma = n + a);class staticbyname public static void main(string argsj) staticdemo.callme();system.ou
16、t.println(nb = " + staticdemo.b);下而是該程序的輸岀:a = 42b = 99%1. jaw中類,對(duì)象和引用間的關(guān)系類:是對(duì)現(xiàn)實(shí)存在事物的一種抽彖,一種高度的概括。對(duì)彖:是類的實(shí)例,是類中的一個(gè)個(gè)體,它具有該類的屬性。引用:當(dāng)你引入一個(gè)包時(shí),你可以引用該包內(nèi)的類的對(duì)象,也就是說,引用針對(duì)的 是類的對(duì)象。定義一個(gè)類class ccircle int r= 20;float d=2*r;public class zh public static void main (string args)ccircle cir1 = new ccircle();ccir
17、cle cir2= new ccircle();/在這個(gè)時(shí)候已經(jīng)在堆中開辟了兩個(gè)內(nèi)存空 間用system.out.pri ntln( cir1 .r);/*引用類的對(duì)象,基本數(shù)據(jù)類型變量名輸出的是值,內(nèi)存分配在棧。 而引用類型輸出的是地址,內(nèi)存分配在堆。sy stem. out. printin (cir1);sy stem. out. print in (cir2);%1. 算術(shù)運(yùn)算符+* % (取模)/(取商)比較運(yùn)算符 基木數(shù)據(jù)類型 值 引用(引用的是比較地址)!=比較兩個(gè)對(duì)象的值如p.equals(p1)邏輯運(yùn)算符&&|?:%1. 流程控制1順序結(jié)構(gòu)任何編程語言中最常見
18、的程序結(jié)構(gòu)就是順序結(jié)構(gòu)。順序結(jié)構(gòu)就是程序從上到卜一行 一行地執(zhí)行,中間沒有任何判斷和跳轉(zhuǎn)。如果main方法多行代碼之間沒有任何流程控制,則程序總是從上向下依次執(zhí)行,排 在前面的代碼先執(zhí)行,排在后面的代碼后執(zhí)行。這意味著:如果沒有流程控制,java 方法里的語句是一個(gè)順序執(zhí)行流,從上向下依次執(zhí)行每條語句。2分支結(jié)構(gòu)java提供了兩種常見的分支控制結(jié)構(gòu):if語句和switch語句,其屮if語句使用布爾 表達(dá)式或布爾值作為分支條件來進(jìn)行分支控制;而switch語句則用于對(duì)多個(gè)整型值 進(jìn)行匹配,從而實(shí)現(xiàn)分支控制。條件語句if語句使用布爾表達(dá)式或布爾值作為分支條件來進(jìn)行分支控制,其中if語句有如下 三種
19、形式:第一種形式:if (logic expression )statements.第二種形式:訐(logic expression)statements-elsestatements.第三種形式:訐(logic expression)statements.else if(logic expression) statements.可以有零個(gè)或多個(gè)else if語句else/最后的else語句也nj以省略statement.在上面訐語言的三種形式屮,放在訐之后的括號(hào)里的只能是一個(gè)邏輯表達(dá)式,即這 個(gè)表達(dá)式的返回值只能是true或false。第二種情形和第三種情形是相通的,如果第 三種形式中els
20、e if塊不出現(xiàn),則變成了第二種形式。上面的條件語句中,if(logic expression)、else if(logic expression)以及 else 后花括號(hào)括 起來多行代碼被稱為代碼塊,一個(gè)代碼塊通常被當(dāng)成一個(gè)整體來執(zhí)行(除菲運(yùn)行過 程屮遇到return, break, continue等關(guān)鍵字,或者遇到了異常),因此這個(gè)代碼塊也 被稱為條件執(zhí)行體。例如如下程序:public class testlfpublic static void main(string args)int age = 30;if (age > 20)/只有當(dāng)age > 20時(shí),下面花括號(hào)括起來
21、的語句塊才會(huì)執(zhí)行花括號(hào)括起來的語句是一個(gè)整體,要么一-起執(zhí)行,要么一起不會(huì)執(zhí)行system.out.println('年齡已經(jīng)大于 20 歲 了 ”);system.out.println("20歲以上的人應(yīng)該學(xué)會(huì)承擔(dān)責(zé)任”);因此,如果 if(logic expression)> else if(logic expression)和 else 后的語句塊只有一行 語句時(shí),則可以省略花括號(hào),因?yàn)閱涡姓Z句本身就是-個(gè)整體,無須花括號(hào)來把它 們定義成一個(gè)整體。下面代碼完全可以正常執(zhí)行:定義變量a,并為其賦值int a = 5;if (a > 4)如果a>4,執(zhí)行
22、下面的執(zhí)行體,只有一行代碼作為代碼塊system.out.println("a 大于 4”);else/否則,執(zhí)行下面的執(zhí)行體,只有一行代碼作為代碼塊system.out.println(ha 不大于 4");通常,我們建議不更省略if、else、else if后執(zhí)行塊的花括號(hào),即使條件執(zhí)行體只有 一行代碼,因?yàn)楸A艋ɡㄌ?hào)會(huì)有更好的可讀性,而且保留花括號(hào)會(huì)減少發(fā)生錯(cuò)誤的 可能,例如如下代碼,則不可正常執(zhí)行:定義變量b ,并為其賦值int b = 5;if (b > 4)如果b>4,執(zhí)行下面的執(zhí)行體,只有一行代碼作為代碼塊system.out.println(nb
23、 人于 4”);else否則,執(zhí)行下面的執(zhí)行體b-;對(duì)于下面代碼而言,它已經(jīng)不再是條件執(zhí)行體的一部分,因此總會(huì)執(zhí)行 system.out.println("b 不大于 4”);丄面代碼中以粗體字標(biāo)識(shí)的代碼行:system.out.println(nb不大于4”);,將總是會(huì)執(zhí) 行,因?yàn)檫@行代碼并不屬于else后的條件執(zhí)行體,else后的條件執(zhí)行體就是b-;這 行代碼。3控制循環(huán)結(jié)構(gòu)java語言沒有提供goto語句來控制程序的跳轉(zhuǎn),這種做法提高了程序流程控制的可 讀性,但降低了程序流程控制的靈活性。為了彌補(bǔ)這種不足,java提供了 continue 和break來控制循環(huán)結(jié)構(gòu)。除此之外
24、,retum可以結(jié)束整個(gè)方法,當(dāng)然也就結(jié)束了一 次循環(huán)。在某些時(shí)候,我們需更在某種條件出現(xiàn)時(shí),強(qiáng)行終止結(jié)束循環(huán),而不是等 到循環(huán)條件為false時(shí)。此時(shí),可以使用break來完成這個(gè)功能。break用于完全結(jié) 束一個(gè)循環(huán),跳出循環(huán)體。不管是哪種循環(huán),一目在循環(huán)體屮遇到break,系統(tǒng)將完 全結(jié)束該循環(huán),開始執(zhí)行循環(huán)之后的代碼。例如如下程序:public class testbreakpublic static void main(string args)一個(gè)簡(jiǎn)單的for循環(huán)for (int i = 0; i < 10 ; i+ )system.out.println("i 的值是” + i);if (i = 2)執(zhí)行該語句時(shí)將結(jié)束循環(huán)break;運(yùn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療軟件購(gòu)買合同范本
- 縣城餐飲轉(zhuǎn)讓合同范本
- 三個(gè)合伙購(gòu)房合同范例
- 廚師保密協(xié)議合同范本
- 原油供銷合同范例
- 合伙創(chuàng)業(yè)辦廠合同范本
- 賣賣布合同范本
- 加工磚頭銷售合同范本
- 人保車險(xiǎn)客戶專員合同范本
- 分期購(gòu)買釘鞋合同范本
- 加德納多元智能測(cè)評(píng)量表【復(fù)制】
- 譯林英語四年級(jí)下冊(cè)4B各單元教學(xué)反思
- 鉆芯法檢測(cè)混凝土抗壓強(qiáng)度原始記錄1
- DB61∕T 1186-2018 花椒主要病蟲害防治技術(shù)規(guī)范
- QC成果提高大跨度多節(jié)點(diǎn)曲面鋼桁架一次安裝合格率
- 國(guó)家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)
- 環(huán)氧乙烷固定床反應(yīng)器課程設(shè)計(jì)
- 班、團(tuán)、隊(duì)一體化建設(shè)實(shí)施方案
- 如何建構(gòu)結(jié)構(gòu)性思維 課后測(cè)試
- 施工方案(行車拆除)
- 開網(wǎng)店全部流程PPT課件
評(píng)論
0/150
提交評(píng)論