Java達(dá)內(nèi)學(xué)習(xí)筆記3_第1頁(yè)
Java達(dá)內(nèi)學(xué)習(xí)筆記3_第2頁(yè)
Java達(dá)內(nèi)學(xué)習(xí)筆記3_第3頁(yè)
Java達(dá)內(nèi)學(xué)習(xí)筆記3_第4頁(yè)
Java達(dá)內(nèi)學(xué)習(xí)筆記3_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

內(nèi)存分類(lèi):棧內(nèi)存、堆內(nèi)存、寄存器、方法構(gòu)造(代碼段)、池內(nèi)存棧內(nèi)存:地址、基本內(nèi)存的值(棧內(nèi)存很小,不放對(duì)象)堆內(nèi)存:對(duì)象、地址、基本內(nèi)存的值、寄存器:運(yùn)算的中間值代碼段:如構(gòu)造方法等的代碼池內(nèi)存:長(zhǎng)放在內(nèi)存里面的東西放在池內(nèi)存里面(常駐內(nèi)存)Staffstaff=newStaff();執(zhí)行次序:①Staffstaff現(xiàn)在棧里面圖1-1publicclassTest{ publicstaticvoidmain(String[]args){ Staffstaff=newStaff(); staff.id="007"; ="詹姆斯.邦德"; staff.salary=10000.0F; staff.faSalary(); }}publicclassStaff{ Stringid; Stringname; floatsalary; publicvoidfaSalary(){ System.out.println(salary); }}編譯:javac-d.Hello.java運(yùn)行:Javacom.tenara.Helloimport語(yǔ)句可以導(dǎo)入不同包的class文虛擬機(jī)先找棧,通過(guò)棧找到堆!垃圾回收機(jī)制回收的主要是堆內(nèi)存里面的東西。GC是怎么判斷堆內(nèi)存里面的東西已經(jīng)成為垃圾可以被回收了?GC是從棧找到堆,如果堆里面的內(nèi)容在棧里面沒(méi)有對(duì)應(yīng)的地址變?cè)?,則被視為垃圾清理掉!importjava.util.Scanner;//掃描鍵盤(pán)publicclassTest2{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); //掃描字符串 Stringstr=sc.next(); System.out.println("輸入了"+str); //掃描整數(shù) intaa=sc.nextInt(); System.out.println("輸入了"+aa); //掃描double doubledd=sc.nextDouble(); System.out.println("輸入了"+dd); }}Operators1、"()"優(yōu)先級(jí)高2、"="優(yōu)先級(jí)低Assignmentoperators=+=-=%=*=/=<<=>>=>>>=&=^=|=publicclassTest6{ publicstaticvoidmain(String[]arsg){ byteb1=2; byteb2=3; b1=(byte)(b1+b2);//語(yǔ)句1加法,轉(zhuǎn)int b1+=b2;//語(yǔ)句2賦值,不轉(zhuǎn)int }}b1+=b2;是否和語(yǔ)句b1=b1+b2完全等價(jià)?答案是否定的,上面程序中的語(yǔ)句1和語(yǔ)句2給出了證明。語(yǔ)句1中byte類(lèi)型參與運(yùn)算時(shí)要先轉(zhuǎn)換為int類(lèi)型,因此要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。而語(yǔ)句2中,自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。(我的理解:我們可以把“b11+=b2;”看做是對(duì)“b1=(byte)(b1+b2);”的優(yōu)化!)publicclassTest10{ publicstaticvoidmain(String[]args){ byteb1=100; byteb11=100; byteb2=120; b1=(byte)(b1+b2); System.out.println(b1); b11+=b2; System.out.println(b11); }}運(yùn)行結(jié)果為:-36-36Comparisonoperators>>=<<=instanceofEqualityoperators==!=Arithmeticoperators+-*/%importjava.util.Scanner;publicclassTest4{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); intsecond=sc.nextInt(); inthour=second/3600; intminute=second%3600/60; intsecond2=second%60; System.out.println(second+"秒="+hour+"小時(shí)" +minute+"分鐘"+second2+"秒"); }}Shiftoperators>><<>>>Bitwiseoperators&|^(按位異或)~(按位取反)Logicoperators&&(邏輯與)&||(邏輯或)|?。ㄟ壿嫹牵?&和&都是邏輯與,它們之間的區(qū)別:&&是短路邏輯與,有短路的效果,效率更高。||和|都是邏輯或,它們之間的區(qū)別:||是短路邏輯或,有短路的效果,效率更高。publicclassTest8{ @SuppressWarnings("unused") publicstaticvoidmain(String[]args){ inti=6; System.out.println(1>2&&(5<i++)); System.out.println(i); intj=6; System.out.println(1>2&(5<j++)); System.out.println(j); intm=6; System.out.println(2>1||(5<m++)); System.out.println(m); intn=6; System.out.println(2>1|(5<n++)); System.out.println(n); }}運(yùn)行結(jié)果:false6false7true6true7Conditionaloperators?:publicclassTest9{ publicstaticvoidmain(String[]args){ inta=5; intb=3; System.out.println(a>b?a:b); System.out.println(a>b?"ok":4); }}注意第二個(gè)輸出語(yǔ)句中"ok"和4的類(lèi)型不同,有的JDK版本可能要求條件語(yǔ)句中這兩個(gè)語(yǔ)句的類(lèi)型必須相同,如果運(yùn)行出錯(cuò),可以更換JDK的版本。Otheroperators++--publicclassTest5{ publicstaticvoidmain(String[]args){ inti=2; System.out.println(i++);//2 System.out.println(i);//3 inta=i+++++i;//3+5=8 System.out.println(a); System.out.println(i);//5 for(intj=0;j<1000;j++){ i=i++; } System.out.println(i);//5 }}程序分析:為什么經(jīng)過(guò)1000次循環(huán)后,i=i++;的結(jié)構(gòu)仍然是5?(達(dá)內(nèi)老師講解)++的運(yùn)算符優(yōu)先級(jí)高于=(賦值)運(yùn)算符,i++的運(yùn)算結(jié)果為5,送入寄存器,這時(shí)寄存器中存放的值為5。然后i的值變?yōu)?,繼續(xù)執(zhí)行賦值語(yǔ)句,賦值時(shí),把寄存器中的值賦5值給i,因此i的值是在5和6之間來(lái)回切換的!(我的理解)++的運(yùn)算符優(yōu)先級(jí)高于=(賦值)運(yùn)算符,因此這個(gè)表達(dá)式的執(zhí)行順序如下:①運(yùn)算i++這個(gè)表達(dá)式的結(jié)果為5。---->②i的值自加1(i++先參與運(yùn)算,再自加1),即i的值變?yōu)?。---->③將i++這個(gè)表達(dá)式的值,即第①部的結(jié)果賦值給變量i。("="表達(dá)式是將右邊表達(dá)式的值賦值與左邊的變量,因此是將5賦于i,而不是將6賦于

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論