




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JSP 方面1、 JSP 四種范圍是什么?區(qū)別是什么?Page:指單單一頁 jsp page 的范圍;Request:的范圍只在一 jsp 頁發(fā)出請求到另一頁之間,隨后這個屬性失效;Ses:范圍是用戶和服務(wù)器連接的那段時間,用戶與服務(wù)器斷開屬性就失效;Application:作用范圍最大,在服務(wù)器一開始執(zhí)行服務(wù)到服務(wù)器關(guān)閉為止??赡茉斐煞?wù)器負(fù)載過重。2、 JSP 有哪些內(nèi)置對象?作用分別是什么?答:JSP 共有以下 9 種基本內(nèi)置組件(可與ASP 的 6 種組件相對應(yīng)):request 用戶端請求,此請求會包含來自 GET/ response 網(wǎng)頁傳回用戶端的回應(yīng)pageContext 網(wǎng)頁
2、的屬性是在這里管理T 請求的參數(shù)ses與請求有關(guān)的會話期application servlet 正在執(zhí)行的內(nèi)容out 用來傳送回應(yīng)的輸出 config servlet 的構(gòu)架 page JSP 網(wǎng)頁本身exception 針對錯誤網(wǎng)頁,未捕捉的例外3、 JSP 有哪些動作?作用分別是什么?答:JSP 共有以下 6 種基本動作jsp:include:在頁面被請求的時候引入一個文件。 jsp:useBean:尋找或者實例化一個 JavaBean。 jsp:setProperty:設(shè)置 JavaBean 的屬性。 jsp:getProperty:輸出某個 JavaBean 的屬性。 jsp:forw
3、ard:把請求轉(zhuǎn)到一個新的頁面。jsp:plugin:根據(jù)瀏覽器類型為 Java 插件生成 OBJECT 或 EMBED 標(biāo)記4、 getribute()和 setribute()的作用是什么?5、 get 和t 的區(qū)別?Form 中的get 和t 方法,在數(shù)據(jù)傳輸過程中分別對應(yīng)了 HTTP 協(xié)議中的 GET 和T方法。二者主要區(qū)別如下:1、Get 是用來從服務(wù)器上獲得數(shù)據(jù),而t 是用來向服務(wù)器上傳遞數(shù)據(jù)。2、Get 將表單中數(shù)據(jù)的按照 variable=value 的形式,添加到 action 所指向的URL 后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;t 是將表單中的數(shù)據(jù)放
4、在form 的數(shù)據(jù)體中,按照變量和值相對應(yīng)的方式,傳遞到 action 所指向URL。3、Get 是不安全的,因為在傳輸過程,數(shù)據(jù)被放在請求的 URL 中,而如今現(xiàn)有的很多服務(wù)器、服務(wù)器或者用戶都會將請求 URL到日志文件中,然后放在某個地方,這樣就可能會有一些隱私的信息被第看到。另外,用戶也可以在瀏覽器上直接看到提交的數(shù)據(jù),一些系統(tǒng)用戶來說都是不可見的。消息將會一同顯示在用戶面前。t 的所有操作對4、Get 傳輸?shù)臄?shù)據(jù)量小,這主要是因為受 URL 長度限制;而t 可以傳輸大量的數(shù)據(jù),所以在上傳文件只能使用t(當(dāng)然還有一個原因,將在后面的提到)。5、Get 限制 Form 表單的數(shù)據(jù)集的值必須
5、為 ASCII 字符;而字符集。6、Get 是 Form 的默認(rèn)方法。t 支持整個 ISO106466、 寫一個 JSP 頁面,里面要包含一個表單、表單包含文本框、列表框、單選按扭、復(fù)選框。7、 當(dāng)前頁面是a.jsp,用 forward 顯示 b.jsp 的內(nèi)容。8、 taglib?如何使用?有哪些方式?1、問題:Tag 究竟是什么?如何實現(xiàn)一個 Tag?一個 tag 就是一個普通的 java 類,它唯一特別之處是它必須繼承 TagSupport 或者BodyTagSupport 類。這兩個類提供了一些方法,負(fù)責(zé) jsp 頁面和你編寫的類之間的交互,例如輸入,輸出。而這兩個類是由 jsp 容器
6、提供的,無須開發(fā)自己實現(xiàn)。換句話說,你只需把實現(xiàn)了業(yè)務(wù)邏輯的類繼承 TagSupport 或者 BodyTagSupport,再做一些特別的工作,你的類就是一個 Tag。并且它自己負(fù)責(zé)和 jsp 頁面的交互,不用你多操心。“特別的工作”通常有以下幾個步驟:1)提供屬性的 set 方法,此后這個屬性就可以在 jsp 頁面設(shè)置。以 jstl為例 c:out value=/,這個 value 就是 jsp 數(shù)據(jù)到 tag 之間的setValue 方法,具體的屬性可以不叫 value。例如:setValue(String data)this.data = data;。所以 tag 里面必須有一個這個“
7、value”的名稱是在 tld 里定義的。取什么名字都可以,只需 tag 里提供相應(yīng)的set 方法即可。2)處理 doStartTag 或 doEndTag 。這兩個方法是 TagSupport 提供的。 還是以c:out value=/為例,當(dāng) jsp這個的時候,在“”處觸發(fā) doStartTag 事件,在“”時觸發(fā) doEndTag 事件。通常在 doStartTag 里進(jìn)行邏輯操作,在 doEndTag 里控制輸出。編寫 tld 文件。在 jsp 頁面導(dǎo)入 tld這樣,你的 jsp 頁面就可以使用自己的 tag 了。通常你會發(fā)現(xiàn)自己絕大多數(shù)活動都集中在 doStartTag 或 doEn
8、dTag 方法里。確實如此,熟悉一些接口和類之后,寫 taglib 很容易。正如jsp 設(shè)計的作者所言:里面的邏輯稍微有點復(fù)雜,但畢竟沒有火箭上天那么難。2、一個簡單的例子:OutputTag package diegoyun;import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;/* author chenys*/public class OutputTag extends TagSupportprivate St
9、ring nall;public void setName(String name) = name;public trydoStartTag() throws JspExceptionJspWriter out = pageContext.getOut();out.pr(o! + name);catch (Exception e)throw new JspException(e);return EVAL_PAGE;簡明:1、如何輸出到 jsp 頁面:調(diào)用 JspWriter JspWriter out = pageContext.getOut();out.pr記住這個方法就可以了。2、輸出后如
10、何作處理函數(shù)會返回幾個值之一。EVAL_PAGE 表示 tag 已處理完畢,返回 jsp 頁面。還有幾個值,例如 EVAL_BODY_AGAIN 和 EVAL_BODY_INCLUDE 等,后面論編寫 tld會作討?xml ver=1.0 encoding=ISO-8859-1 ?!DOCTYPE taglibPUBLIC -/Sun Microsystems, Inc./DTD JSP Tag Library 1.2/ENhtaglibtlib-verjsp-ver/dtd/web-jsptaglibrary_1_2.dtd1.0/tlib-ver1.2/jsp-vershort-named
11、iego/short-name!-OutputTag-tagnameout/nametag-classdiegoyun.OutputTag/tag-classbody-contentempty/body-contentattributenamename/namerequiredfalse/requiredrtexprvaluefalse/rtexprvalue/attribute/tag/taglib在WEB-INF 下新建 tlds 文件夾,把這個文件取名為 diego.tld,放到 tlds 文件夾下。路徑應(yīng)該這樣:WEB-INFtldsdiego.tld關(guān)于 tld 的簡單說明:shor
12、t-name:taglib 的名稱,也稱為前綴。比如c:out value=/ 里的“c” name:tag 的名字。例如c:out value=/ 里的out”,的類也取名為 out,由于有前綴作區(qū)分,不會tag-class:具體的 tag 類。帶包名body-content:指 tag 之間的內(nèi)容。例如c:out value= /c 起始和關(guān)閉之間就是 body-content。由于沒有處理 body-content,所以上面設(shè)為 emptyattribute里的 name:屬性名字。例如c:out value=/里的 value。名字可任意取,只要類里提供相應(yīng)的 set 方法即可。req
13、uired:是否必填屬性。rtexprvalue:是否支持運行時表達(dá)式取值。這是 tag 的強(qiáng)大功能。以后暫時設(shè)為 false編寫 jsp 頁面% page language=java% taglib uri=/WEB-INF/tlds/diego.tld prefix=diego%htmlbodyTest Tag:diego:out name=diegoyun/body/html會。編程環(huán)境是 eclipse+tomcat.啟動服務(wù)器,如果一切按照上面步驟的話,就能看到 Test Tag:o! diegoyun 字樣最簡單的 tag 就這么出來了。并不難,是不是?9、 Jsp 跳轉(zhuǎn)有幾種方式
14、?分別是什么?服務(wù)器端跳轉(zhuǎn):,跳轉(zhuǎn)之后地址欄不改變,可以傳遞 request 屬性,實際上是對 RequestDispatcher 接口的封裝客戶端跳轉(zhuǎn):response.sendRedirect(),跳轉(zhuǎn)之后地址欄改變10JavaBean 的范圍?Page,request,ses里有一屬性 scope,它用來設(shè)定 JavaBean 的范圍,它的值只能為,application,不可為其它值。使用不同的 scope 屬性值,能在不用的范圍共享 JavaBean.11.JSP 中動態(tài) INCLUDE 與靜態(tài) INCLUDE 的區(qū)別? 答:動態(tài) INCLUDE 用 jsp:include 動作實現(xiàn)
15、它總是會檢查所含文件中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù)靜態(tài) INCLUDE 用 include 偽碼實現(xiàn),定不會檢查所含文件的變化,適用于包含靜態(tài)頁面12、兩種跳轉(zhuǎn)方式分別是什么?區(qū)別? 答:有兩種,分別為:前者頁面不會轉(zhuǎn)向 include 所指的頁面,只是顯示該頁的結(jié)果,主頁面還是原來的頁面。執(zhí)行完后還會回來,相當(dāng)于函數(shù)調(diào)用。并且可以帶參數(shù).后者完全轉(zhuǎn)向新頁面,不會再回來。相當(dāng)于 go to 語句。JAVA 方面1、 Java 的類型轉(zhuǎn)換,日期與字符串間的轉(zhuǎn)換。如果低級類型為char 型,向高級類型(整型)轉(zhuǎn)換時,會轉(zhuǎn)換為對應(yīng)ASCII 碼值,例如rchar c=c;輸出:out
16、put:99;i=c;System.out.prln(output:+i);對于 byte,short,char 三種類型而言,他們是平級的,因此不能相互自動轉(zhuǎn)換,可以使用下述的強(qiáng)制類型轉(zhuǎn)換。short i=99;char c=(char)i;System.out.prln(output:+c);輸出:outp;但根據(jù)筆者的經(jīng)驗,byte,short,三種類型都是整型,因此如果操作整型數(shù)據(jù)時,最好使用型。2.2 強(qiáng)制類型轉(zhuǎn)換將高級變量轉(zhuǎn)換為低級變量時,情況會復(fù)雜一些,你可以使用強(qiáng)制類型轉(zhuǎn)換。即你必須采用下面這種語句格式:i=99;byte b=(byte)i;char c=(char)i;fl
17、oat f=(float)i;可以想象,這種轉(zhuǎn)換肯定可能會導(dǎo)致溢出或精度的下降,因此筆者并不換。2.3 包裝類過渡類型轉(zhuǎn)換使用這種轉(zhuǎn)其它變量類型之間的相互轉(zhuǎn)換時,需要了解一下 Java 的包裝類,所謂包在裝類,就是可以直接將簡單類型的變量表示為一個類,在執(zhí)行變量類型的相互轉(zhuǎn)換時,會大量使用這些包裝類。Java 共有六個包裝類,分別是、Character、 eger、Long、char、 、long、floatFloat 和 Double,從字面上就可以看出它們分別對應(yīng)于和 double。而String 和Date 本身就是類。所以也就不存在什么包裝類的概念了。在進(jìn)行簡單數(shù)據(jù)類型之間的轉(zhuǎn)換(自動
18、轉(zhuǎn)換或強(qiáng)制轉(zhuǎn)換)時,行中間過渡??偸强梢岳冒b類進(jìn)一般情況下,首先一個變量,然后生成一個對應(yīng)的包裝類,就可以利用包裝類的各種方法進(jìn)行類型轉(zhuǎn)換了。例如:例 1,當(dāng)希望把 float 型轉(zhuǎn)換為 double 型時:float f1=100.00f;Float F1=new float(f1);Double d1=F1.doubleValue();/F1.doubleValue()為 Float 類的返回 double 值型的方法當(dāng)希望把 double 型轉(zhuǎn)換為型時:double d1=100.00;Double D1=new Double(d1); i1=D1.Value();當(dāng)希望把型轉(zhuǎn)換為
19、double 型時,自動轉(zhuǎn)換:i1=200;double d1=i1;簡單類型的變量轉(zhuǎn)換為相應(yīng)的包裝類,可以利用包裝類的構(gòu)造函數(shù)。即:(value)、Character(char value)、eger(value)、Long(long value)、Float(float value)、Double(double value)而在各個包裝類中,總有形為Value()的方法,來得到其對應(yīng)的簡單類型數(shù)據(jù)。利用這種方法,也可以實現(xiàn)不同數(shù)值型變量間的轉(zhuǎn)換,例如,對于一個雙精度實型類, Value()可以得到其對應(yīng)的整型變量,而 doubleValue()可以得到其對應(yīng)的雙精度實型變量。3 字符串型與
20、其它數(shù)據(jù)類型的轉(zhuǎn)換通過查閱類庫中各個類提供的成員方法可以看到,幾乎從 java.lang.Object 類派生的所有類 提供了 toString() 方法 ,即將 該 類轉(zhuǎn)換 為字符 串。例 如: Characrer,eger,Float,Douboolean,Short 等類的 toString()方法toString()方法用于將字符、整數(shù)、浮點數(shù)、雙精度數(shù)、邏輯數(shù)、短整型等類轉(zhuǎn)換為字符串。如下所示:i1=10;float f1=3.14f;double d1=3.1415926;eger I1=neweger(i1);/生成eger 類Float F1=new Float(f1); /生
21、成 Float 類 Double D1=new Double(d1); /生成 Double 類/分別調(diào)用包裝類的 toString()方法轉(zhuǎn)換為字符串String si1=I1.toString(); String sf1=F1.toString(); Stringsd1=D1.toString();Sysytem.out.prln(si1+si1);Sysytem.out.prln(sf1+sf1);Sysytem.out.prln(sd1+sd1);五、將字符型直接做為數(shù)值轉(zhuǎn)換為其它數(shù)據(jù)類型將字符型變量轉(zhuǎn)換為數(shù)值型變量實際上有兩種對應(yīng)關(guān)系,在在第一部分所說的那種轉(zhuǎn)換中,實際上是將其轉(zhuǎn)換成
22、對應(yīng)的ASCII 碼,但是有時還需要另一種轉(zhuǎn)換關(guān)系,例如,1就是指的數(shù)值 1,而不是其 ASCII 碼,對于這種轉(zhuǎn)換,的 getNumericValue(char ch)方法。六、Date 類與其它數(shù)據(jù)類型的相互轉(zhuǎn)換整型和 Date 類之間并不存在直接的對應(yīng)關(guān)系,只是你可以使用可以使用 Character型為分別表示年、月、日、時、分、秒,這樣就在兩者之間建立了一個對應(yīng)關(guān)系,在作這種轉(zhuǎn)換時,你可以使用 Date 類構(gòu)造函數(shù)的三種形式:Date(Date( Date(year,year, year,month,month, month,date):以型表示年、月、日date,date,hrs,h
23、rs,min):以型表示年、月、日、時、分min,sec):以型表示年、月、日、時、分、秒r在長整型和 Date 類之間有一個很有趣的對應(yīng)關(guān)系,就是將一個時間表示為距離尼治標(biāo)準(zhǔn)時間 1970 年 1 月 1 日 0 時 0 分 0 秒的毫秒數(shù)。對于這種對應(yīng)關(guān)系,Date 類也有其相應(yīng)的構(gòu)造函數(shù):Daong date)獲取 Date 類中的年、月、日、時、分、秒以及你可以使用 Date 類的 getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以將其理解為將 Date 類轉(zhuǎn)換成。而 D
24、ate 類的 getTime()方法可以得到前面所說的一個時間對應(yīng)的長整型數(shù),與包裝類一樣,Date 類也有一個 toString()方法可以將其轉(zhuǎn)換為 String 類。有時希望得到 Date 的特定格式,例如 20020324,文件開始引入,import java.text.SimpleDateFormat; import java.util.*;java.util.Date date = new java.util.Date();/ 如果希望得到 YYYYMMDD 的格式 SimpleDateFormat sy1=new SimpleDateFormat(yyyyMMDD); Strin
25、g dateFormat=sy1.format(date);/如果希望分開得到年,月,日 SimpleDateFormat sy=new SimpleDateFormat(yyyy); SimpleDateFormat sm=new SimpleDateFormat(MM); SimpleDateFormat sd=new SimpleDateFormat(dd);String syear=sy.format(date); String smon=sm.format(date);String sday=sd.format(date);可以使用以下方法,首先在結(jié)束語:當(dāng)然,筆者的論述只是一人之見
26、,如果希望了解有關(guān) JAVA 數(shù)據(jù)類型轉(zhuǎn)換的知識,筆者建議參考 JAVA 類庫 java.util.*下面的eger 類r類r Character 類r Float 類r Double 類r String 類r Date 類根據(jù)自己的需要,參考不同類的各種成員方法進(jìn)行數(shù)據(jù)類型之間的轉(zhuǎn)換。大家可以參考 JAVA 的網(wǎng)上類庫或之間的轉(zhuǎn)換,IP 地址:一份,來更靈活的利用其中的成員方法進(jìn)行數(shù)據(jù)類型h補(bǔ)充:/j2se/1.3/docs/api/index.html1 如何將字串 String 轉(zhuǎn)換成整數(shù)? A.有兩個方法: 1).或 i = 2).i =egarse(String);arse(Stri
27、ng,radix);egi =eger.valueOf(my_str).Value(); 注: 字串轉(zhuǎn)成 Double, Float, Long的方法大同小異.2 如何將整數(shù)轉(zhuǎn)換成字串 String ? A.有叁種方法: 1.) String s = String.valueOf(i);2.) String s =eger.toString(i);3.) String s = + i; 注: Double, Float, Long 轉(zhuǎn)成字串的方法大同小異. 這是一個例子,說的是 JAVA 中數(shù)據(jù)數(shù)型的轉(zhuǎn)換.供大家學(xué)習(xí)2、public sicConnection getConnection()C
28、onnection conn=null;tryClass.forName(jdbcDriver).newInstance();conn=DriverManager.getConnection(url,name,password);catch (InstantiationException e)/ TODO Auto-generated catch blocke.prStackTrace();e.prStackTrace();catch (SQLException e)/ TODO Auto-generated catch blockcatch (ClaotFoundException e)/
29、TODO Auto-generated catch blocke.prStackTrace();catch (IllegalAcsException e)/ TODO Auto-generated catch blocke.prStackTrace();public ConnDB()super();public sic String password=root;public sic String name=root;public sic String url=jdbc:/localhost:3306/test_user;public sic String jdbcDriver=.gjt.mm.
30、Driver;public class ConnDB連一個數(shù)據(jù)庫。給一個 SQL 語句,對返回的結(jié)果集進(jìn)行操作。package com.bluedot.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;return conn; 3、 線程。JavaScript 方面1、 用 JavaScript 做一個樹狀菜單。java 概念簡析對象的創(chuàng)建與使用java 中對象是由類創(chuàng)建出來的創(chuàng)建對象包括:1.定義對象建立對象初始化對象如:Rectangle myRectangl
31、e=new Rectangle(0,0,10,20);使用: 1.通過對象變量的如:myRectangle.width=20;來使用對象2.通過調(diào)用對象的方法來使用對象如:myRectangle.move(5,10);類,類的屬性,類的成員變量類分類的說明和類體如:class Pox,y; /變量說明x() /類 class 中的一個方法 x()return x類的屬性包括:1.2.此類的父類(extends 部分)類提供的接口(implements 部分)如:class ImNumber extends Number implements Collection().3.(修飾部分)類的特性如
32、:final class ImNumber extends Number implements Collection() .類 ImNumber 是個最終類又如:abstract class ImNumber extends Number implements Collection()/final./abstract類 ImNumber 是個抽象類final 和abstract 不可能同時出現(xiàn)由類創(chuàng)建出對象,而多個類組成包,同一個包中的類可以相互。但有種類是公共類,可以被包以外的其他類或?qū)ο?。?public 表示是公共類,用 private 表示只能被同一個包中的其他類。用 public 和
33、 private表明類的一種權(quán)限。因此,類的說明是如下形式:modifiersclass Claame extendperClaameimplementserfacelist(接口列表) . /帶方括號的部分為可選的類的成員變量定義包含:1.變量的權(quán)限 (用關(guān)鍵字 public,private,protected 或 private protected 表示)2.是否為靜態(tài)變量 (用關(guān)鍵字 sic 表示)3.是否為常量如:final類的成員變量的(如果一個變量是一個常量,用關(guān)鍵字 final) CON=20;權(quán)限:1.公用(public)變量(允許所有的類)2.(private)變量(只能被其
34、所屬的類)3.保護(hù)型(protected)變量)(允許被其歸屬的類,由此類派生的子類以及同一包中的其他類4.保護(hù)型(private protected)變量 (允許被其歸屬的類,由此類派生的子類)5.默認(rèn)型變量(不用任何詞來修飾,沒有設(shè)置權(quán)限。允許所歸屬的類和被同一包中的其他類)方法方法和類的結(jié)構(gòu)相似,有方法說明和方法體。方法的結(jié)構(gòu)表示如下所示:modifiers(權(quán)限 )type( 返 回 參 數(shù) 類 型 , 沒 有 返 回 參 數(shù) 就 寫 成 void)methodName(para1,para2,. (參數(shù)) methodBody例:publicselMax(x,y)if (xy) re
35、turn x; else return y;構(gòu)造方法不能有獨立的方法名字,而且只能有參數(shù),沒有返回值。(名字與 class 一樣,參數(shù)可不一樣。)不能有 abstract.調(diào)用時,第一條用 super()語句調(diào)用,(如果沒用 super(),系統(tǒng)默認(rèn)為 super())有須要寫出。參數(shù)的必如果第一條用 this()語句調(diào)用,java 系統(tǒng)就不會再默認(rèn)這個構(gòu)造方法調(diào)用父類。main 方法Applet 中一定沒有 main 方法,Application 中一定包含 main 方法。main 方法是 sic 類型的,也沒有返回參數(shù)。變量隱藏和方法置換在子類繼承父類時,如果子類的成員變量和父類的成員變
36、量同名,子類就隱藏了(override)父類的成員變量。此時,子類使用的是他自己的變量。如子類的方法與父類同名,同返回值,同方法。如想使用父類,需用 super 來實現(xiàn)。抽象類與抽象方法參數(shù),此時,子類的方法便置換了父類的抽象類不能創(chuàng)建對象,只能由其派生子類,是專門用來作為其他類的父類的。(abstract class xx)抽象方法是只給出定義,但沒有實現(xiàn)語句的方法。它的實現(xiàn)必須由子類來完成。注意:1.構(gòu)造方法不能冠以 abstract凡是定義為 sic 或 private 型的方法不能再加abstract如果父類中已有同名的 abstract 方法,那么,子類中就不能再有同名的抽象方法抽象
37、類中不一定有抽象方法,但包含抽象方法的類必須為抽象類。最終類,最終方法和最終變量最終類不能再派生出子類,也就提高了安全性,程序可讀性。用關(guān)鍵字final。如 final class .接口特點: 1.接口用關(guān)鍵字erface,不用class接口中定義的變量是最終的靜態(tài)變量接口中沒有自身的構(gòu)造方法,而且定義的其他方法全是抽象方法,即只提供反方法的定義,沒有提供實現(xiàn)方法的語句。接口采用多重繼承機(jī)制,而不是采用單一的繼承體制。因為 java 的類中是采用的單一的繼承體制,即一個類只有一個父類。在程序設(shè)計中,存在需要多重繼承的時候,因此,java 引入接口的概念。這樣既保留了類的單一繼承帶來的程序簡潔
38、和層次清晰等優(yōu)點,又可以使用多重繼承來實現(xiàn)java 的更方便,更強(qiáng)大的功能。接口支持多重繼承,所以一個接口可以有好幾個父接口,用逗號將幾個父接口名分開,如:publicerface Cookable extends Foodable,Prable接口名通常第一個字母用大寫,并用 able 或 ible 作結(jié)尾,表示接口能完成一定的功能。接口中定義的常量要用大寫表示,全部默認(rèn)為final 和 sic 型。接口中都用抽象方法,所以,接口中的方法定義中沒有方法體,都默認(rèn)為 abstract 屬性。erface BigableSUM=100;如:void increment();setData();一
39、個類調(diào)用有多個父接口的子接口所遵循的規(guī)則,Second,Three 和 Fourth 的四個接口,而且,Three 和 Fourth 是從繼承來的。erface.和 Seconderfaecond.erface Three extendserface Fourth extends.,Second.此時,一個類 Fifth 用如下語句調(diào)用和繼承 Fourth 接口:class Fifth implements Fourth .那么,在 Fifth 中,不但要實現(xiàn)接口 Fourth 中所定義的所有方法,而且還要實現(xiàn) Fourth 的父接口和 Second 中所定義的所有方法。且要實現(xiàn)時,要使方法的
40、名字,返回值,參數(shù)一一對應(yīng)。線程的狀態(tài)、線程的方法、線程的創(chuàng)建線程由 java.lang包提供,一個進(jìn)程中可創(chuàng)建多個線程,且創(chuàng)建時不需要再分配數(shù)據(jù)段。線程的生命周期:分 4 個狀態(tài):創(chuàng)建(new)狀態(tài)可運行(runnable)狀態(tài)不可運行(not runnable)狀態(tài)消亡(dead)狀態(tài)線程 4 個狀態(tài)的轉(zhuǎn)換:創(chuàng)建(new)狀態(tài)兩種操作:一. 啟動(start),使其進(jìn)入可運行狀態(tài)。二. 終止(stop),使其進(jìn)入消亡狀態(tài)。如:Thread myThread=new MyThreadClass();可運行(runnable)狀態(tài)有如下操作:1.掛起(suspend)終止(stop)2.睡眠(
41、sleep)3.等待(wait) 4.退讓(yield) 5.13 使可運行狀態(tài)的線程進(jìn)入不可運行狀態(tài)。不可運行狀態(tài)(not runnable)有三種方式恢復(fù)到運行狀態(tài):自動恢復(fù)恢復(fù)(resume)操作通知(notify 或 notify All)方法消亡狀態(tài)(dead)線程的方法:四大組:構(gòu)造方法(7 個)如:public Thread(); public Thread(Runnable實現(xiàn)線程行為的方法就是 run()方法,如:public void run();改變線程狀態(tài)的方法);就是如:啟動、睡眠、終止、掛起、恢復(fù)、退讓以及等待如:public void start(); publi
42、c final void stop() 等4 其他方法public sic void sleep(long millis);有獲取線程的名字 getName、設(shè)置線程的名字 setName 等等線程的創(chuàng)建:有兩種方法:1 通過對 Thread 的繼承來派生一個子類,再由此子類生成一個對象來實現(xiàn)線程的創(chuàng)建,這是比較簡單直接的方法。如:import java.lang.*/lang 包class Mango extends Thread public void run()/run 方法置換父類 Thread 的 run 方法還要由子類生成一個對象,并且進(jìn)行啟動操作,這樣才能得到一個處于可運行狀態(tài)的
43、線程。生成對象其實就是完成線程的創(chuàng)建,啟動則對已創(chuàng)建的線程進(jìn)行操作。語句如下:Mango t=t.start();go();線程其實也是一個對象。2 通過一個類去繼承接口 Runnable 來實現(xiàn)線程的創(chuàng)建,而這個類必須提供 Runnable接口中定義的方法run()的實現(xiàn)。如:下面的程序?qū)崿F(xiàn)和接口的連接public class xyz implements Runnable i;public void run()while (true)System.out.prln(“o”+i+);然后再創(chuàng)建一個線程: Runnable r=new xyz(); Thread t=new Thread(r);這種比第一種靈活,由于 java 不支持多重繼承,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來辦公軟件發(fā)展趨勢調(diào)研報告
- 二手房包銷合同
- 農(nóng)副產(chǎn)品購銷合同兩
- 2025年江西貨運從業(yè)資格證恢復(fù)考試題
- 《不同價態(tài)含硫物質(zhì)的轉(zhuǎn)化》作業(yè)設(shè)計方案
- 2023年高考全國乙卷數(shù)學(xué)(文)真題(解析版)
- 《藥物化學(xué)》課程標(biāo)準(zhǔn)
- 建房拆除改造合同范本
- 制砂機(jī)購買合同范例
- 中俄出口合同范例
- 《高等數(shù)學(xué)說課》課件
- 【我國新能源汽車產(chǎn)業(yè)發(fā)展分析文獻(xiàn)綜述5800字】
- 河北省普通高校??粕究平逃x拔考試英語真題及答案解析
- JCT1041-2007 混凝土裂縫用環(huán)氧樹脂灌漿材料
- 九年級化學(xué)學(xué)情分析
- 金融工程.鄭振龍(全套課件560P)
- 2023年第九屆中國國際互聯(lián)網(wǎng)+大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽解讀
- 直播電商可行性分析
- 人教版四年級數(shù)學(xué)下冊教材分析精講課件
- 《龍族設(shè)定全解析》
- 產(chǎn)品手繪設(shè)計表現(xiàn)技法PPT完整全套教學(xué)課件
評論
0/150
提交評論