java基礎(chǔ)筆記27天_第1頁
java基礎(chǔ)筆記27天_第2頁
java基礎(chǔ)筆記27天_第3頁
java基礎(chǔ)筆記27天_第4頁
java基礎(chǔ)筆記27天_第5頁
已閱讀5頁,還剩84頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java基礎(chǔ)筆記27天day011:計算機概述(了解)(1)計算機(2)計算機硬件(3)計算機軟件系統(tǒng)軟件:window,linux,mac應(yīng)用軟件:qq,yy,飛秋(4)軟件開發(fā)(理解)軟件:是由數(shù)據(jù)和指令組成的。(計算器)開發(fā):就是把軟件做出來。如何實現(xiàn)軟件開發(fā)呢?就是使用開發(fā)工具和計算機語言做出東西來(5)語言自然語言:人與人交流溝通的計算機語言:人與計算機交流溝通的C,C+,C#,Java(6)人機交換圖形界面:操作方便只管DOS命令:需要記憶一些常見的命令2:鍵盤功能鍵的認識和快捷鍵(掌握)(1)功能鍵的認識tabshiftctrlaltwindos空格上下左右回車截圖(2)快捷鍵全

2、選Ctrl+A復(fù)制Ctrl+C粘貼Ctrl+V剪切Ctrl+X撤銷Ctrl+Z保存Ctrl+S3:常見的DOS命令(掌握)(1)常見的如下盤符的切換d:回車目錄的進入cd javasecd javaseday01code目錄的回退cd.cd清屏cls退出exit(2)其他的幾個(了解)創(chuàng)建目錄刪除目錄創(chuàng)建文件刪除文件顯示目錄下的內(nèi)容刪除帶內(nèi)容的目錄4:Java語言概述(了解)(1)Java語言的發(fā)展史Java之父JDK1.4.2JDK5JDK7(2)Java語言的特點有很多小特點,重點有兩個開源,跨平臺(3)Java語言是跨平臺的,請問是如何保證的呢?(理解)我們是通過翻譯的案例講解的。針對不

3、同的操作系統(tǒng),提高不同的jvm來實現(xiàn)的。(4)Java語言的平臺JavaSEJavaME-AndroidJavaEE5:JDK,JRE,JVM的作用及關(guān)系(掌握)(1)作用JVM:保證Java語言跨平臺JRE:Java程序的運行環(huán)境JDK:Java程序的開發(fā)環(huán)境(2)關(guān)系JDK:JRE+工具JRE:JVM+類庫6:JDK的下載,安裝,卸載(掌握)(1)下載到官網(wǎng)。A:也可以到百度搜索即可。B:我給你。(2)安裝A:綠色版解壓就可以使用B:安裝版必須一步一步的安裝,一般只要會點擊下一步即可注意:建議所有跟開發(fā)相關(guān)的軟件都不要安裝在有中文或者空格的目錄下。(3)卸載A:綠色版直接刪除文件夾B:安裝

4、版a:控制面板 - 添加刪除程序b:通過專業(yè)的軟件卸載工具。(比如360的軟件管家卸載)7:第一個程序:HelloWorld案例(掌握)class HelloWorld public static void main(String args) System.out.println("HelloWorld");(1)程序解釋:A:Java程序的最基本單位是類,所以我們要定義一個類。格式:class 類名舉例:class HelloWorldB:在類中寫內(nèi)容的時候,用大括號括起來。C:Java程序要想執(zhí)行,必須有main方法。格式:public static void main

5、(String args)D:要指向那些東西呢,也用大括號括起來。E:你要做什么呢?今天我們僅僅做了一個簡單的輸出格式:System.out.println("HelloWorld");注意:""里面的內(nèi)容是可以改動的。(2)Java程序的開發(fā)執(zhí)行流程:A:編寫java源程序(.java)B:通過javac命令編譯生成.class文件C:通過java命令運行.class文件8:常見的問題(掌握)(1)擴展名被隱藏如何找到:工具-文件夾選項-查看-去除隱藏擴展名的那個勾勾(2)我要求文件名稱和類名一致。實際上不這樣做也是可以的。但是,注意:javac后面跟

6、的是文件名+擴展名java后面跟的類名不帶擴展名(3)Java語言嚴(yán)格區(qū)分大小寫,請注意。 還有就是單詞不要寫錯了。(4)見到非法字符: 65307肯定是中文問題。我們寫程序要求標(biāo)點符號必須全部是英文狀態(tài)。(5)括號的配對問題。一般來說,括號都是成對出現(xiàn)的。(6)遇到在類 HelloWorld 中找不到主方法, 請將主方法定義為肯定是主方法的格式問題。9:path環(huán)境變量(掌握)(1)path環(huán)境變量的作用保證javac命令可以在任意目錄下運行。同理可以配置qq等(2)path配置的兩種方案:A:方案1(了解)B:方案2找到環(huán)境變量的位置,在系統(tǒng)變量里面新建:變量名:JAVA_HOME變量值:

7、D:developJavajdk1.7.0_60修改:變量名:Path變量值:%JAVA_HOME%bin;以前的內(nèi)容10:classpath環(huán)境變量(理解)(1)classpath環(huán)境變量的作用保證class文件可以在任意目錄下運行(2)classpath環(huán)境變量的配置找到環(huán)境變量的位置,在系統(tǒng)變量里面新建:變量名:classpath變量值:E:JavaSEday01codeHelloWorld案例day021:關(guān)鍵字(掌握)(1)被Java語言賦予特定含義的單詞(2)特點:全部小寫。(3)注意事項:A:goto和const作為保留字存在。B:類似于Notepad+這樣的高級記事本會對關(guān)鍵字

8、有特殊顏色標(biāo)記2:標(biāo)識符(掌握)(1)就是給類,接口,方法,變量等起名字的字符序列(2)組成規(guī)則:A:英文大小寫字母B:數(shù)字C:$和_(3)注意事項:A:不能以數(shù)字開頭B:不能是java中的關(guān)鍵字C:區(qū)分大小寫(4)常見的命名規(guī)則(見名知意)A:包全部小寫單級包:小寫舉例:liuyi,com多級包:小寫,并用.隔開舉例:cn.itcast,com.baiduB:類或者接口一個單詞:首字母大寫舉例:Student,Demo多個單詞:每個單詞首字母大寫舉例:HelloWorld,StudentNameC:方法或者變量一個單詞:首字母小寫舉例:name,main多個單詞:從第二個單詞開始,每個單詞首

9、字母大寫舉例:studentAge,showAllNames()D:常量全部大寫一個單詞:大寫舉例:PI多個單詞:大寫,并用_隔開舉例:STUDENT_MAX_AGE3:注釋(掌握)(1)就是對程序進行解釋說明的文字(2)分類:A:單行注釋/B:多行注釋/*/C:文檔注釋(后面講) /* */(3)把HelloWorld案例寫了一個帶注釋的版本。后面我們要寫一個程序的過程。需求:分析:實現(xiàn):代碼體現(xiàn):(4)注釋的作用A:解釋說明程序,提高了代碼的閱讀性。B:可以幫助我們調(diào)試程序。后面我們會講解一個更高端的一個調(diào)試工具4:常量(掌握)(1)在程序執(zhí)行的過程中,其值不發(fā)生改變的量(2)分類:A:字

10、面值常量B:自定義常量(后面講)(3)字面值常量A:字符串常量 "hello"B:整數(shù)常量12,23C:小數(shù)常量12.345D:字符常量'a','A','0'E:布爾常量true,falseF:空常量null(后面講)(4)在Java中針對整數(shù)常量提供了四種表現(xiàn)形式A:二進制由0,1組成。以0b開頭。B:八進制由0,1,.7組成。以0開頭。C:十進制由0,1,.9組成。整數(shù)默認是十進制。D:十六進制由0,1,.9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭。5:進制轉(zhuǎn)換(了解)(1)其他進制到十進制系數(shù):就是每一個位

11、上的數(shù)值基數(shù):x進制的基數(shù)就是x權(quán):對每一個位上的數(shù)據(jù),從右,并且從0開始編號,對應(yīng)的編號就是該數(shù)據(jù)的權(quán)。結(jié)果:系數(shù)*基數(shù)權(quán)次冪之和。(2)十進制到其他進制除基取余,直到商為0,余數(shù)反轉(zhuǎn)。(3)進制轉(zhuǎn)換的快速轉(zhuǎn)換法A:十進制和二進制間的轉(zhuǎn)換8421碼。B:二進制到八進制,十六進制的轉(zhuǎn)換6:變量(掌握)(1)在程序的執(zhí)行過程中,其值在某個范圍內(nèi)可以發(fā)生改變的量(2)變量的定義格式:A:數(shù)據(jù)類型 變量名 = 初始化值;B:數(shù)據(jù)類型 變量名; 變量名 = 初始化值;7:數(shù)據(jù)類型(掌握)(1)Java是一種強類型語言,針對每種數(shù)據(jù)都提供了對應(yīng)的數(shù)據(jù)類型。(2)分類:A:基本數(shù)據(jù)類型:4類8種B:引用數(shù)

12、據(jù)類型:類,接口,數(shù)組。(3)基本數(shù)據(jù)類型A:整數(shù)占用字節(jié)數(shù)byte1short2int 4long8B:浮點數(shù)float4double8C:字符char2D:布爾boolean1注意:整數(shù)默認是int類型,浮點數(shù)默認是double。長整數(shù)要加L或者l。單精度的浮點數(shù)要加F或者f。8:數(shù)據(jù)類型轉(zhuǎn)換(掌握)(1)boolean類型不參與轉(zhuǎn)換(2)默認轉(zhuǎn)換A:從小到大B:byte,short,char - int - long - float - doubleC:byte,short,char之間不相互轉(zhuǎn)換,直接轉(zhuǎn)成int類型參與運算。(3)強制轉(zhuǎn)換A:從大到小B:可能會有精度的損失,一般不建議這

13、樣使用。C:格式:目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型) (被轉(zhuǎn)換的數(shù)據(jù));(4)思考題和面試題:A:下面兩種方式有區(qū)別嗎?float f1 = 12.345f;float f2 = (float)12.345;B:下面的程序有問題嗎,如果有,在哪里呢?byte b1 = 3;byte b2 = 4;byte b3 = b1 + b2;byte b4 = 3 + 4;C:下面的操作結(jié)果是什么呢?byte b = (byte)130;D:字符參與運算是查找ASCII里面的值'a'97'A'65'0'48System.out.println(&#

14、39;a');System.out.println('a' + 1);E:字符串參與運算這里其實是字符串的連接System.out.println("hello"+'a'+1);System.out.println('a'+1+"hello");System.out.println("5+5="+5+5);System.out.println(5+5+"=5+5");day031:運算符(掌握)(1)算術(shù)運算符A:+,-,*,/,%,+,-B:+的用法a:加法

15、b:正號c:字符串連接符C:/和%的區(qū)別數(shù)據(jù)做除法操作的時候,/取得是商,%取得是余數(shù)D:+和-的用法a:他們的作用是自增或者自減b:使用*單獨使用放在操作數(shù)據(jù)的前面和后面效果一樣。a+或者+a效果一樣。*參與操作使用放在操作數(shù)的前面:先自增或者自減,再參與操作int a = 10;int b = +a;放在操作數(shù)的后面:先參與操作,再自增或者自減int a = 10;int b = a+;(2)賦值運算符A:=,+=,-=,*=,/=,%=等B:=叫做賦值運算符,也是最基本的賦值運算符int x = 10; 把10賦值給int類型的變量x。C:擴展的賦值運算符的特點隱含了自動強制轉(zhuǎn)換。面試題

16、:short s = 1;s = s + 1;short s = 1;s += 1;請問上面的代碼哪個有問題?(3)比較運算符A:=,!=,>,>=,<,<=B:無論運算符兩端簡單還是復(fù)雜最終結(jié)果是boolean類型。C:千萬不要把=寫成了=(4)邏輯運算符A:&,|,!,&&,|B:邏輯運算符用于連接boolean類型的式子C:結(jié)論&:有false則false|:有true則true:相同則false,不同則true。情侶關(guān)系。!:非true則false,非false則true&&:結(jié)果和&是一樣的,只不過有短路

17、效果。左邊是false,右邊不執(zhí)行。|:結(jié)果和|是一樣的,只不過有短路效果。左邊是true,右邊不執(zhí)行。(5)位運算符(了解)A:的特殊用法一個數(shù)據(jù)針對另一個數(shù)據(jù)位異或兩次,該數(shù)不變B:面試題a:請實現(xiàn)兩個變量的交換*采用第三方變量*用位異或運算符左邊a,b,a右邊abb:請用最有效率的方式計算出2乘以8的結(jié)果2<<3(6)三元運算符A:格式比較表達式?表達式1:表達式2;B:執(zhí)行流程:首先計算比較表達式的值,看是true還是false。如果是true,表達式1就是結(jié)果。如果是false,表達式2就是結(jié)果。C:案例:a:比較兩個數(shù)據(jù)是否相等b:獲取兩個數(shù)據(jù)中的最大值c:獲取三個數(shù)據(jù)

18、中的最大值2:鍵盤錄入(掌握)(1)實際開發(fā)中,數(shù)據(jù)是變化的,為了提高程序的靈活性,我們加入鍵盤錄入數(shù)據(jù)。(2)如何實現(xiàn)呢?目前就記住A:導(dǎo)包import java.util.Scanner;位置:在class的上邊B:創(chuàng)建對象Scanner sc = new Scanner(System.in);C:獲取數(shù)據(jù)int x = sc.nextInt();(3)把三元運算符的案例加入鍵盤錄入改進。3:流程控制語句(1)順序結(jié)構(gòu) 從上往下,依次執(zhí)行(2)選擇結(jié)構(gòu)按照不同的選擇,執(zhí)行不同的代碼(3)循環(huán)結(jié)構(gòu) 做一些重復(fù)的代碼4:if語句(掌握)(1)三種格式A:格式1if(比較表達式) 語句體;執(zhí)行流

19、程:判斷比較表達式的值,看是true還是false如果是true,就執(zhí)行語句體如果是false,就不執(zhí)行語句體B:格式2if(比較表達式) 語句體1;else 語句體2;執(zhí)行流程:判斷比較表達式的值,看是true還是false如果是true,就執(zhí)行語句體1如果是false,就執(zhí)行語句體2C:格式3if(比較表達式1) 語句體1;else if(比較表達式2)語句體2;.else 語句體n+1;執(zhí)行流程:判斷比較表達式1的值,看是true還是false如果是true,就執(zhí)行語句體1如果是false,就繼續(xù)判斷比較表達式2的值,看是true還是false如果是true,就執(zhí)行語句體2如果是fals

20、e,就繼續(xù)判斷比較表達式3的值,看是true還是false.如果都不滿足,就執(zhí)行語句體n+1(2)注意事項A:比較表達式無論簡單還是復(fù)雜,結(jié)果是boolean類型B:if語句控制的語句體如果是一條語句,是可以省略大括號的;如果是多條,不能省略。建議:永遠不要省略。C:一般來說,有左大括號,就沒有分號,有分號,就沒有左大括號。D:else后面如果沒有if,是不會出現(xiàn)比較表達式的。E:三種if語句其實都是一個語句,只要有一個執(zhí)行,其他的就不再執(zhí)行。(3)案例:A:比較兩個數(shù)是否相等B:獲取兩個數(shù)中的最大值C:獲取三個數(shù)中的最大值(if語句的嵌套)D:根據(jù)成績輸出對應(yīng)的等級E:根據(jù)月份,輸出對應(yīng)的季

21、節(jié)F:根據(jù)x計算對應(yīng)y的值并輸出(4)三元運算符和if語句第二種格式的關(guān)系所有的三元運算符能夠?qū)崿F(xiàn)的,if語句的第二種格式都能實現(xiàn)。反之不成立。如果if語句第二種格式控制的語句體是輸出語句,就不可以。因為三元運算符是一個運算符,必須要有一個結(jié)果返回,不能是一個輸出語句。day041:switch語句(掌握)(1)格式:switch(表達式) case 值1:語句體1;break;case 值2:語句體2;break;.default:語句體n+1;break;格式解釋說明:switch:說明這是switch語句。表達式:可以是byte,short,int,charJDK5以后可以是枚舉JDK7

22、以后可以是字符串case:后面的值就是要和表達式進行比較的值break:表示程序到這里中斷,跳出switch語句default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語句中的else(2)面試題switch語句的表達式可以是byte嗎?可以是long嗎?可以是String嗎?可以,不可以,JDK7以后可以(3)執(zhí)行流程:A:首先計算表達式的值B:和每一個case進行匹配,如果有就執(zhí)行對應(yīng)的語句體,看到break就結(jié)束。C:如果沒有匹配,就執(zhí)行default的語句體n+1。(4)注意事項:A:case后面只能是常量,不能是變量,而且,多個case后面的值不能出現(xiàn)相同的B:default可

23、以省略嗎?可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。特殊情況:case就可以把值固定。A,B,C,DC:break可以省略嗎?可以省略,但是結(jié)果可能不是我們想要的。會出現(xiàn)一個現(xiàn)象:case穿透。最終我們建議不要省略D:default一定要在最后嗎?不是,可以在任意位置。但是建議在最后。E:switch語句的結(jié)束條件a:遇到break就結(jié)束了b:執(zhí)行到末尾就結(jié)束了(5)案例:A:鍵盤錄入一個數(shù)字(1-7),輸出對應(yīng)的星期幾。B:單項選擇題C:鍵盤錄入一個字符串的問題String s = sc.nextLine();D:根據(jù)給定的月份,輸出對應(yīng)的季節(jié)(6)if語句和switch語

24、句各自的場景A:if針對boolean類型的判斷針對一個范圍的判斷針對幾個常量的判斷B:switch針對幾個常量的判斷2:循環(huán)語句(掌握)(1)有三種:for,while,do.while(2)for循環(huán)語句A:格式for(初始化語句;判斷條件語句;控制條件語句)循環(huán)體語句;執(zhí)行流程:a:執(zhí)行初始化語句b:執(zhí)行判斷條件語句如果這里是true,就繼續(xù)如果這里是false,循環(huán)就結(jié)束c:執(zhí)行循環(huán)體語句d:執(zhí)行控制條件語句e:回到bB:注意事項a:判斷條件語句無論簡單還是復(fù)雜,結(jié)果是boolean類型b:循環(huán)體語句如果是一條,可以省略大括號,但是不建議c:有分號就沒有左大括號,有左大括號就沒有分號C

25、:案例a:輸出10次HelloWorldb:輸出1-10的數(shù)據(jù)c:輸出10-1的數(shù)據(jù)d:求1-10的和e:求1-100的和,求1-100的偶數(shù)和,求1-100的奇數(shù)和f:求5的階乘g:在控制臺打印水仙花數(shù)h:統(tǒng)計水仙花個數(shù)i:改進版的回文數(shù)一個五位數(shù)個位 = 萬位十位 = 千位個位 + 十位 + 千位 + 萬位 = 百位j:統(tǒng)計1-1000之間同時滿足如下條件的數(shù)據(jù)有多少個x%3=2x%5=3x%7=2(3)while循環(huán)A:基本格式while(判斷條件語句) 循環(huán)體語句;擴展格式:初始化語句;while(判斷條件語句)循環(huán)體語句;控制條件語句;通過查看這個格式,我們就知道while循環(huán)可以和

26、for循環(huán)等價轉(zhuǎn)換。B:while的練習(xí)把for語句的練習(xí)用while改進C:for和while的區(qū)別a:使用上的區(qū)別for語句的那個控制條件變量,在循環(huán)結(jié)束后不能在使用了。而while的可以繼續(xù)使用。b:理解上的區(qū)別for適合于一個范圍的判斷while適合次數(shù)不明確的舉例:吃葡萄D:案例:a:珠穆朗瑪峰問題b:小芳存錢問題(break以后才能做)(4)do.while循環(huán)A:基本格式do 循環(huán)體語句;while(判斷條件語句);擴展格式:初始化語句;do 循環(huán)體語句;控制條件語句;while(判斷條件語句);通過查看格式,我們就可以看出其實三種循環(huán)的格式可以是統(tǒng)一的。B:三種循環(huán)的區(qū)別a:d

27、o.while循環(huán)至少執(zhí)行一次循環(huán)體b:for和while必須先判斷條件是否是true,然后后才能決定是否執(zhí)行循環(huán)體(5)循環(huán)使用的注意事項(死循環(huán))A:一定要注意修改控制條件,否則容易出現(xiàn)死循環(huán)。B:最簡單的死循環(huán)格式a:while(true).b:for(;)3:控制跳轉(zhuǎn)語句(掌握)(1)break:中斷的意思A:用在循環(huán)和switch語句中,離開此應(yīng)用場景無意義。B:作用a:跳出單層循環(huán)b:跳出多層循環(huán),需要標(biāo)簽語句的配合(2)continue:繼續(xù)A:用在循環(huán)中,離開此應(yīng)用場景無意義。B:作用a:跳出單層循環(huán)的一次,可以繼續(xù)下一次C:填空題for(int x=1; x<=10;

28、x+) if(x%3 = 0) /補齊代碼System.out.println("Java基礎(chǔ)班");如何讓控制臺輸出2次:Java基礎(chǔ)班如何讓控制臺輸出7次:Java基礎(chǔ)班如何讓控制臺輸出13次:Java基礎(chǔ)班(3)return:返回A:用于結(jié)束方法的,后面還會在繼續(xù)講解和使用。B:一旦遇到return,程序就不會在繼續(xù)往后執(zhí)行。day051:方法(掌握)(1)方法:就是完成特定功能的代碼塊。注意:在很多語言里面有函數(shù)的定義,而在Java中,函數(shù)被稱為方法。(2)格式:修飾符 返回值類型 方法名(參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2.) 方法體語句;return 返回值

29、;修飾符:目前就用 public static。后面再詳細講解其他修飾符返回值類型:就是功能結(jié)果的數(shù)據(jù)類型方法名:就是起了一個名字,方便我們調(diào)用該方法。參數(shù)類型:就是參數(shù)的數(shù)據(jù)類型參數(shù)名:就是變量參數(shù)分類:實參:實際參與運算的數(shù)據(jù)形參:方法上定義的,用于接收實際參數(shù)的變量方法體語句:就是完成功能的代碼塊return:結(jié)束方法返回值:就是功能的結(jié)果,由return帶給調(diào)用者。(3)兩個明確:返回值類型:結(jié)果的數(shù)據(jù)類型參數(shù)列表:參數(shù)的個數(shù)及對應(yīng)的數(shù)據(jù)類型(4)方法調(diào)用A:有明確返回值的方法a:單獨調(diào)用,沒有意義b:輸出調(diào)用,不是很好,因為我可能需要不結(jié)果進行進一步的操作。但是講課一般我就用了。c:

30、賦值調(diào)用,推薦方案B:void類型修飾的方法a:單獨調(diào)用(5)案例:A:求和方案B:獲取兩個數(shù)中的較大值C:比較兩個數(shù)據(jù)是否相同D:獲取三個數(shù)中的最大值E:輸出m行n列的星形F:輸出nn乘法表(6)方法的注意事項A:方法不調(diào)用不執(zhí)行B:方法之間是平級關(guān)系,不能嵌套定義C:方法定義的時候,參數(shù)是用,隔開的D:方法在調(diào)用的時候,不用在傳遞數(shù)據(jù)類型E:如果方法有明確的返回值類型,就必須有return語句返回。(7)方法重載在同一個類中,方法名相同,參數(shù)列表不同。與返回值無關(guān)。參數(shù)列表不同:參數(shù)的個數(shù)不同。參數(shù)的對應(yīng)的數(shù)據(jù)類型不同。(8)方法重載案例不同的類型的多個同名方法的比較。2:數(shù)組(掌握)(1

31、)數(shù)組:存儲同一種數(shù)據(jù)類型的多個元素的容器。(2)特點:每一個元素都有編號,從0開始,最大編號是長度-1。 編號的專業(yè)叫法:索引(3)定義格式A:數(shù)據(jù)類型 數(shù)組名;B:數(shù)據(jù)類型 數(shù)組名;推薦是用A方式,B方法就忘了吧。但是要能看懂(4)數(shù)組的初始化A:動態(tài)初始化只給長度,系統(tǒng)給出默認值舉例:int arr = new int3;B:靜態(tài)初始化給出值,系統(tǒng)決定長度舉例:int arr = new int1,2,3;簡化版:int arr = 1,2,3;(5)Java的內(nèi)存分配A:棧 存儲局部變量B:堆 存儲所有new出來的C:方法區(qū)(面向?qū)ο蟛糠衷敿氈v解)D:本地方法區(qū)(系統(tǒng)相關(guān))E:寄存器(

32、CPU使用)注意:a:局部變量 在方法定義中或者方法聲明上定義的變量。b:棧內(nèi)存和堆內(nèi)存的區(qū)別棧:數(shù)據(jù)使用完畢,就消失。堆:每一個new出來的東西都有地址 每一個變量都有默認值byte,short,int,long 0float,double 0.0char 'u0000'boolean false引用類型 null 數(shù)據(jù)使用完畢后,在垃圾回收器空閑的時候回收。(6)數(shù)組內(nèi)存圖A:一個數(shù)組B:二個數(shù)組C:三個數(shù)組(兩個棧變量指向同一個堆內(nèi)存)(7)數(shù)組的常見操作A:遍歷方式1:public static void printArray(int arr) for(int x=0;

33、 x<arr.length; x+) System.out.println(arrx);方式2:public static void printArray(int arr) System.out.print("");for(int x=0; x<arr.length; x+) if(x = arr.length-1) System.out.println(arrx+"");else System.out.println(arrx+", ");B:最值最大值:public static int getMax(int arr)

34、 int max = arr0;for(int x=1; x<arr.length; x+) if(arrx > max) max = arrx;return max;最小值:public static int getMin(int arr) int min = arr0;for(int x=1; x<arr.length; x+) if(arrx < min) min = arrx;return min;C:逆序方式1:public static void reverse(int arr) for(int x=0; x<arr.length/2; x+) int

35、 temp = arrx;arrx = arrarr.length-1-x;arrarr.length-1-x = temp;方式2:public static void reverse(int arr) for(int start=0,end=arr.length-1; start<=end; start+,end-) int temp = arrstart;arrstart = arrend;arrend = temp;D:查表public static String getString(String strArray,int index) return strArrayindex;

36、E:基本查找方式1:public static int getIndex(int arr,int value) for(int x=0; x<arr.length; x+) if(arrx = value) return x;return -1;方式2:public static int getIndex(int arr,int value) int index = -1;for(int x=0; x<arr.length; x+) if(arrx = value) index = x;break;return index;day061:二維數(shù)組(理解)(1)元素是一維數(shù)組的數(shù)組。

37、(2)格式:A:數(shù)據(jù)類型 數(shù)組名 = new 數(shù)據(jù)類型mn;B:數(shù)據(jù)類型 數(shù)組名 = new 數(shù)據(jù)類型m;C:數(shù)據(jù)類型 數(shù)組名 = new 數(shù)據(jù)類型.,.,.;D:數(shù)據(jù)類型 數(shù)組名 = .,.,.;(3)案例(掌握):A:二維數(shù)組的遍歷B:二維數(shù)組的求和C:楊輝三角形2:兩個思考題(理解)(1)Java中的參數(shù)傳遞問題Java中只有值傳遞?;绢愋停盒问絽?shù)的改變不影響實際參數(shù)引用類型:形式參數(shù)的改變直接影響實際參數(shù)(2)數(shù)據(jù)加密問題綜合的小案例。3:面向?qū)ο?掌握)(1)面向?qū)ο竺嫦驅(qū)ο笫腔诿嫦蜻^程的編程思想(2)面向?qū)ο蟮乃枷胩攸cA:是一種更符合我們思考習(xí)慣的思想B:把復(fù)雜的事情簡單化C

38、:讓我們從執(zhí)行者變成了指揮者舉例:買電腦洗衣服做飯.萬事萬物皆對象(3)把大象裝進冰箱(理解)A:面向過程實現(xiàn)B:面向?qū)ο髮崿F(xiàn)注意:如何讓我們的操作更符合面向?qū)ο笏枷肽?A:有哪些類B:每個類有哪些成員C:類與類的關(guān)系(4)類與對象A:現(xiàn)實世界的事物屬性事物的基本描述行為事物的功能B:Java語言中最基本的單位是類。所以,我們要用類來體現(xiàn)事物C:類成員變量事物屬性成員方法事物行為D:類:是一組相關(guān)的屬性和行為的集合。是一個抽象的概念。 對象:是該類事物的具體存在,是一個具體的實例。(對象) 舉例:學(xué)生:類班長:對象(5)類的定義及使用A:類的定義成員變量定義格式和以前一樣,就是位置不同,在類中

39、,方法外。成員方法定義格式和以前一樣,就是去掉了static。B:使用類的內(nèi)容a:創(chuàng)建對象? 格式類名 對象名 = new 類名();b:如何使用成員變量和成員方法呢對象名.成員變量對象名.成員方法()(6)案例:A:學(xué)生類的定義和使用B:手機類的定義和使用(7)內(nèi)存圖A:一個對象的內(nèi)存圖B:二個對象的內(nèi)存圖C:三個對象的內(nèi)存圖(8)Java程序的開發(fā),設(shè)計和特征A:開發(fā):就是不斷的創(chuàng)建對象,通過對象調(diào)用功能B:設(shè)計:就是管理和維護對象間的關(guān)系C:特征a:封裝b:繼承c:多態(tài)day 071:成員變量和局部變量的區(qū)別(理解)(1)在類中的位置不同成員變量:類中方法外局部變量:方法定義中或者方法聲

40、明上(2)在內(nèi)存中的位置不同成員變量:在堆中局部變量:在棧中(3)生命周期不同成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失(4)初始化值不同成員變量:有默認值局部變量:沒有默認值,必須定義,賦值,然后才能使用2:類作為形式參數(shù)的問題?(理解)(1)如果你看到一個方法需要的參數(shù)是一個類名,就應(yīng)該知道這里實際需要的是一個具體的對象。3:匿名對象(理解)(1)沒有名字的對象(2)應(yīng)用場景A:調(diào)用方法,僅僅只調(diào)用一次的時候。b:可以作為實際參數(shù)傳遞。4:封裝(理解)(1)隱藏實現(xiàn)細節(jié),提供公共的訪問方式(2)好處:A:隱藏實現(xiàn)細節(jié),提供公

41、共的訪問方式B:提高代碼的復(fù)用性C:提高代碼的安全性(3)設(shè)計原則把不想讓外界知道的實現(xiàn)細節(jié)給隱藏起來,提供公共的訪問方式(4)private是封裝的一種體現(xiàn)。封裝:類,方法,private修飾成員變量5:private關(guān)鍵字(掌握)(1)私有的意義,可以修飾成員變量和成員方法(2)特點:被private修飾的后的成員只能在本類中被訪問(3)private的應(yīng)用:以后再寫一個類的時候:把所有的成員變量給private了提供對應(yīng)的getXxx()/setXxx()方法6:this關(guān)鍵字(掌握)(1)代表當(dāng)前類的引用對象記?。耗膫€對象調(diào)用方法,該方法內(nèi)部的this就代表那個對象(2)this的應(yīng)用

42、場景:A:解決了局部變量隱藏成員變量的問題B:其實this還有其他的應(yīng)用,明天講解。7:構(gòu)造方法(掌握)(1)作用:用于對對象的數(shù)據(jù)進行初始化(2)格式:A:方法名和類名相同B:沒有返回值類型,連void都不能有C:沒有返回值思考題:構(gòu)造方法中可不可以有return語句呢?可以。而是我們寫成這個樣子就OK了:return;其實,在任何的void類型的方法的最后你都可以寫上:return;(3)構(gòu)造方法的注意事項A:如果我們沒寫構(gòu)造方法,系統(tǒng)將提供一個默認的無參構(gòu)造方法B:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認構(gòu)造方法如果這個時候,我們要使用無參構(gòu)造方法,就必須自己給出。推薦:永遠手動自己給

43、出無參構(gòu)造方法。(4)給成員變量賦值的方式A:setXxx()B:帶參構(gòu)造方法(5)標(biāo)準(zhǔn)案例class Student private String name;private int age;public Student()public Student(String name,int age) = name;this.age = age;public String getName() return name;public void setName(String name) = name;public int getAge() return age;pub

44、lic void setAge(int age) this.age = age;測試:class StudentDemo public static void main(String args) /方式1Student s1 = new Student();s1.setName("林青霞");s1.setAge(27);System.out.println(s1.getName()+"-"+s1.getAge();/方式2Student s2 = new Student("劉意",30);System.out.println(s2.getName()+"-"+s2.getAge();8:代碼:Student s = new Student();做了哪些事情?(理解)(1)把Student.class文件加載到內(nèi)存(2)在棧內(nèi)存為s開辟空間

溫馨提示

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

最新文檔

評論

0/150

提交評論