版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JavaSE編程基礎(chǔ)第一章初識(shí)Java你學(xué)習(xí)編程的目的是什么?學(xué)習(xí)編程最快的辦法是什么?一個(gè)技術(shù)點(diǎn),怎么樣才能算學(xué)會(huì)?需要能默寫出來嗎?北京尚學(xué)堂旗下“百戰(zhàn)程序員之Java1573題”可以在哪里學(xué)習(xí)?為什么需要加入“百戰(zhàn)程序員各城市戰(zhàn)團(tuán)”?哪個(gè)網(wǎng)站會(huì)公布最新的“百戰(zhàn)程序員”視頻和資料?TOC\o"1-5"\h\z說出計(jì)算機(jī)語言為什么按照第一代、第二代、第三代發(fā)展 ?Java 有什么核心優(yōu)勢讓其流行 ?Java的三個(gè)版本是什么 ?Java是哪個(gè)公司發(fā)明的 ?現(xiàn)在這家公司處境如何?為什么?Java的跨平臺(tái)是通過什么實(shí)現(xiàn)的?Java語言釋型還是編譯型 ?還是兩者都是 ?JDK、JRE、JVM的全稱是?JDK包含JRE,這句t對嗎?【上機(jī)】熟悉 DOS命令行方式的常用命令:dir、cd等.DOS下,自動(dòng)補(bǔ)齊命令的鍵是哪個(gè) ?DOS下,想查找以前執(zhí)行的命令用哪個(gè)鍵 ?DOS下,自動(dòng)補(bǔ)齊命令的鍵是 Tab鍵DOS下,想查找以前執(zhí)行的命令用上下箭頭 ,T或J鍵DOS下,dir命令表示什么含義 ?cd表示什么含義?dir:查看某個(gè)目錄下的子目錄和文件cd:改變當(dāng)前目錄【上機(jī)】安裝JDK、配置環(huán)境變量、并寫出自己的第一個(gè) HelloWorld程序?yàn)槭裁床捎肑AVA_HOME的方式配置環(huán)境變量較好?
使用JAVA_HOME路徑的重用 ,避免由于 JDK安裝路徑變化而修改多個(gè)環(huán)境變量publicclass的類名必須跟文件名保持一致嗎 ?publicclass的類名必須跟文件名保持一致編程風(fēng)格一定要: 成對編程和縮進(jìn)。用文字或代碼說明如何實(shí)現(xiàn)成對編程和縮進(jìn)。在編輯器中使用 tab鍵完成縮進(jìn)System.out.println("hi"); 這句代碼能否順利執(zhí)行 ?可以順利執(zhí)行一個(gè)Java源文件可以寫多個(gè) class嗎?編譯后,會(huì)不會(huì)生成多個(gè) class文件?一個(gè)Java源文件可以寫多個(gè) class,編譯后會(huì)生成多個(gè) class文件編程時(shí),為什么需要注釋 ?注釋的類型?注釋就是程序員為讀者做的說明 ,是提高程序可讀性的一種手段 ;注釋同時(shí)也是調(diào)試代碼時(shí)的一種手段 ,可以對某些不要執(zhí)行的代碼進(jìn)行注釋;注釋分為單行注釋 ,多行注釋和文檔注釋三種類型多行注釋能不能嵌套使用?多行注釋不能嵌套使用【上機(jī)】使用 snagit/ FastStoneCapture軟件截圖【上機(jī)】使用 pdf閱讀器做筆記,閱讀相關(guān)電子書文檔【上機(jī)】使用錄屏軟件Camtasia錄制和轉(zhuǎn)換視頻【上機(jī)】使用 onenote 記筆記和畫圖【上機(jī)】使用億圖軟件畫出相關(guān)圖形階段項(xiàng)目課程 1【項(xiàng)目】臺(tái)球游戲小項(xiàng)目練習(xí)目標(biāo):找到敲代碼的感覺收獲敲代碼的興趣作出效果,找到自信從一開始就學(xué)會(huì)調(diào)試錯(cuò)誤掌握J(rèn)ava代碼基本結(jié)構(gòu)注意:不要求學(xué)生理解代碼的語法功能,只要按照代碼結(jié)構(gòu)輸入代碼,能夠經(jīng)過調(diào)試實(shí)現(xiàn)代碼的正常運(yùn)行即可;全部講解和練習(xí)時(shí)間控制在2小時(shí)以內(nèi)項(xiàng)目需求:桌球在球桌中按照一定線路和角度移動(dòng);遇到邊框會(huì)自動(dòng)彈回±±1要求:即使看不太懂,也要照著敲如下游戲代碼,至少5遍。要求所有字符和源文件一致。如果報(bào)異常,請細(xì)心看所在行和老師代碼有何區(qū)別:importjava.awt.*;publicclassBallGameextendsFrame{//球桌和桌球圖片Imageball=Toolkit.getDefaultToolkit().getImage("images/ball.png");Imagedesk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");//桌球的起始位置doublex=100;doubley=100;〃桌球移動(dòng)的初始角度60°doubledegree=3.14/3;/***繪制一次桌面和桌球*/publicvoidpaint(Graphicsg){//繪制一次桌面和桌球System.out.println("窗口被畫了一次!”);g.drawImage(desk,0,0,null);g.drawImage(ball,(int)x,(int)y,null);//桌球的下一次坐標(biāo)位置x=x+10*Math.cos(degree);y=y+10*Math.sin(degree);//到了球桌四個(gè)邊框后桌球角度的變化//1.如果到了底部,就要變角度if(y>480-30-40){//480是球桌高度,30是球的直徑,40是桌邊框?qū)挾萪egree=-degree;}//2.如果到了右邊界,就要變角度if(x>856-30-40){degree=3.14-degree;}//3.如果到了上邊界,就要變角度if(x<20+20){degree=3.14-degree;}//4.如果到了左邊界,就要變角度if(y<20+20){degree=-degree;}}/***繪制多次次桌面和桌球*/voidlaunchFrame(){//四個(gè)方法什么含義,你能根據(jù)運(yùn)行結(jié)果看懂嗎setSize(856,480);setLocation(50,50);setTitle("尚學(xué)堂一程旭源作品");setVisible(true);//每隔40毫秒繪制一次桌面和桌球while(true){repaint();//重畫窗口!try{Thread.sleep(40);//40ms 1s=1000ms}catch(Exceptione){e.printStackTrace();}}}publicstaticvoidmain(String口args){System.out.println("我是尚學(xué)堂的程旭源!");BallGamebg=newBallGame();bg.launchFrame();}}第二章數(shù)據(jù)類型和運(yùn)算符常用的進(jìn)制有哪些?十進(jìn)制,二進(jìn)制,八進(jìn)制,十六進(jìn)制如果將10進(jìn)制轉(zhuǎn)換為2進(jìn)制數(shù)據(jù)除2取余,逆序排列位、字節(jié)、字符的概念及其計(jì)數(shù)范圍?位:計(jì)算機(jī)存儲(chǔ)信息的基本單位 ,代碼一個(gè)二進(jìn)制數(shù)位 ,技術(shù)范圍:0或1字節(jié):8個(gè)連續(xù)的二進(jìn)制位為一個(gè)字符 ,可以存放 1個(gè)西文字符的編碼 ,計(jì)數(shù)范圍:-128~127字符:單引號(hào)用來表示字符常量 ,例如’A’,計(jì)數(shù)范圍 :0-65535之間的編碼標(biāo)識(shí)符的作用是什么?用作給變量 類和方法命名這個(gè)標(biāo)識(shí)符合法嗎 ?intaaa@bbb=33;TOC\o"1-5"\h\z不合法,只能含有 $和_,不可以含有 @標(biāo)識(shí)符能不能使用漢字開頭 ?為什么 ?可以,字母的含義包括 :英文漢字等(不建議使用漢字來定義標(biāo)識(shí)符 )Java中有沒有g(shù)oto語句?有沒有g(shù)oto關(guān)鍵字?java中沒有g(shù)oto語句 ,有g(shù)oto關(guān)鍵字byte,short,int,long類型,分別占用幾個(gè)字節(jié) ?表數(shù)范圍多大 ?byte:1個(gè)字節(jié) -128~127short:2個(gè)字節(jié) -2 15~215-1int:4個(gè)字節(jié) -2 32~232-1long:8個(gè)字節(jié) -2 64~264-1TOC\o"1-5"\h\z整型常數(shù)默認(rèn)是什么類型 ?int類型float,double分別占用幾個(gè)字節(jié) ?float:4個(gè)字節(jié)double:8個(gè)字節(jié)如何用科學(xué)計(jì)數(shù)法表示 3.14?314E-2浮點(diǎn)常量默認(rèn)是什么類型 ?double類型如下寫法哪些是不對的:byteb=30;bytec=500;longd=2343223;floatf=3.14;b不對,超出了byte的范圍d不對,缺少了f,應(yīng)該寫為3.14f或者3.14F浮點(diǎn)數(shù)能用于比較嗎 ?下面可能打印什么結(jié)果floatdi=423432423f;floatd2=d1+1;if(d1==d2){System.out.println("d1==d2");}else{System.out.println("d1!=d2");}能比較打印結(jié)果為d1==d2;float類型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式為科學(xué)計(jì)數(shù)法 ,且有效位數(shù)為7位,則di為4.2343242E7,d2 用科學(xué)計(jì)數(shù)法表示to9ngyang為4.2343242E7,因止匕d1==d2字符型變量幾個(gè)字節(jié)?這種寫法對不?charc="d";字符型變量占2個(gè)字節(jié)寫法不對應(yīng)該為charc='d';布爾型變量占用空間是一位還是一個(gè)字節(jié) ?布爾型變量占一位這種寫法好不好?if(b==true)不好,但是正確的寫法,為了避免不小心寫錯(cuò)成if(b=true),一般程序員都直接寫為if(b)常量的聲明使用哪個(gè)關(guān)鍵字?常量的聲明使用的關(guān)鍵字是 final常量的命名規(guī)范是?全部由大寫字幕組成,單詞間通過下劃線來界定解釋一下,駝峰原則?當(dāng)變量或者函數(shù)名稱需要多個(gè)英文單詞組成時(shí) ,首字母以小寫開頭,每個(gè)單詞首字母大寫(第一個(gè)單詞除外)使用Scanner接收鍵盤輸入,是否一定要加 importJava.util.*;?需要導(dǎo)包也可以寫為import.java.util.Scanner;類名的命名規(guī)則是?方法名、變量名的命名規(guī)則是否一致 ?常量的命名規(guī)則是?類的命名規(guī)則:每個(gè)英文單詞的首字母都大寫方法名,變量名的命名規(guī)則:第一個(gè)單詞首字母小寫,從第二個(gè)單詞后,每個(gè)單詞的首字母大寫常亮的命名規(guī)則:字母全部大寫引用類型是占用幾個(gè)字節(jié)?引用數(shù)據(jù)類型占4個(gè)字節(jié),用語存儲(chǔ)對象的引用算術(shù)運(yùn)算符中類型提升是怎么回事 ?a+b返回什么類型?inta=3;longb=3;類型提升指的是自動(dòng)類型轉(zhuǎn)換a+b返回的是long類型i++和++i的異同之處相同:都是變量i自增i++與++i作為一條單獨(dú)語句使用時(shí)沒有區(qū)別不同:i++是先使用i的值進(jìn)行起塔運(yùn)算 ,然后再自增 1;++1是先自增1,然后再使用i的值進(jìn)行起塔運(yùn)算關(guān)系運(yùn)算符中,能不能這么寫:"1<a<3"?不能;應(yīng)該寫為 a>1&&a<3邏輯運(yùn)算符|、&、!、八的含義及其運(yùn)算規(guī)則?|或:只要有一個(gè)為true,則直接返回 true&與:只要有一個(gè)為false,則直接返回false!非:如果為true,則返回false;如果為false,則返回true八異或:如果兩個(gè)操作數(shù)相同,則返回false,如果兩個(gè)操作數(shù)不同,則返回true運(yùn)算符||和|的異同之處相同:||和|都是邏輯運(yùn)算符 ,運(yùn)算規(guī)則都為只要有一個(gè)為 true,則直接返回true不同:||短路或:從左到右計(jì)算 ,如果符號(hào)左邊的操作數(shù)為 true,則不會(huì)繼續(xù)計(jì)算 ,直接返回true;如果符號(hào)左邊的操作數(shù)為false,則需要繼續(xù)計(jì)算|邏輯或:操作數(shù)左右兩邊的操作數(shù)都需要計(jì)算 ,不會(huì)發(fā)生短路||只是邏輯運(yùn)算符|還可以是位運(yùn)算符5*4最快的運(yùn)算方式是 ?位運(yùn)算5<<2這兩個(gè)表達(dá)式分別返回什么結(jié)果 ? ((1<3)?"a":"b")+3+4 , x=-2;x>0?1:(x==0?0:-1)a34-1TOC\o"1-5"\h\z什么情況下,加號(hào)會(huì)變成字符串連接符 ?“+”號(hào)左右一個(gè)為String類型時(shí) ,則編程字符連接符4&5,4|5的結(jié)果分別是多少 ?4&&5這個(gè)操作可行嗎 ?為什么 ?45不可行 ,因?yàn)?&&左右要求為 Boolean類型表達(dá)式int能否自動(dòng)轉(zhuǎn)換成 byte,short,char?是否有一定條件才能轉(zhuǎn)換 ?不能需要強(qiáng)制類型轉(zhuǎn)換long能自動(dòng)轉(zhuǎn)換成 int嗎?long能自動(dòng)轉(zhuǎn)換成 float嗎?不能能自動(dòng)類型轉(zhuǎn)換中,容量小和容量大指的是什么意思?容量大小指的不同數(shù)據(jù)類型的存儲(chǔ)數(shù)據(jù)的范圍強(qiáng)制類型轉(zhuǎn)換中,是否可能發(fā)生數(shù)據(jù)丟失 ?可能發(fā)生數(shù)據(jù)丟失布爾類型能否自動(dòng)轉(zhuǎn)換為int?如果不能,簡述理由。不能,因?yàn)轭愋筒黄ヅ湎旅鎯煞N寫法,哪個(gè)較好:70L*60*24*365*70*2070*60*24*365*70*20L第一種寫法好,第二種表達(dá)式的前半部分 70*60*24*365*70*20 的乘積有可能會(huì)超過 int的取值范圍 ,導(dǎo)致精度損失第三章控制語句三種控制結(jié)構(gòu)是什么?順序結(jié)構(gòu) ,選擇結(jié)構(gòu) ,循環(huán)結(jié)構(gòu)如果 if語句后面不寫{},if的控制范圍是否只限于第一句?是Math.random()是什么意思 ?如果想獲得 15-20之間的隨機(jī)數(shù),怎么辦?產(chǎn)生一個(gè)0-1之間的隨機(jī)數(shù) ,包含 0但不包含1;(int)(Math.random()*6)+15switch語句的功能是否完全可以使用ifelseifelse多選擇結(jié)構(gòu)來代替?如果是,為什么還需要 switch結(jié)構(gòu)?可以switch一般用來做多值的判斷,如果判斷條件為區(qū)間 ,則最好使用多重 if來做;如果是等值情況最好使用 switch來做switch中的表達(dá)式的結(jié)果需要是什么類型 ?byte,char,short,int;jdk1.5加入了枚舉 ;jdk1.7加入了String;switch語句中,一個(gè) case開始執(zhí)行后,什么時(shí)候結(jié)束執(zhí)行這個(gè) case的語句?遇到break結(jié)束執(zhí)行這個(gè) case語句switch語句中,default是否必須寫不是下面代碼有什么錯(cuò)誤?switch(c2){case'y';case'w';System.out.println("半元音");break;default:System.out.println("輔音)}TOC\o"1-5"\h\zcase后的表達(dá)式后面應(yīng)該是冒號(hào) :“:”循環(huán)結(jié)構(gòu)模擬了現(xiàn)實(shí)世界中的什么邏輯 ?循環(huán)結(jié)構(gòu)模擬了現(xiàn)實(shí)世界中“重復(fù)問題”的邏輯循環(huán)結(jié)構(gòu)的四種內(nèi)部結(jié)構(gòu)是什么 ?while(布爾表達(dá)式){循環(huán)體;}do{循環(huán)體;}while(布爾表達(dá)式)for(初始表達(dá)式;布爾表達(dá)式;迭代因子){循環(huán)體;}foreach(數(shù)組或集合中元素的類型 迭代變量:數(shù)組或集合名){循環(huán)體;}while和do-while有什么區(qū)別?當(dāng)條件不成立時(shí),do-while 至少執(zhí)行一次什么情況下,會(huì)出現(xiàn)死循環(huán) ?并寫出一個(gè)例子來循環(huán)條件始終成立時(shí)則會(huì)出現(xiàn)死循環(huán)while(true){循環(huán)體;}for循環(huán)相比while循環(huán)有什么優(yōu)勢?語法結(jié)構(gòu)比while簡便;通常用語解決循環(huán)次數(shù)固定的問題下面代碼都有什么問題:do{System.out.println(a);a++;}while(a<0)a沒有初始化下面代碼有錯(cuò)誤嗎就口果有,指出錯(cuò)誤:for(inti=0;i<=10;i++){System.out.println(i);//循環(huán)體}System.out.println("(((((("+i);i超出了作用域的范圍循環(huán)中,break的作用是?continue 的作用是?break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)中剩余的語句;continue用于跳過本次循環(huán),不執(zhí)行continue后的語句,繼續(xù)下一次循環(huán)語句塊能否使用外部的變量 ?語句塊中定義的變量,外部能否使用?語句塊能使用外部的變量,但是語句塊中定義的變量外部不能使用方法的定義中,是否必須要有返回值類型 ?如果確實(shí)不需返回值,使用哪個(gè)關(guān)鍵字聲明?返回值類型不是必須的;不需要返回值的使用關(guān)鍵字 void方法的定義中,return是否必須?它有什么作用?不是必須;return語句終止方法的運(yùn)行并指定要返回的數(shù)據(jù)Java中,參數(shù)的傳遞使用值傳遞還是引用傳遞 ?值傳遞方法定義中,形式參數(shù)和實(shí)際參數(shù)有什么區(qū)別 ?用自己的話描述。方法定義時(shí)的參數(shù)稱為形式參數(shù),需要數(shù)據(jù)類型方法調(diào)用時(shí)的參數(shù)稱為實(shí)際參數(shù),不需要類型,只需要值;方法定義時(shí),使用實(shí)參還是形參?形參定義形參時(shí),必須要寫變量類型嗎 ?必須實(shí)參類型是否必須和形參類型匹配 ?必須什么是方法的重載,有什么作用?方法重載:.在同一個(gè)類中.方法的名稱相同.參數(shù)列表不同.與訪問修飾符和返回值類型無關(guān).與異常無關(guān)作用:傳遞不同的參數(shù)實(shí)現(xiàn)相同的效果兩同三不同指的是7M回值不同構(gòu)成重載嗎?形參名稱不同^^成重載嗎?兩同:同一個(gè)類中,方法名稱相同;三不同:參數(shù)列表的參數(shù)類型、個(gè)數(shù)、順序不同 ;返回值不同構(gòu)不成方法重載;形參名稱不同構(gòu)不成方法重載;遞歸算法中,遞歸頭和遞歸體分別指什么 ?遞歸頭:什么時(shí)候不調(diào)用自己方法,即遞歸的結(jié)束條件;低柜體:什么時(shí)候需要調(diào)用自己方法,即自己調(diào)用自己遞歸算法的優(yōu)點(diǎn)是什么?缺點(diǎn)是什么?遞歸的優(yōu)點(diǎn):將問題逐漸簡單化;遞歸的缺點(diǎn):會(huì)占用大量的系統(tǒng)堆棧,內(nèi)存耗用多,在遞歸調(diào)用層次多時(shí)速度比循環(huán)慢得多【上機(jī)】使用遞歸算法完成階乘算法publicstaticintfactorial(intnumber){if(number==l){return1;}else{return (--number);}}【上機(jī)】根據(jù)隨機(jī)生成的的月份,打出該月份的天數(shù) .(不考慮閏年、閏月)publicstaticvoidsliowMonthDayO{intday;intrandom=(int)(Math.random()*12)+1;if(random==2){day=28;}?ls?if(randam==1|random=-3|random==5random==7random==8 random==10randomday-31;day=38;}system.ot/t.printlnfrandom+"月亙"+day+"大”);//也可以可switch語完殼表}100.【上機(jī)】用while和for循環(huán)分別計(jì)算100以內(nèi)奇數(shù)和偶數(shù)的和,并輸100.出。publicstaticvoidsumOddNumber(){inti=1;intsum=0;while(i<=100){sum+=i;i+-2;}System.Qut.p「intln( 之間所有膏數(shù)Q和是“+sum);)publicstaticvoidsumOddNunnber(){intsum=0;for(inti=l;i<=100;i+=2)(sum+=i;}0yst2ni.Qut.ppintln("l—10。之間所為奇費(fèi)力和是“+sum);}publicstaticvoidsumEvenNumber(){inti=2;intsum=%while(i<=100)(sum+=i;i+=2;}Systenuou*.ppintln(T-190之間所自喝數(shù)的和是"+sum);)publicstaticvoidsumEvenNumber(){intsum=0;for(inti=2;i<=109;i+=2){sum+=i;}System,口口亡.ppintln("l-l。。J三所有偶般的和是"+sum);).【上機(jī)】用while和for循環(huán)輸出1-1000之間能被5整除的數(shù),且每行輸出3個(gè)。publicstaticvoidtext(){inti=0;intcount=0;while(i++<=1009)(if(i%5==0){System.out.print(i+"”);if(count++%3==0){System.out.println();}}}}publicstaticvoidtext(){intcount=0;for(inti=l;i<=1060;i++){if(l%5=0){System.out.print(i+"if(count++%3==0)(System,owt.println();}).【上機(jī)】打印出九九乘法表publicstaticvoidbox(){forfinti=*or(intj-l;j<-i;j++){System,out.print(j+叱“+i+ +(i*j)十"\t");}System.out.println();}}.【上機(jī)】編程求:匯1+E2+??…+E100publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintsum=0;for(inti=5um+=getSum(i);}|System.out?println(sum);}publicstaticintgetSum(intnumber){if(number==1){return1;}else(returnnumber+getSum(--nurber);}}.【上機(jī)】生成0-100隨機(jī)數(shù),直到生成88為止,停止循環(huán)!publicstaticvoidnew88^){intrandom;do{random=(int)(Math.random()"101);}while(random!=88);System.out.println(random);}.【上機(jī)】把100?150之間不能被3整除的數(shù)輸出publicstaticvoidtest(){for(inti=100;i<=150;i++){if(i%3!=0)(System.out.printIn(i);}}).【上機(jī)】打印出實(shí)心10*10正方形、空心10*10正方形publicstaticvoidcreateVolidSquare(){for(inti=1;i<=16;i++){for(intj=1;j<=10;j++){System.out*print("*");}System.out.println();})publicstaticvoidcreateVainSquanef){for(inti=l;i<=10;i++){for(intj=1;j<=10;j++)(if(i==1||i==10)(Systen,out<print”);}el$e{if(j==1||j==10){System.out*print("*");Jelse'fSystem.out.print(M");)})System.out.println();)}.【上機(jī)】打印出實(shí)心11*11菱形,空心11*11菱形publicstaticvoidcreateVolidDiamond(;){for(inti=0;i<6;i++){for(intj=0;j<5-ijj++){System.out.print("");}for(intj=0;j<2*i+l;j++){System,out.print(,,H,}for(intj=0;j<5-i;j++){System.out*print(Ir”);}System,ouftprintln();}for(inti=0;i<5;i++){for(intj=0;j<i+l;j++){System.out.print("");}for(intj-9;j<9-2*i]j++){5y5sm,out.pririt(=*);}for(intj=0;j<i+l;j++)(System.out.print(n)System.cut.println();)}TpublicstaticvoidcreateVainOiamond()tfor(int1=0;i<6;i++){for(intj=0;System.out.print("}for(intj=6;j++)(System.out.print(j==0||j==2*i?”*1T:"");}for(intj■0;jc5-i;j++){System.out.print(M");}System.out.println();}for(inti=0;i<5;i-F+){for(intj"?;j++){System,out.print(11");}forfintj= j<9-2*i;j++){System,out?print(j==611j==8-2*1?"*"r:,r")j)for(intj=9;7<i+l;j++){SystemTout.print("");)System.?println();}11.【上機(jī)】將如上所有上機(jī)相關(guān)算法的作業(yè),封裝成方法,便于重用。第四章數(shù)組.數(shù)組的類型可以為任意類型嗎 ?可以.數(shù)組中的元素的類型必須是相同的嗎 ?數(shù)組中的元素是有序的嗎?必須相同是;根據(jù)索引排序.數(shù)組的長度可變不?數(shù)組的長度使用哪個(gè)屬性?一旦聲明不可變length.數(shù)組元素下標(biāo)(或索引)的范圍是?0到數(shù)組.length-1.數(shù)組也是引用類型嗎? 數(shù)組也是對象,這句話對嗎?是對.數(shù)組中的元素就像對象中的成員變量一樣, 初始化方式也一樣。這句話對嗎?正確.【上機(jī)】數(shù)組的三種初始化方式是什么 ?并測試練習(xí)相關(guān)代碼靜態(tài)初始化動(dòng)態(tài)初始化默認(rèn)初始化.數(shù)組的靜態(tài)初始化代碼,下面代碼有沒有不合理的地方:Dog口dogs2={newDog("大黃",1),newDog("小強(qiáng)",2),};有newDog("小強(qiáng)”,2),后的逗號(hào)應(yīng)該去掉.完成如下代碼:char口s;s=newchar[26];for(inti=0;i<26;i++){s[i]=(char)( 'A'+i);System.out.println(s[i]);//System.out.println( "s["+i+"尸"+s[i]);}.下面的數(shù)組定義哪些是正確的?A:inta口口=newint[3,3];B:inta[3][3]=newint口口;C:inta口口=newint[3][3];D:int[]a[]=newint[3][3];E:int[川a=newint[3][3];CDE正確.請?jiān)谙旅嬲Z句中找出一個(gè)正確的。int arr1[2][3];int[]口a2=newint[2肛int[]口 arr2=newint口[4];int arr3口[4]=newint[3][4];B正確.【上機(jī)】定義一個(gè)長度為10的一維字符串?dāng)?shù)組, 在每一個(gè)元素存放一個(gè)單詞;然后運(yùn)行時(shí)從命令行輸入一個(gè)單詞,程序判斷數(shù)組是否包含有這個(gè)單詞,包含這個(gè)單詞就打印出“Yes”,不包含就打印出“No”。.冒泡排序的基本思路.整個(gè)數(shù)列分成兩部分:前面是無序數(shù)列后面是有序數(shù)列.初始狀態(tài)下,整個(gè)數(shù)列都是無序的,有序數(shù)列是空.如果一個(gè)數(shù)列有n個(gè)元素,則至多需要n-1趟循環(huán)才能保證數(shù)列有序.每一趟循環(huán)可以讓無序數(shù)列中最大數(shù)排到最后 ,(也就是說有序數(shù)列的元素個(gè)數(shù)增加1).每一趟循環(huán)都從數(shù)列的第一個(gè)元素開始進(jìn)行比較 ,一次比較相鄰的兩個(gè)元素,比較到無序數(shù)列的末尾即可(而不是數(shù)列的末尾).如果前一個(gè)大于后一個(gè),交換.根據(jù)是否發(fā)生交換判斷數(shù)組是否已經(jīng)有序.使用冒泡排序完成數(shù)組元素的排序publicstaticvoidbubble(){int[]arr={1—forfinti=0;i<arr.lengthbooleanflag=true)for(,intj=0;j<arr.lengthif(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;flag=false;)}if(flag){|System.out.println(“跳出"):break;))for(inti=0;i<arr.length;i++){SystenisOut.print(arr[i]+T,\fr);|.可變參數(shù)的作用及其用法作用:適用于參數(shù)個(gè)數(shù)不確定、類型確定的情況 Java把可變參數(shù)當(dāng)作數(shù)組處理用法:只能出現(xiàn)在參數(shù)列表的最后…位于變量類型和變量名之間,前后有無空格都可以調(diào)用可變參數(shù)的方法時(shí)編譯器為該可變參數(shù)隱含創(chuàng)建一個(gè)數(shù)組 ,在方法體中以數(shù)組的形式訪問可變參數(shù).如何給main方法傳遞實(shí)參通過命令行參數(shù)給main方法傳遞實(shí)參.【上機(jī)】用二重循環(huán)求出二維數(shù)組 b所有元素的和:int叩b={{11},{21,22},{31,32,33}}publicstaticvoidsum2d(){int[][]b={{llh{21j221/31j32j33)};intsum=0;for(int1=6;i<b.length;i++){for(intj=0;j<b[i].length;j++){sum+=b[i][j];})System,outtprintIn(sun);}.Eclipse可以開發(fā)Java,可以開發(fā)c++嗎?可以.Eclipse中的debug模式有什么好處?修正語法錯(cuò)誤和邏輯錯(cuò)誤的過程,保證程序的正確性.Eclipse中運(yùn)行一個(gè)Java程序,如何操作?右鍵單擊runAs,再選擇javaApplication;單擊工具欄綠色的運(yùn)行按鈕;快捷鍵ctrl+F11.Eclipse需要安裝嗎?使用eclipse需要安裝JDK嗎?.【上機(jī)】熟悉Eclipse開發(fā)環(huán)境,建立一個(gè) Java項(xiàng)目,并運(yùn)行一個(gè)類.【上機(jī)】熟悉Eclipse的調(diào)試環(huán)境(debug),建立一個(gè)Java項(xiàng)目,并使用debug進(jìn)行調(diào)試,測試程序每步執(zhí)行情況。.假如我找不到packageexplore視圖了,怎么樣才能讓他出現(xiàn) ?菜單欄—WindowfShowViewfpackageexplore階段項(xiàng)目課程2.【項(xiàng)目】福彩雙色球項(xiàng)目練習(xí)目標(biāo).掌握數(shù)據(jù)類型和運(yùn)算符.掌握流程控制.掌握數(shù)組.掌握方法的定義和調(diào)用.提高代碼調(diào)試能力全部講解和練習(xí)時(shí)間控制在 4小時(shí)以內(nèi)項(xiàng)目需求雙色球投注區(qū)分為紅色球號(hào)碼區(qū)和藍(lán)色球號(hào)碼區(qū),紅色球號(hào)碼區(qū)由1-33共33個(gè)號(hào)碼組成,藍(lán)色球號(hào)碼區(qū)由 1-16共16個(gè)號(hào)碼組成。投注時(shí)選擇6個(gè)紅球號(hào)碼和1個(gè)藍(lán)球號(hào)碼組成一注進(jìn)行單式投注,每注金額 2元。中獎(jiǎng)規(guī)則同福彩雙色球規(guī)則;顯示中獎(jiǎng)結(jié)果的同時(shí)顯示您一共下注人民幣??元,累計(jì)中獎(jiǎng)人民幣??元迎進(jìn)入雙色球一彩票系統(tǒng)*****3.退出括選擇菜單T.. 一擴(kuò)展:.按照自己的思路和老師的代碼模板,設(shè)計(jì)一個(gè)小的作業(yè)項(xiàng)目。.將上一個(gè)作業(yè)作業(yè)錄制成自己的教學(xué)視頻第五章面向?qū)ο骉OC\o"1-5"\h\z.簡述面向?qū)ο蠛兔嫦蜻^程的區(qū)別和聯(lián)系 ?兩者都是軟件開發(fā)思想,先有面向過程,后有面向?qū)ο?在大型項(xiàng)目中,針對面向過程的不足退出了面向?qū)ο箝_發(fā)思想 ^區(qū)別:.編程思路不同:面向過程以實(shí)現(xiàn)功能的函數(shù)開發(fā)為主 ,而面向?qū)ο笠紫瘸橄蟪鲱?、屬性及其方法,然后通過實(shí)例化類、執(zhí)彳T方法來完成功能 ..封裝性:都居右封裝性,但是面向過程封裝的是功能,而面向?qū)ο蠓庋b的是數(shù)據(jù)和功能.面向?qū)ο缶哂欣^承性和多態(tài)性 ,而面向過程沒有繼承性和多態(tài)性 ,所以面向?qū)ο髢?yōu)勢更明顯.對象和類白關(guān)系是?類是抽象的;對象是具體的,是類抽象概念的實(shí)物表達(dá)棧的特點(diǎn)是?存放什么內(nèi)容?棧的特點(diǎn):先進(jìn)后出在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配堆得特點(diǎn)是?存放什么內(nèi)容?特點(diǎn):.堆內(nèi)存有內(nèi)存地址,都是將內(nèi)存的地址賦值給引用變量.堆內(nèi)存變量無用后由垃圾回收機(jī)制不定時(shí)回收.堆內(nèi)存會(huì)自動(dòng)初始化堆內(nèi)存存放引用數(shù)據(jù)類,以及new出來的都在堆內(nèi)存里面【上機(jī)】畫出如下程序的內(nèi)存結(jié)構(gòu)(課堂上的代碼)://測試類和對象publicclassTestObject{publicstaticvoidmain(String口args){Carc1=newCar();c1.changeColor("紅色)c1.showColor();System.out.println(Car.tyreNum);System.out.println(c1.tyreNum);Carc2=newCar();Enginee=newEngine();e.speed=1000;e.weight=10;c2.engine=e;c2.color="黑色";c2.tyreNum=10;System.out.println(c1.tyreNum);}}classCar{staticinttyreNum=4;Engineengine;Stringcolor;//charsequence: 字符序歹UvoidchangeColor(Stringc){color=c;}voidshowColor(){System.out.println(" 我的顏色是:"+color);}}classEngine{intspeed;intweight;局部變量、成員變量、靜態(tài)變量分別怎么聲明 ?局部變量:在方法或代碼塊中生命的變量稱為局部變量成員變量:在類中聲明的變量稱為成員變量靜態(tài)變量:使用static修飾的成員變量稱為靜態(tài)變量局部變量使用之前,必須要手動(dòng)初始化嗎 ?必須如果不手動(dòng)指定成員變量的值,系統(tǒng)將會(huì)自動(dòng)初始化。那么初始化的規(guī)則是?整數(shù):0浮點(diǎn)數(shù):0.0char類型\u0000boolean:false引用數(shù)據(jù)類型:null成員變量從屬于誰?靜態(tài)變量又叫什么以及從屬于誰 ?局部變量從屬于誰?成員變量從屬于對象靜態(tài)變量又叫類變量從屬于類局部變量從屬于方法或代碼塊構(gòu)造方法的作用是兩個(gè):一個(gè)構(gòu)造類的對象,另一個(gè)作用是初始化對象的屬性。這種說法對不?對構(gòu)造方法的名稱必須保持跟類名一致嗎 ?必須構(gòu)造方法有沒有返回值?詳細(xì)用文字描述返回值問題。沒有返回值也不可以寫void構(gòu)造方法如何被調(diào)用?構(gòu)造方法在創(chuàng)建對象時(shí)被調(diào)用,使用關(guān)鍵字new構(gòu)造方法中能不能有 return語句?不能系統(tǒng)一定會(huì)給我們添加無參數(shù)的構(gòu)造方法嗎 ?請?jiān)敿?xì)解釋。如果手動(dòng)編寫了構(gòu)造方法之后,系統(tǒng)就不會(huì)添加無參構(gòu)造方法了下面的代碼有什么問題:classComputer{intprice;inttype;Stringbrand;publicvoidstart(){System.out.println("啟動(dòng)中");}computer(int_price,inttype,String_brand){//this.price=price;price=_price;type=type;brand=_brand;}}當(dāng)局部變量名稱與成員變量名稱相同時(shí) ,使用this代表成員變量type=type代碼應(yīng)改為this.type=type【上機(jī)】設(shè)計(jì)一個(gè)類代表二維空間的一個(gè)點(diǎn)publicclassPoint{privateintx;privateinty;publicintgetX(){returnx;}publicvoidsetx(intx){this.x=x;}publicintgetY(){returny;}publicvoidsetY(inty){this,y=y;)publicPoint(intx,inty){super();this=x;this,y=y;}publicPoint。{
super();}}【上機(jī)】設(shè)計(jì)一個(gè)類代表二維空間的一個(gè)圓。要求兩個(gè)成員變量。一個(gè)是圓心,一個(gè)是半徑提供計(jì)算面積的方法。classPoint{privateintx;privateinty;publicintgetX(){returnx;)publicvoidsetX(intx){this.x=x;)publicintgetY(){
returny;}publicvoidsetY(inty){this.y=y;}publicPoint(){)publicPoint(intx,inty){this.x=x;this.y=y;classCircle{privateintr;privatePointpoint;publicintgetR(){returnr;)publicvoidsetR(intr){this.r=p;}publicPointgetPoint(){returnpoint;}publicvoidsetPoint(Pointpoint){thispoint=point;}publicCircle(){}publicCircle(intPointpoint){this,r=r;this,point=point;}publicdoublearea(){returnMath.PI*Math.po⑷(r\2);【上機(jī)】為上述Cricle類添加一個(gè)方法,計(jì)算一個(gè)點(diǎn)(Point對象)是否在圓(Cricle對象)內(nèi),并寫程序驗(yàn)證cla^sCircle{privateintr;privatePointpoint;publicintgetR(){returnr;}publicvoidsetRfintr){this.r=r;}publicPointgetPoint。(returnpoint;}publicvoidsetPoint(Pointpoint){this.point=point;)publicCircle(){}| publicCircle(intrPointpoint){this,r=rjthis.point=point;}publicdoublearea(){returnHath.AZ*Math.po—P-2);)publicbooleanisTouch(Pointpoint"if(Math,sqrt(this.point?getX()-point.getX())]+Math this-point.getY()-point.getY())<^Math?pow(r,2)){returntrue;)returnfalse;))構(gòu)造方法能不能重載?可以this在普通方法中,指的是哪個(gè)對象 ?在構(gòu)造方法中,指的是?this在普通方法中總是指向調(diào)用該方法的對象 ;this在構(gòu)造方法中總是指向正要初始化的對象 ;static變量在內(nèi)存中放置在哪個(gè)區(qū)?static變量和方法為什么被稱為類變量和類方法?可以被該類所有對象共享嗎?static變量存在數(shù)據(jù)區(qū)static變量和方法歸類所有,使用類名去調(diào)用可以被該類的所有對象所共享靜態(tài)初始化塊和main方法哪個(gè)先被執(zhí)行?靜態(tài)初始化塊先執(zhí)行一個(gè)構(gòu)造方法調(diào)用另一個(gè)構(gòu)造方法怎么調(diào)用?this(),這樣的調(diào)用方式必須位于第一句嗎?TOC\o"1-5"\h\zthis()調(diào)用本類的無參構(gòu)造方法 ;this(實(shí)參列表 )調(diào)用本類的帶參構(gòu)造方法 ;super()調(diào)用直接父類的無參構(gòu)造方法 ;super(實(shí)參列表 )調(diào)用直接父類的帶參構(gòu)造方法 ;this()調(diào)用必須位于構(gòu)造方法的第一句 ;package的兩個(gè)作用是什么?解決類之間的重名問題為了便于管理類:合適的類位于合適的包增加package以后,我們在DOS下編譯怎么做 ?javac-dText.javaimport是用于導(dǎo)入包還是導(dǎo)入類?用于導(dǎo)入其他包中的類importjava.util.*;會(huì)不會(huì)降低程序運(yùn)行速度 ?為什么 ?不會(huì)降低程序的運(yùn)行速度;因?yàn)槭菍?dǎo)入該包下所有的類,降低的是程序的編譯速度importstatic靜態(tài)導(dǎo)入的作用是導(dǎo)入類還是導(dǎo)入類的靜態(tài)屬性和靜態(tài)方法?導(dǎo)入類的靜態(tài)屬性和靜態(tài)方法如果同時(shí)導(dǎo)入:Java.util.Date;Java.sql.Date;在程序中怎么區(qū)分它們 ?只能用包名+類名來顯示調(diào)用相關(guān)類例如:java.util.Datedate=newjava.util.Date();【上機(jī)】完成this、static、package、import的測試代碼Javadoc注釋怎么寫?/**開頭*/結(jié)尾Java項(xiàng)目的API文檔如何生成 ?請將步驟寫出。javadoc;源文件名.java面向?qū)ο笾械姆庋b,追求的是“高內(nèi)聚,低耦合”。解釋一下,內(nèi)聚什么?什么叫耦合 ?內(nèi)聚:程序內(nèi)的各個(gè)模塊之間的關(guān)系緊密程度耦合 :外部程序 (子程序)之間的關(guān)系緊密程度封裝的幾個(gè)關(guān)鍵字:private,default,protected,public的含義。private:私有的 ,只能本類訪問default:默認(rèn) (缺省 )的protected:受保護(hù)的public : 公 共 的publicprotected缺省(default)private本類可以可以可以可以同包子類可以可以可以不可以同包非子類可以可以可以不可以不同包子類可以■MH可以不同包且非子類一般屬性是否要設(shè)置為 private?是原因:防止屬性被賦值上非法的值如果屬性設(shè)置為private,如何讓外部訪問該屬性?編寫公有的取值get方法;提供getter、setter方法的操作,Eclipse中如何實(shí)現(xiàn)?菜單欄—Source-Generategettersandsetters或者alt+shift+s,再按r對于boolean類型的屬性,提供的getter方法是:getXXX或是isXXX?isXXXJavabean就是只包含屬性和相關(guān) getter、setter方法,不包含業(yè)務(wù)邏輯處理的類,這種說法對嗎?不對,Javabean中既可以封裝數(shù)據(jù)同時(shí)也可以封裝業(yè)務(wù)邏輯繼承的好處是什么?.繼承的本質(zhì)在于抽象,類是對對象的抽象,繼承是對某一批類的抽象.為了提高代碼的復(fù)用性Java中有多繼承嗎?C++中有多繼承嗎?單繼承相比多繼承優(yōu)勢在什么地方?java中只有單繼承C++中有多繼承使用單繼承有利于系統(tǒng)的維護(hù),使得類與類之間的關(guān)系簡單【上機(jī)】模仿課堂上動(dòng)物世界的例子,我們自己寫個(gè)例子Java的繼承使用哪個(gè)關(guān)鍵字實(shí)現(xiàn)extends定義某個(gè)類時(shí),如果沒有使用extends,那么繼承了哪個(gè)類 ?如果沒有使用extends,那么繼承了Object類Java中,有沒有多繼承 ?請說明,Java為什么取消了多繼承 ?java中沒有多繼承;使用單繼承有利于系統(tǒng)的維護(hù) ,使得類與類之間的關(guān)系簡單重寫(override)指的是什么?指的是子類對父類中方法的重寫TOC\o"1-5"\h\z假如父類有 main方法,子類能不能繼承 ?不能Object是所有類的根類嗎 ?是所有類的直接父類嗎 ?Object是所有類的根類不是所有類的直接父級(jí)在哪里查看 Object類的源代碼 ?jdk安裝木鹿中的src壓縮包中可以查看源碼Object類中的toString方法能否被子類重寫 ?請做測試。能【上機(jī)】完成繼承、Object相關(guān)的測試代碼super指的是什么?直接父類構(gòu)造方法中,第一句話總是 super嗎?也可以是this()TOC\o"1-5"\h\z敘述一下,有繼承結(jié)構(gòu)時(shí),構(gòu)造方法的調(diào)用順序 ?繼承條件下構(gòu)造方法的調(diào)用規(guī)則如果子類的構(gòu)造方法中沒有通過super顯式調(diào)用父類的有參構(gòu)造方法 ,也沒有通過this顯式調(diào)用自身的起塔構(gòu)造方法,則系統(tǒng)會(huì)默認(rèn)先調(diào)用父類的無參構(gòu)造方法.在這種情況下 ,寫不寫”super();”語句,效果是一樣的.如果子類的構(gòu)造方法中通過super顯式調(diào)用父類的有參構(gòu)造方法 ,那將執(zhí)行父類相應(yīng)構(gòu)造方法 ,而不執(zhí)行父類無參構(gòu)造方法 .如果子類的構(gòu)造方法中通過this顯式調(diào)用自身的其他構(gòu)造方法 ,在相應(yīng)構(gòu)造方法中應(yīng)用以上兩條規(guī)則 .特別注意的是 ,如果存在多級(jí)繼承關(guān)系 ,在創(chuàng)建一個(gè)子類對象時(shí) ,以上規(guī)則會(huì)多次向更高一級(jí)父類應(yīng)用 ,一直到執(zhí)行頂級(jí)父類 Object類的無參構(gòu)造方法為止.重寫中,子類的返回值類型可不可以跟父類不完全一致 ?說出你的理由??梢?子類的返回值可以與父類相同 ,也可以是父類方法返回值的子類如何判斷兩個(gè)對象內(nèi)容是否相同?重寫equals()有什么要求?判斷兩個(gè)對象的內(nèi)容是否相同 ,需要重學(xué) Object類的equals方法舉一個(gè)現(xiàn)實(shí)的例子,說明多態(tài)。多態(tài)的三個(gè)必要條件是什么?繼承 方法重寫 父類引用指向子類對象什么是向上轉(zhuǎn)型?什么是向下轉(zhuǎn)型?向上轉(zhuǎn)型 :父類引用指向子類對象向下轉(zhuǎn)型 :將父類引用轉(zhuǎn)成真實(shí)的子類對象多態(tài)的常用使用場合有哪些?使用父類做方法的形參 ,實(shí)參可以是該父類的任意子類類型使用父類做方法的返回值類型 ,返回值可以改父類的任意子類對象Java的方法綁定采用動(dòng)態(tài)綁定還是靜態(tài)綁定?靜態(tài)方法 ,構(gòu)造器 ,private方法 ,用關(guān)鍵字 super調(diào)用的方法是靜態(tài)綁定通過對象調(diào)用的方法 ,采用動(dòng)態(tài)綁定TOC\o"1-5"\h\zfinal修飾變量、方法、類分別表示什么含義 ?final修飾的變量不可改變 ,一旦賦予初值 ,就不能被重新賦值 ,稱為常量final修飾的方法不能被子類重寫final修飾的類不能有子類final修飾的方法能不能被重載 ?能不能被重寫 ?不能不能String類能不能被繼承 ?為什么 ?不能 ,因?yàn)?String類是使用final修飾的類包含抽象方法的類是抽象類嗎 ?抽象類一定包含抽象方法嗎?包含抽象方法的類是抽象類,抽象類中不一定含有抽象方法抽象類中能不能有普通方法?能不能定義構(gòu)造方法 ?能能抽象類能不能被new出來?即抽象類的構(gòu)造方法能不能被調(diào)用?抽象類不能被new出來 ,抽象類的構(gòu)造方法被子類調(diào)用接口中只能定義常量和抽象方法嗎?JDK1.7之前 ,接口中只能定義靜態(tài)常量和公公的抽象方法JDK1.8中,接口中可以定義靜態(tài)方法接口描述了現(xiàn)實(shí)世界中什么邏輯 ?接口定義一套規(guī)范 ,描述一個(gè)”物”的功能 ,要求如果現(xiàn)實(shí)中的”物”要想成為可用,就必須實(shí)現(xiàn)這些基本功能 .接口中的常量一定是 publicstaticfinal嗎?抽象方法一定是 publicabstract嗎?是是接口中能不能定義普通變量,普通方法?從設(shè)計(jì)接口的角度說明為什么這么做?接口中不能定義普通變量 ,也不能定義普通方法因?yàn)榻涌诰褪且环N規(guī)范 ,定義一種規(guī)則接口能不能被new?不能接口中有沒有多繼承 ?有一個(gè)類能不能實(shí)現(xiàn)多個(gè)接口?能【上機(jī)】完成抽象類、接口的語法測試代碼【上機(jī)】使用接口,定義電子產(chǎn)品系統(tǒng) (智能手機(jī)、MP3、智能手表 )。如何對一個(gè)數(shù)組的多個(gè)對象按照不同的依據(jù)進(jìn)行排序;對象實(shí)現(xiàn)Comparable接口或者定義比較規(guī)則的類實(shí)現(xiàn) Comparator接口【上機(jī)】模擬實(shí)現(xiàn) Comparable和Comparator接口;GC指的是什么?寫出英文全稱。垃圾回收機(jī)制中,程序員能不能調(diào)用垃圾回收器?GC指的是垃圾回收 ;英文:garbagecollection;程序員無權(quán)調(diào)用垃圾回收器System.gc()指的是什么意思?運(yùn)行垃圾回收器finalize方法可以用來做什么?在垃圾收集器將對象從內(nèi)存中清除出去前 ,做必要的清理工作通過兩個(gè)事例描述C++,Java不同的內(nèi)存回收機(jī)制。很久很久以前,每家每戶“自掃門前雪”,自己收垃圾?,F(xiàn)在,環(huán)保局的垃圾車自動(dòng)收垃圾。通過,這些例子類比 Java和C++不同的回收機(jī)制及特點(diǎn)。C++需要程序員手動(dòng)編寫垃圾回收器的代碼 ,如果程序員忘了那么就容易造成溢出等問題java無需手動(dòng)編寫,jvm的垃圾回收機(jī)制會(huì)自動(dòng)進(jìn)行垃圾回收 ,減輕了程序員的工作,也避免由于程序員忘記而造成的各種內(nèi)存溢出等問題第六章異常機(jī)制Java中,處理異常的兩大步是 ?捕捉異常;聲明異常如果catch兩個(gè)異常,一個(gè)是父類,一個(gè)是子類。這兩個(gè)異常的catch順序如何確定 ?子類異常在前 ,父類異常在后finally里面一般放置什么代碼?無論是否發(fā)生異常,都必須要執(zhí)行的語句方法 finally中,比如數(shù)據(jù)庫鏈接的關(guān)閉、IO流的關(guān)閉、socket連接的關(guān)閉等物理連接的關(guān)閉Error和Exception的區(qū)別和聯(lián)系聯(lián)系:Error與Exception都繼承自Throwable類區(qū)別:Exception:.可以是可被控制(checked)或不可控制的(unchecked).表示一個(gè)由程序員導(dǎo)致的錯(cuò)誤.應(yīng)該在應(yīng)用程序級(jí)被處理Error:.總是不可控制的(unchecked》.經(jīng)常用來用語表示系統(tǒng)錯(cuò)誤或低層資源的錯(cuò)誤.如果可能的話,應(yīng)該在系統(tǒng)級(jí)被處理Throwable 是一個(gè)類還是接口?Throwable是一個(gè)類如果碰到NullPointerException,我們一般應(yīng)該如何查錯(cuò) ?如何做處理?如果碰到NullPointerException異常.應(yīng)該使用debug進(jìn)行調(diào)試,使用try-catch-finally 進(jìn)行異常捕獲處理【上機(jī)】完成課堂測試異常的代碼【上機(jī)】Eclipse中,增加try-catch塊的操作是怎么做的?選中代碼塊然后按組合鍵,Alt+Shift+Z【上機(jī)】自定義一個(gè)自己的異常類方法重寫時(shí),子類聲明異常能否超出父類的范圍 ?子類聲明異常不能超出父類的范圍.父類沒有聲明異常,子類也不能.不可拋出原有方法拋出異常類的父級(jí)或上層類.拋出的異常類型的數(shù)目不可以比原有的方法拋出的還多 (不是指個(gè)數(shù))【上機(jī)】下面的代碼,有什么問題?解釋原因classA{publicvoidmethod()throwsIOException{ }}classDextendsA{publicvoidmethod()throwsException{ }}子類重寫時(shí),不可以拋出原有方法拋出異常的父類或上層類
說出你現(xiàn)在接觸的幾個(gè)異常 ?盡量多寫。ArithmeticExceptionNullPointerExceptionClassCastExceptionArrayIndexOutOfBoundsExceptionNumberFormatException階段項(xiàng)目課程3【項(xiàng)目】太陽系項(xiàng)目練習(xí)目標(biāo):類和對象final常量構(gòu)造方法及其重載this和super關(guān)鍵字的使用方法重寫類的三大特征:封裝、繼承、多態(tài)作出效果,找到自信注意:不要求學(xué)生對AWT編程的內(nèi)容有詳細(xì)認(rèn)識(shí), 重點(diǎn)是關(guān)于太陽系星球的面向?qū)ο笤O(shè)計(jì)和開發(fā);全部講解和練習(xí)時(shí)間控制在 4小時(shí)以內(nèi) 。要求:根據(jù)老師課程講解,完成太陽系項(xiàng)目小游戲。.太陽系中八大行星圍繞太陽按照不同的速度轉(zhuǎn)動(dòng);月亮圍繞地球轉(zhuǎn)動(dòng)。根據(jù)老師課程講解,完成太陽系項(xiàng)目小游戲。2.擴(kuò)展:按照自己的思路和老師的代碼模板,設(shè)計(jì)一個(gè)小的作業(yè)項(xiàng)目。將上一個(gè)作業(yè)作業(yè)錄制成自己的教學(xué)視頻第七章常用類為什么需要包裝類 ?包裝類的作用是 ?因?yàn)閖ava語言是面向?qū)ο蟮恼Z言 ,但是 java中的基本數(shù)據(jù)類型卻不是面向?qū)ο蟮?而在實(shí)際的使用中經(jīng)常需要將基本數(shù)據(jù)轉(zhuǎn)化成對象 ,便于操作.比如說在集合中存儲(chǔ)數(shù)據(jù)時(shí) ,只能存儲(chǔ)對象作用:1.作為和基本數(shù)據(jù)類型對應(yīng)的類型存在 ,方便涉及到對象的操作2.包含每種基本數(shù)據(jù)類型相關(guān)的屬性以及相關(guān)的操作方法將字符串"123"轉(zhuǎn)化成基本類型數(shù)字的方式有哪些?通過Integer類的靜態(tài)方法來轉(zhuǎn)換Integer.parseInt(“123”);自動(dòng)裝箱和自動(dòng)拆箱指的是 ?舉例說明。自動(dòng)裝箱和自動(dòng)拆箱指的是將基本數(shù)據(jù)類型和包裝類進(jìn)行自動(dòng)的互相轉(zhuǎn)換【上機(jī)】完成老師課堂上 Integer的測試,并自己寫Double類的測試代碼為什么String類被稱為不可變字符序列 ?從String類的源代碼分析,給出解釋。字符串是常量 ,它們的值在創(chuàng)建之后不能更改 ,String對象是不可變的,所以可以共享String類的底層結(jié)構(gòu)是 char類型的數(shù)組value,而這個(gè)數(shù)組使用final進(jìn)行修飾【上機(jī)】String類的equals方法跟Object的equals方法什么關(guān)系?并詳細(xì)閱讀String類的equals方法源代碼,分析它的內(nèi)部流程。String類的equals方法重寫了Object類的equals方法,用于比較兩個(gè)String對象的內(nèi)容是否相同String類的equals方法的源碼分析 :如果兩個(gè)String對象的內(nèi)存地址 (引用 )相同,那么returntrue:如果兩個(gè)String對象的內(nèi)存地址 (引用 )不相同 ,那么進(jìn)行類型判斷 ,如果不是String類型,那么直接返回false,如果是String類型則進(jìn)行向下類型轉(zhuǎn)換 ,轉(zhuǎn)換成String類型 ,然后變成 char類型數(shù)組,比較兩個(gè)數(shù)組對應(yīng)位置上的內(nèi)容是否相同,如果相同返回true,如果不同返回falseString類的trim()方法是什么作用?返回字符串的副本 ,去掉字符串前后的空格"hamburger".substring(4,8)返回的結(jié)果是 ?urge【上機(jī)】分析下面代碼的結(jié)果,并畫出內(nèi)存結(jié)構(gòu)圖,針對每個(gè)打印的結(jié)果給出文字解釋。Strings="abc";Stringss="abc";Strings3="abc"+"def";//此處編譯器做了優(yōu)化Strings4="abcdef";Strings5=ss+"def";Strings2=newString("abc");System.out.println(s==ss);System.out.println(s3==s4);System.out.println(s4==s5);System.out.println(s4.equals(s5));System.out.println(s==ss);結(jié)果為true結(jié)果為trueSystem.out.println(s3===s4);System.out.println(s4===s5);結(jié)果為falseSystem.out.println(s4.equals(s5));結(jié)果為true【上機(jī)】練習(xí)String類的常用方法StringBuffer和StringBuilder的聯(lián)系是?區(qū)別是?聯(lián)系:StringBuffer和StringBuilder 都是可變字符序列,底層數(shù)組結(jié)構(gòu)都是char類型的數(shù)組區(qū)別:StringBuffer:jdk1.0 版,線程安全,但是效率低StringBuilder:jdk1.5 版,線程不安全,但是效率高如下的代碼會(huì)造成什么后果?運(yùn)行期間會(huì)產(chǎn)生多少個(gè)對象?使用StringBuilder 修改這段代碼。Strings="";for(inti=0;i<10000;i++){s+=i;}會(huì)導(dǎo)致大量副本字符串^?象存留在內(nèi)存中 ,降低效率運(yùn)行期間會(huì)產(chǎn)生10001個(gè)對象StringBuffersb=newStringBuffer();for(inti=0;i<10000;i++){sb.append(i);計(jì)算機(jī)中的時(shí)間是如何表示的?獲取從1970-1-1 0:0:0到當(dāng)前時(shí)間所經(jīng)歷的毫秒數(shù),然后轉(zhuǎn)換為日期或者時(shí)間.System.currentTimeMillis()表示什么意思?返回以毫秒為單位的當(dāng)前事件.Dated=newDate() 表示的是當(dāng)前時(shí)間嗎?是,精確到毫秒.【上機(jī)】我們使用SimpleDateFormat 類來實(shí)現(xiàn)時(shí)間跟字符串的轉(zhuǎn)化。常用那兩個(gè)方法?并寫出代碼,舉例說明SimpleDateFormatsdf=iwwSimpleDateFormat("yyyy-MM-dd"1);System,out.printin(sdf,parse(M1990-3-31'));Si叩Je口=new5impleDatEFormatryyyy-MM-dd*1);System*out*println(sdf2?format(newDate()));.將1990年3月3日通過Calendar來表示,并得出這天是該年的第幾天?將該日期增加35天,是哪一天?使用代碼來說明。Calendarc=newGregoriancalendar();SimpleDateFormatsdf■newSiinpleDateFormat("yyyy-MM-ddr,)jc#setTime(sdf.parse("1990-3-3"));System*out,println(c.get(Calendarc,add(Calendar^DATF^BS);System.out.printin(c*get(Calendar.YEAR)+"華"+(c.get(Calendar,W/VTff)fi)+"^"+c.get(Calendar,p/iTE)+11a11);.【上機(jī)】寫代碼測試Date/SimpleDateFormat/Calendar 的用法。.【上機(jī)】模仿老師的寫法,完成可視化日歷程序的開發(fā)。.File類能代表一個(gè)目錄嗎?能.File類的方法mkdir跟mkdirs,有什么區(qū)別?mkdir:只能在已經(jīng)存在的目錄中創(chuàng)建文件夾mkdirs:可以在不存在的目錄中創(chuàng)建文件夾.使用File類模擬實(shí)現(xiàn)DOS的dir和dir/s命令.【上機(jī)】使用遞歸算法,根據(jù)老師的樹狀結(jié)構(gòu)代碼, 完整展示一個(gè)目錄樹publicstaticvoidmain(String[]args){Filefile=newshoivTreeffilej1);)privatestaticvoidshowTree(Filefile,intlevel){File[]files=file,listFiles();if(files!=null){for(Filef:files){forfinti=0ji<levelji++){System*out.print("-H);}if(f?isDirectcry()){System*out*println(f*getName());showrree(f,level+1);}else{System.out.println(f*getName());}})).什么時(shí)候使用枚舉?枚舉的定義是什么?當(dāng)需要定義一組常量時(shí),使用枚舉類型枚舉的定義:只能夠取特定值中的一個(gè)使用enum關(guān)鍵字所有的枚舉類型隱性地繼承自java.lang.Enum.【上機(jī)】手動(dòng)定義一個(gè)枚舉,表示十二個(gè)月的英文月份。publice-mui*Month(JANUARY,FEBRUARY收ftOtiAPAIL,AMY,JUNE,3ULtAUGUSTtS£P(guān)TEHBERtOCTDBfJtjNOV£MBERtDECEMBEfi|).【上機(jī)】switch語句中的表達(dá)式結(jié)果可以是枚舉嗎?模仿課堂代碼,寫個(gè)例子說明。publicstaticStringtestErum(MonthStringstr=null;switch(m){caseJANUARY:stp二”一月“;break;caseFEBRUARYistr="二月";break;default:break;}returnstr;第八章容器第八章容器..容器指的是“可以容納其他對象的對象”,這種說法對嗎 ?又t容器自己也是對象,同時(shí)可以裝其他對象的引用.Collection/Set/List的聯(lián)系跟區(qū)別?(1):Collection是Java集合頂級(jí)接口;(2):List接口和Set接口是Collections 接口有兩個(gè)子接口;(3):List接口存儲(chǔ)一組不唯一,有序(插入順序)的對象;set接口存儲(chǔ)一組唯一,無序的對象;(4):Collection,List,Set 的架構(gòu)關(guān)系圖?接口CollectionList262.Set和List?接口CollectionList262.Set和List的特點(diǎn)跟區(qū)別?⑴.List:1):是有序的Collection,使用此接口能夠精確地控制每個(gè)元素插入的位置用戶能夠使用索引來訪問 List中的元素,這類似于Java的數(shù)組2):凡是可以操作索引的方法都是List接口特有方法
(2).Set:1):接口存儲(chǔ)一組唯一,無序的對象(存入和去除的順序不一定一致 )2):操作數(shù)據(jù)的方法與 List類似,Set接口不存在與索引相關(guān)的方法.【上機(jī)】練習(xí)Collection接口中常用的方法add(Objectobj);添加,存儲(chǔ)的是對象的引用size();容器中元素的實(shí)際個(gè)數(shù);remove(Objectobj); 刪除一個(gè)元素removeAll(Collection c);只保留當(dāng)前集合(調(diào)用此方法的集合 )與集合c(此方法的參數(shù))中相同的元素contains(Objectobj); 判斷集合中是否存在元素isEmpty();判斷集合是否為空Iterator。;生成集合的迭代器.【上機(jī)】下面的代碼,效果一致嗎 ?分析說明之。Collectionc=newHashSet();Collectionc2=newHashSet();Applea=newApple();c.add(a);c2.addAll(c);//增加另一個(gè)容器中所有的元素!Collectionc=newHashSet();Collectionc2=newHashSet();Applea=newApple();c.add(a);c2.add(c);代碼1:c2.addAll(c)是把[集合c中的元素]添加到集合c2里;TOC\o"1-5"\h\z代碼2:c2.add(c)是把[集合c]當(dāng)作一個(gè)元素添加到集合 c2里;.想取兩個(gè)容器中元素的交集,使用哪個(gè)方法 ?retainAll(Collection c);只保留當(dāng)前集合(調(diào)用此方法的集合)與集合c(此方法的參數(shù))中相同的元素.說明isEmpty的作用,并說明下面代碼有問題嗎 ?Collectionc=null;System.out.println(c.isEmpty());isEmpty():判斷集合是否為空,也就是集合中實(shí)際元素個(gè)數(shù)是否為 0,由此得知調(diào)用此方法時(shí)集合是存在的(如果集合都不存在,也就談不上為空與否了).要區(qū)分集合為空和集合不存在的含義是不同的代碼中的Collectionc=null,c 沒有指向任何集合,即集合并不真實(shí)存在,調(diào)用isEmpty()方法會(huì)出現(xiàn)空指針異常267.我想定義一個(gè)數(shù)組。該數(shù)組既可以放:267.我想定義一個(gè)數(shù)組。該數(shù)組既可以放:Dog對象、也可以放Cat對象、還可以放Integer對象,怎么定義 ?new一個(gè)Object數(shù)組List接口中增加了一些與順序相關(guān)的操作方法,下面兩個(gè)方法的作用是什么?add(intindex,Eelement),get(intindex)add(intindex,Eelement): 把元素element添加到索引為 index的位置;get(intindex):得到索引為 index的元素ArrayList底層使用什么來實(shí)現(xiàn)的?LinkedList是用什么實(shí)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科貿(mào)職業(yè)學(xué)院《鋼筋混凝土結(jié)構(gòu)設(shè)計(jì)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東警官學(xué)院《工程結(jié)構(gòu)抗震設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學(xué)院《化工新產(chǎn)品開發(fā)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東技術(shù)師范大學(xué)《JavaScript與jQuery開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護(hù)工程職業(yè)學(xué)院《故事片創(chuàng)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《測繪工程案例》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《材料成形數(shù)值分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《世界歷史文選》2023-2024學(xué)年第一學(xué)期期末試卷
- 八年級(jí)物理《電功率和用電安全》課件
- 贛南醫(yī)學(xué)院《音樂劇表演》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南省部分學(xué)校2023-2024學(xué)年高二上學(xué)期期末聯(lián)合考試政治試卷 含解析
- 中學(xué)生心理健康教育主題班會(huì)課件
- 電大《人力資源管理》期末復(fù)習(xí)綜合練習(xí)題答案(2024年)
- 西師版數(shù)學(xué)(四上題)2023-2024學(xué)年度小學(xué)學(xué)業(yè)質(zhì)量監(jiān)測(試卷)
- 2022-2023學(xué)年廣東省廣州市白云區(qū)華南師大附屬太和實(shí)驗(yàn)學(xué)校九年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 2024年煤礦安全生產(chǎn)知識(shí)競賽題庫及答案(共100題)
- 2024-2030年中國第三方檢測認(rèn)證行業(yè)發(fā)展創(chuàng)新模式及投資規(guī)劃分析報(bào)告版
- 強(qiáng)制報(bào)告制度課件
- 骨折病中醫(yī)護(hù)理常規(guī)
- 2024年世界職業(yè)院校技能大賽中職組“節(jié)水系統(tǒng)安裝與維護(hù)組”賽項(xiàng)考試題庫(含答案)
- 大型活動(dòng)車輛調(diào)度管理方案
評(píng)論
0/150
提交評(píng)論