Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)_第1頁(yè)
Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)_第2頁(yè)
Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)_第3頁(yè)
Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)_第4頁(yè)
Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

Java程序設(shè)計(jì)復(fù)習(xí)筆記總結(jié)訪問(wèn)權(quán)限修飾符的訪問(wèn)范圍Protected:同一個(gè)類,同一個(gè)包,子類或異包可見。無(wú)修飾符:同一個(gè)類,同一個(gè)包可見。1,java語(yǔ)言中,main方法的寫法是固定的,不可以更改。2,整數(shù)類型long類型變量在進(jìn)行賦值時(shí)必須要加L或l,否則不被認(rèn)為是long類型。3,八進(jìn)制表示法,必須是以零0開頭。十六進(jìn)制表示法,必須是以0X或0x開頭的。4,浮點(diǎn)類型float類型變量在進(jìn)行賦值時(shí)必須要加F或f,否則系統(tǒng)自動(dòng)將其定義為double類型。Double類型的變量其后可以加也可以不加D或d。5,字符類型的必須單個(gè)字符用單引號(hào)字符串用雙引號(hào)。6,常量final變量有成員變量與局部變量。成員變量有默認(rèn)值,(被final修飾且沒(méi)有static的必須顯式賦值),局部變量不會(huì)自動(dòng)賦值在使用時(shí)必須為其初始化。(定義一個(gè)變量就是告訴編譯器這個(gè)變量的數(shù)據(jù)類型,編譯器需要為此分配多少內(nèi)存空間。)7,Java里的邏輯運(yùn)算符&&與&都是表示邏輯與,但是&&少一步的判斷(更加的智能)。·8,位運(yùn)算符用于處理整形和字符型的操作數(shù),對(duì)其內(nèi)存的二進(jìn)制碼進(jìn)行操作。與&或|非~異或^移位運(yùn)算符<<>>>>>9,類型轉(zhuǎn)換:數(shù)據(jù)從占用內(nèi)存空間較小的類型轉(zhuǎn)換為占用存儲(chǔ)空間較大的數(shù)據(jù)類型時(shí),做自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換),反之須強(qiáng)制類型轉(zhuǎn)換(顯示類型轉(zhuǎn)換)。10,foreach語(yǔ)句是for語(yǔ)句的特殊簡(jiǎn)化版本,它在遍歷數(shù)組等方面為程序員提供了很大的方便。For(元素變量x:便利對(duì)象obj){引用了x的Java語(yǔ)句;}Foreach語(yǔ)句中的x不需要進(jìn)行初始化的。11,字符串類常用方法IndexOf()獲取給定字符的索引值lastIndexOf()獲取最后一個(gè)符合要求的索引值charAt()獲取指定索引位置的字符equals()比較兩個(gè)字符串是否完全相同equalsIgnoreCase()可以忽略大小寫的情況下比較兩個(gè)字符串是否相同startsWith()比較是否為給定的字符串開頭的endsWith()比較是否為給定的字符串結(jié)尾的replace()替換字符串內(nèi)全部指定字符串為另一字符串split()用來(lái)分割字符串,返回一個(gè)數(shù)組toUpperCase()將字符串轉(zhuǎn)換為全部大寫toLowerCase()將字符串轉(zhuǎn)換為全部小寫trim()去除字符串首末的空格正則表達(dá)式12,聲明在類中的變量為成員變量(不必為其初始化)聲明在類中塊或方法中的變量為局部變量(必須為其初始化)13,聲明普通方法時(shí)必需有返回值、方法名、一對(duì)小括號(hào)和一對(duì)大括號(hào)。聲明構(gòu)造方法時(shí)不能有返回值。14,Java編譯器使用方法簽名來(lái)區(qū)分不同的方法,即方法名和參數(shù)列表,不包括返回值。15,方法參數(shù)的傳遞:值傳遞是指先將參數(shù)復(fù)制一份,然后將復(fù)制的內(nèi)容傳遞到方法中,而非在原參數(shù)的地址位置直接用方法進(jìn)行修改。16,this使用this可以在普通方法和構(gòu)造方法中使用當(dāng)前對(duì)象的任何成員變量使用this來(lái)引用成員變量,使用this來(lái)引用構(gòu)造方法17,static如果需要直接使用變量和成員方法而不創(chuàng)建對(duì)象,則可以使用static關(guān)鍵字。它表明被修飾的成員是屬于這個(gè)類的,而不是某個(gè)特定的對(duì)象。Static關(guān)鍵字需要放在變量類型之前。在類的內(nèi)部調(diào)用static變量時(shí)直接使用既可。在類的外部調(diào)用static變量可以使用“類名.靜態(tài)變量名”的方式。18,final 關(guān)鍵字的含義是不可變。Final修飾類時(shí),表示該類不能被繼承。修飾成員變量時(shí),表示該變量一旦被賦值之后就不能被修改了。修飾成員方法時(shí),表示該方法不能被子類重寫。Final關(guān)鍵字的一個(gè)常見用法是與static關(guān)鍵字組合來(lái)創(chuàng)建常量,PublicstaticfinalPI=3.1425926;19,類的多態(tài):在Java中,通常使用方法的重載和重寫來(lái)實(shí)現(xiàn)類的多態(tài)性。重寫之所以具有多態(tài)性,是因?yàn)楦割惢蚪涌谥械姆椒ㄔ谧宇愔斜恢貙懀宇惡透割悾ɑ蚪涌冢┑姆椒嗤瓿傻墓δ軈s不一樣,所以說(shuō),重寫具有多態(tài)性。重載的多態(tài)性是指:一個(gè)類中出現(xiàn)多個(gè)方法名稱一樣(參數(shù)個(gè)數(shù)或參數(shù)類型不同)但是它們的功能各不相同,即多態(tài)。繼承(將父類對(duì)象應(yīng)用與子類的特性就是多態(tài))接口(Java只支持單繼承,不支持多繼承,即一個(gè)類只有一個(gè)父類。但是在實(shí)際應(yīng)用中,有經(jīng)常需要使用多繼承來(lái)解決問(wèn)題。為了解決這些問(wèn)題,Java提供了接口來(lái)實(shí)現(xiàn)類的多繼承功能,建立類與類之間關(guān)聯(lián)的標(biāo)準(zhǔn)。) 抽象類(只聲明方法的存在而不去具體實(shí)現(xiàn)的類,抽象類不能被實(shí)例化,關(guān)鍵字abstract。只要是包含了抽象方法的類就必須聲明為抽象類。)20,super關(guān)鍵字子類可以繼承父類的非私有成員變量和成員方法作為自己的成員變量和成員方法。但是,如果子類中聲明的成員變量和父類的成員變量同名,則子類不能繼承父類的成員變量,此時(shí)稱子類的成員變量隱藏了父類的成員變量。如果子類中聲明的成員方法與父類中的成員方法同名,并且方法的返回值及參數(shù)的個(gè)數(shù)和類型也相同,則子類不能繼承父類的成員變量,此時(shí)稱子類的成員方法重寫了父類的成員方法。這時(shí),如果想在子類中訪問(wèn)父類中被子類隱藏的成員變量或方法時(shí),就應(yīng)該使用super關(guān)鍵字。--------------------------------------------super.成員變量或成員方法名(相關(guān)參數(shù))調(diào)用父類的構(gòu)造方法---------------------super(相關(guān)參數(shù))。21,object類Object類是比較特殊的類,是所有類的父類,是Java類層的最高層,Java中任何一個(gè)類都是它的子類。22,instanceof判斷對(duì)象類型23,abstract抽象類就是只聲明方法的存在而不去具體實(shí)現(xiàn)它的類。抽象類不能被實(shí)例化。在抽象類中創(chuàng)建的、沒(méi)有實(shí)際意義的且必須要子類重寫的方法稱為抽象方法。抽象方法只有方法的聲明而無(wú)方法的實(shí)現(xiàn),用abstract修飾既可。抽象方法不能使用private或static關(guān)鍵字進(jìn)行修飾。(是因?yàn)槌橄蠓椒ㄊ切枰蛔宇愔貙懙模0橄蠓椒ǖ念惐仨毐宦暶鳛槌橄箢悺_@是因?yàn)槌橄蠓椒](méi)定義方法的實(shí)現(xiàn)部分,如果不聲明為抽象類,這個(gè)類將可以生成對(duì)象。這時(shí)當(dāng)用戶調(diào)用抽象方法時(shí),程序就不知道如何處理了。24,拋出異常(異常類)Throws:當(dāng)方法中可能存在異常,卻不想在方法中對(duì)異常進(jìn)行處理時(shí)使用throws聲明異常拋出的異常,然后在調(diào)用該方法的其他方法中對(duì)異常進(jìn)行處理(誰(shuí)用誰(shuí)處理)。Throw:程序在運(yùn)行過(guò)程中如果發(fā)生錯(cuò)誤,則自行拋出異常(本方法自己處理異常)。語(yǔ)法為thrownewException(“對(duì)異常的說(shuō)明”);25,絕對(duì)布局管理器(不常用)使用Container.setLayout(null)方法取消布局管理器使用Component.setBounds()設(shè)置每個(gè)組件的大小與位置流布局管理器FlowLayout類中具有以下構(gòu)造方法:PublicFlowLayout()//默認(rèn)居中PublicFlowLayout(0或1或2)左對(duì)齊、居中、右對(duì)齊PublicFlowLayout(0或1或2,水平間距,垂直間距)邊界布局管理器(默認(rèn)情況下Swing組件的布局模式就是BorderLayout布局)BorderLayout類中常用構(gòu)造方法PublicBorderLayout()PublicBorderLayout(水平間距,垂直間距)BorderLayout常用成員變量BorderLayout.NORTHBorderLayout. SOUTHBorderLayout.EASTBorderLayout.WESTBorderLayout.CENTER網(wǎng)格布局管理器GridLayout常用構(gòu)造方法:PublicGridLayout(rows,columns)PublicGridLayout(rows,columns,水平間距,垂直間距)26,swing組件常用方法setSize(width,heighth);//設(shè)置組件大小setBounds(x,y,width,heighth)//設(shè)置組件顯示位置(x,y)及大小(width,heighth)setVisible(true或false);//設(shè)置組件的可見性setLayout(null或上述的布局管理器的對(duì)象)//設(shè)置布局管理器add(組件對(duì)象)add(位置,組件對(duì)象)//添加組件的同時(shí)設(shè)置組件的擺放位置setOpaque(true或false);//為組件設(shè)置不透明狀態(tài)setIcon(Icon對(duì)象icon);為標(biāo)簽或按鈕組件設(shè)置圖片27,在設(shè)置容器對(duì)象時(shí)候可以同時(shí)設(shè)置它的布局管理器Containerc=getContentPane();c.setLayout(null或上述的布局管理器的對(duì)象);還有JPanelp1=newJPanel(); p1.setLayout(newGridLayout(1,2,10,10));或JPanelp1=newJPanel(newGridLayout(1,2,10,10));28,常用面板(它可以作為容器來(lái)容納其他組件,但必須被添加到其他容器中)JPanel面板:(如上,初始化一個(gè)面板容器時(shí)可以設(shè)置其布局管理器)JScrollPane面板(帶滾動(dòng)條的面板容器,但只能放置一個(gè)組件,故不能使用布局管理器。如果需要在JScrollPane容器中放置多個(gè)組件,需要將多個(gè)組件放置在JPanel容器中,然后再將JPanel容器放置在JScrollPane面板容器之中。)29,標(biāo)簽組件JLableJLable類相關(guān)構(gòu)造方法:PublicJLabel();//創(chuàng)建一個(gè)不帶圖標(biāo)和文本的JLabel對(duì)象PublicJLabel(Iconicon);//帶圖標(biāo)的JLabel對(duì)象PublicJLabel(Iconicon,對(duì)齊方式);//帶圖標(biāo)的JLabel對(duì)象,且圖標(biāo)有水平對(duì)齊方式,PublicJLabel(Stringtext,對(duì)齊方式2);//帶文本的JLabel對(duì)象,且文字有水平對(duì)齊方式PublicJLabel(Stringtext,Iconicon,對(duì)齊方式);//帶圖標(biāo)帶文本的JLabel對(duì)象,且標(biāo)簽內(nèi)容有水平對(duì)齊方式組件類.LEFT或組件類.CENTER或組件類.LEFT.RIGHT30,圖標(biāo)(Swing中的圖標(biāo)可以放置在按鈕、標(biāo)簽等組件上,用于描述組件的用途。)必須實(shí)現(xiàn)的Icon接口中的3個(gè)方法PublicintgetIconHeight();所創(chuàng)建的圖標(biāo)的高PublicintgetIconWidth();所創(chuàng)建的圖標(biāo)的寬publicvoidpaintIcon(Componentarg(),Graphisarg1,x,y);在指定的位置畫圖(x,y)。31,根據(jù)現(xiàn)有圖片來(lái)創(chuàng)建圖標(biāo)(省的自己利用Icon接口來(lái)畫的,況且畫的還不好看)ImageIcon類實(shí)現(xiàn)了Icon接口,支持多種圖片格式ImageIcon類常用構(gòu)造方法PublicImageIcon();創(chuàng)建一個(gè)通用的ImageIcon對(duì)象,當(dāng)真正需要設(shè)置圖片時(shí)再使用ImageIcon對(duì)象調(diào)用setImage(Imageimage)方法來(lái)操作。PublicImageIcon(ImageImage);PublicImageIcon(ImageImage,描述);PublicImageIcon(URLurl);32,提交按鈕組件JButton類中常用構(gòu)造方法PublicJButton();PublicJButton(Stringtext);指定按鈕上顯示的文字PublicJButton(Iconicon);指定按鈕上顯示的圖片PublicJButton(Stringtext,Iconicon);指定按鈕上顯示的圖片和文字33,單選按鈕組件JRadioButton類中常用構(gòu)造方法PublicJRadioButton();PublicJRadioButton(Iconicon);指定按鈕上顯示的圖片PublicJRadioButton(Iconicon,Booleanselected);指定按鈕上顯示的圖片且此按鈕默認(rèn)被選擇PublicJRadioButton(Stringtext);指定按鈕上顯示的文字PublicJRadioButton(Stringtext,Iconicon);指定按鈕上顯示的文字PublicJRadioButton(Stringtext,Iconicon,Booleanselected);指定按鈕上顯示的文字和圖片且此按鈕默認(rèn)被選擇。按鈕組類ButtonGroup類,將所有的按鈕放置在一個(gè)按鈕組中,按鈕組中的按鈕只能選擇一個(gè)。34,復(fù)選框組件JCheckBox類常用構(gòu)造方法PublicJCheckBox();PublicJCheckBox(Iconicon,Booleanselected);指定按鈕上顯示的圖片且此按鈕默認(rèn)被選擇PublicJCheckBox(Stringtext,Booleanselected);指定按鈕上顯示的文字且此按鈕默認(rèn)被選擇35,下拉列表框組件JComboBox類常用構(gòu)造方法PublicJComboBox();PublicJComboBox(ComboBoxModeldataModel);PublicJComboBox(Object[]arrayDate);PublicJComboBox(Vectorvector);后3個(gè)構(gòu)造方法將下拉列表框中的內(nèi)容封裝在了ComboBoxModel類型、數(shù)組或者Vector類型的對(duì)象之中了。若將下拉列表框中的內(nèi)容封裝在了ComboBoxModel類型的對(duì)象之中,則在實(shí)現(xiàn)ComboBoxModel接口時(shí)必須實(shí)現(xiàn)以下兩個(gè)方法PublicvoidsetSelectedItem(Objectitem);PublicObjectgetSelectedItem();36,列表框組件37,單行文本框組件JTextField類常用構(gòu)造函數(shù)PublicJTextField();PublicJTextField(文本框默認(rèn)文字);PublicJTextField(文本框的寬);PublicJTextField(文本框默認(rèn)文字,文本框的寬);PublicJTextField(DocumentdocModel,文本框默認(rèn)文字,文本框的寬);38,密碼框組件JPasswordField類常用構(gòu)造函數(shù)PublicJPasswordField();PublicJPasswordField(密碼框默認(rèn)文字);PublicJPasswordField(密碼框的寬);PublicJPasswordField(密碼框默認(rèn)文字,密碼框的寬);PublicJPasswordField(DocumentdocModel,密碼框默認(rèn)文字,密碼框的寬);39,文本域組件JTextArea類常用構(gòu)造函數(shù)PublicJTextArea();PublicJTextArea(文本域默認(rèn)文字);PublicJTextArea(文本域的行數(shù),列數(shù));PublicJTextArea(DocumentdocModel);PublicJTextArea(DocumentdocModel,文本域默認(rèn)文字,文本域的行數(shù),列數(shù));40,鍵盤事件KeyEvent類負(fù)責(zé)捕獲鍵盤事件實(shí)現(xiàn)了KeyListener接口的監(jiān)聽器類負(fù)責(zé)處理相應(yīng)的鍵盤事件必須實(shí)現(xiàn)的KeyListener接口中的3個(gè)方法PublicvoidkeyTyped(KeyEvente);發(fā)生單擊事件時(shí)被觸發(fā)PublicvoidkeyPressed(KeyEvente);按鍵按下時(shí)被觸發(fā)PublicvoidkeyReleased(KeyEvente);按鍵被釋放時(shí)被觸發(fā)41,鼠標(biāo)事件MouseEvent類負(fù)責(zé)捕獲鼠標(biāo)事件實(shí)現(xiàn)了MouseListener接口的監(jiān)聽器類負(fù)責(zé)處理相應(yīng)的鼠標(biāo)事件必須實(shí)現(xiàn)的MouseListener接口中的5個(gè)方法PublicvoidmouseEntered(MouseEvente);光標(biāo)移入組件時(shí)被觸發(fā)PublicvoidmousePressed(MouseEvente);鼠標(biāo)按鍵按下時(shí)被觸發(fā)PublicvoidmouseReleased(MouseEvente);鼠標(biāo)按鍵釋放時(shí)被觸發(fā)PublicvoidmouseClicked(MouseEvente);鼠標(biāo)單擊時(shí)被觸發(fā)PublicvoidmouseExited(MouseEvente);光標(biāo)移出組件時(shí)被觸發(fā)44,捕獲窗體焦點(diǎn)變化事件WindowEvent類負(fù)責(zé)捕獲窗體(焦點(diǎn))變化事件實(shí)現(xiàn)了WindowFocusListener接口的監(jiān)聽器類負(fù)責(zé)處理窗體獲得或失去焦點(diǎn)的事件必須實(shí)現(xiàn)的WindowFocusListener接口中的2個(gè)方法PublicvoidwindowGainedFocus(WindowEvente);窗體獲得焦點(diǎn)時(shí)被觸發(fā)PublicvoidwindowLostFocus(WindowEvente);窗體失去焦點(diǎn)時(shí)被觸發(fā)捕獲窗體狀態(tài)變化事件WindowEvent類負(fù)責(zé)捕獲窗體(狀態(tài))變化事件實(shí)現(xiàn)了WindowStateListener接口的監(jiān)聽器類負(fù)責(zé)處理窗體狀態(tài)變化的事件必須實(shí)現(xiàn)的WindowStateListener接口中的1個(gè)方法PublicvoidwindowStateChanged(WindowEvente);窗體狀態(tài)發(fā)生變化時(shí)被觸發(fā) 捕獲其他窗體事件WindowEvent類負(fù)責(zé)捕獲窗體(其他)變化事件實(shí)現(xiàn)了WindowListener接口的監(jiān)聽器類負(fù)責(zé)處理其他有關(guān)窗體的事件必須實(shí)現(xiàn)的WindowListener接口的7個(gè)方法PublicvoidWindowActived(WindowEvente);窗體被激活時(shí)被觸發(fā)PublicvoidWindowDeactivated(WindowEvente);窗體不再處于激活狀態(tài)時(shí)被觸發(fā)PublicvoidWindowOpened(WindowEvente);窗體被打開時(shí)被觸發(fā)PublicvoidWindowClosing(WindowEvente);窗體將要被關(guān)閉時(shí)被觸發(fā)PublicvoidWindowClosed(WindowEvente);窗體已經(jīng)被關(guān)閉時(shí)被觸發(fā)PublicvoidWindowIconified(WindowEvente);窗體被圖標(biāo)化時(shí)被觸發(fā)PublicvoidWindowDeiconified(WindowEvente);窗體被非圖標(biāo)化時(shí)被觸發(fā)45,選項(xiàng)事件ItemEvent類負(fù)責(zé)捕獲選項(xiàng)事件實(shí)現(xiàn)了ItemListener接口的監(jiān)聽器類負(fù)責(zé)處理相應(yīng)的選項(xiàng)事件必須實(shí)現(xiàn)的ItemListener接口的1個(gè)抽象方法VoiditemStateChanged(ItemEvente);46,使用數(shù)組創(chuàng)建表格JTabletable=newJTable(封裝表格數(shù)據(jù)的數(shù)組,封裝表格列名的數(shù)組);使用向量創(chuàng)建表格JTabletable=newJTable(封裝表格數(shù)據(jù)的向量,封裝表格列名的向量);47,定制表格表格創(chuàng)建完成后,還需要對(duì)其進(jìn)行一系列的定義,以便適合具體的使用情況。通過(guò)重寫JTabel類中相應(yīng)方法達(dá)到自己所需要的定義。如重寫:PublicBooleanisCellEditable(introw,intcolumn)雙擊單元格是否可以進(jìn)行編輯,默認(rèn)TRUE可以編輯。通過(guò)重寫JTableHeader類中相應(yīng)方法達(dá)到自己所需要的定義。如重寫:PublicBooleansetReorderingAllowed(BooleanreorderingAllowed)設(shè)置表格是否支持重新排列功能,默認(rèn)TRUE支持重新排列。table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//選擇模式設(shè)置為可以連續(xù)選擇多行table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);table.setSelectionBackground(Color.YELLOW);//被選擇行的背景色為黃色table.setSelectionForeground(Color.RED);//被選擇行的前景色為紅色table.setRowHeight(30);//表格的行高為30像素48,維護(hù)表格模型JTabel類負(fù)責(zé)創(chuàng)建表格(僅僅是將表格中的數(shù)據(jù)封裝到默認(rèn)的表格模型中)表格模型負(fù)責(zé)存儲(chǔ)表格數(shù)據(jù)創(chuàng)建表格模型接口TableModel定義了表格模型,里面有許多操作表格的方法。抽象類AbstractTableModel實(shí)現(xiàn)了接口TableModel的大部分方法。只有3個(gè)方法為實(shí)現(xiàn)。通過(guò)繼承AbstractTableModel抽象類再加上實(shí)現(xiàn)那三個(gè)此抽象類還沒(méi)有實(shí)現(xiàn)的方法,就可以創(chuàng)建自己的表格模型類了。根據(jù)這一思路,Swing中早已為此寫了一個(gè)表格模型類:DefaultTableModel類。設(shè)置表格模型利用默認(rèn)的表格模型類或自己定義的表格模型類來(lái)實(shí)例化一個(gè)表格模型對(duì)象,然后將此模型對(duì)象用作JTable類實(shí)例化對(duì)象時(shí)構(gòu)造方法的參數(shù)。即利用表格模型來(lái)創(chuàng)建表格。維護(hù)模型對(duì)象例如:添加新行的方法,修改單元格內(nèi)容的方法,刪除指定行的方法。1,線程簡(jiǎn)介世間上的很多事情都是同時(shí)進(jìn)行的,為了模擬這種狀態(tài),引入了線程機(jī)制。2,通過(guò)繼承Thread類來(lái)實(shí)現(xiàn)線程完成線程真正功能的代碼放置類的run方法中。當(dāng)一個(gè)類繼承Thread類之后就在該類中重寫run方法,將實(shí)現(xiàn)該線程功能的具體代碼寫入run方法中,然后在main方法中調(diào)用Thread類中的start()方法執(zhí)行線程(也就是調(diào)用被重寫的run()方法)。如果不調(diào)用start()方法,線程永遠(yuǎn)都不會(huì)啟動(dòng),此時(shí)Thread對(duì)象就只是一個(gè)實(shí)例而不是一個(gè)真正的線程。通過(guò)實(shí)現(xiàn)Runnable接口如果程序需要繼承其他類(java語(yǔ)言不支持多繼承)又需要使用線程,那么就要通過(guò)實(shí)現(xiàn)Runnable接口來(lái)實(shí)現(xiàn)線程。實(shí)現(xiàn)Runnable接口的程序會(huì)創(chuàng)建一個(gè)Thread對(duì)象,并將Runnable對(duì)象與Thread對(duì)象相關(guān)聯(lián)。利用Thread類的構(gòu)造方法將Runnable對(duì)象與Thread對(duì)象相關(guān)聯(lián)。PublicThread(Runnabler)PublicThread(Runnabler,Stringname)以實(shí)現(xiàn)了Runnable接口的Runnable類的對(duì)象r作為初始化Thread對(duì)象的一個(gè)參數(shù)目的就是要用到Runnable類中重寫的Runnable接口中run方法的run方法(完成線程真正功能的代碼放置類的run方法中)。最后在main方法中調(diào)用Thread類中的start()方法執(zhí)行線程(也就是調(diào)用被重寫的run()方法)。如果不調(diào)用start()方法,線程永遠(yuǎn)都不會(huì)啟動(dòng),此時(shí)Thread對(duì)象就只是一個(gè)實(shí)例而不是一個(gè)真正的線程。3,線程的休眠:什么也不干等睡好了再做事方法Thread.sleep(休眠時(shí)間毫秒);線程的加入方法Thread.join();線程的中斷以往會(huì)用方法Thread.stop();現(xiàn)在在run方法中采用無(wú)限循環(huán)的方式,然后使用一個(gè)Boolean型的標(biāo)記控制循環(huán)的結(jié)束。線程的禮讓:只是給當(dāng)前正處于運(yùn)行狀態(tài)的線程提個(gè)醒,告知該線程可以將資源禮讓給其他線程。僅僅是可以而非一定要這樣做。方法Thread.yield();4,線程優(yōu)先級(jí):系統(tǒng)根據(jù)線程的優(yōu)先級(jí)決定從眾多就緒狀態(tài)的線程的選擇優(yōu)先級(jí)高的線程進(jìn)入運(yùn)行狀態(tài)。方法Thread.setPriority();調(diào)整線程的優(yōu)先級(jí)5,線程同步機(jī)制synchronized:解決多線程的安全問(wèn)題及線程沖突將多個(gè)線程所共享的資源放置在synchronized定義的區(qū)域內(nèi)。每次操作資源數(shù)據(jù)時(shí),必須加鎖--操作--解鎖。6,線程間的通信4線程間的通信通過(guò)使用wait()、notify()、notifAll()方法實(shí)現(xiàn)。Wait()方法后:運(yùn)行狀態(tài)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論