freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java與sql的數(shù)據(jù)庫(kù)技術(shù)的學(xué)生成績(jī)管理系統(tǒng)-資料下載頁(yè)

2025-04-16 05:39本頁(yè)面
  

【正文】 運(yùn)算符后,將append設(shè)置為false。String number1Char operator 存放運(yùn)算符。Module 11 SwingAWT是Java最早出現(xiàn)的圖形界面,但很快就被Swing所取代。Swing才是一種真正的圖形開發(fā)。AWT在不同平臺(tái)所出現(xiàn)的界面可能有所不同:因?yàn)槊總€(gè)OS都有自己的UI組件庫(kù),java調(diào)用不同系統(tǒng)的UI。注意AWT為重量級(jí)組件,相當(dāng)消耗資源,且不同系統(tǒng)的組件可能不同。因?yàn)檫@個(gè)問題使得AWT開發(fā)的軟件難以作到跨平臺(tái)。更為要命的是:不同OS的組件庫(kù)都存在BUG。必須多種平臺(tái)進(jìn)行測(cè)試,并且AWT的組件庫(kù)并不豐富。為解決以上問題,SUN和IBM以及NETSCAPE聯(lián)合開發(fā)出JAVA基礎(chǔ)類包Swing:注意JAVA的基礎(chǔ)類以Swing為核心。注意引用:.*。javax表示JAVA的擴(kuò)展。我們?cè)趯W(xué)習(xí)JDBC的時(shí)候會(huì)過度到J2EE。在Swing的組件中,基本上都是在AWT組件的名稱前面加“J”。一般情況下,除了Choise等組件:import .*。好要加上:import .*以及import .*。Swing與AWT的最大區(qū)別是Swing為JAVA自身的組件。已經(jīng)不是對(duì)等實(shí)體,與底層的OS無關(guān)。(JBUILDER就是使用Swing寫的)Swing與AWT在事件模型處理上是一致的。Jframe實(shí)際上是一堆窗體的疊加。Swing比AWT更加復(fù)雜且靈活。,(b)。().add(b)。content是先申請(qǐng)面板。.。Jpanel支持雙緩沖技術(shù)。在Jbutton中可以添加圖標(biāo)。JscrollPane可以管理比屏幕還要大的組件。TextArea只有裝入JscrollPane中才能實(shí)現(xiàn)滾動(dòng)條。JeditorPane用于顯示瀏覽器。注意:Tabbed Panel與Border的比較。進(jìn)度條:ProgressBar。JboBox:下拉菜單:在AWT中同類組件是choice。JlistPanel:選擇列表BorderPanel:設(shè)置邊框JsplitPanel:可將容器分為兩個(gè)部分,其中一個(gè)部分有Jtree。TextBox:也是一種新的容器,可以設(shè)置組件的間距。TextFileChoose:文件選擇器。ColorChoose:顏色選擇器Module 12 AppletApplet為Panel的子類Applet是java的自動(dòng)執(zhí)行方式(這是它的優(yōu)勢(shì),主要用于HTML)。工作四種語(yǔ)法:init(),start(),stop(),destory()。Swing中有一個(gè)Japplet,如使用Swing組件。Applet消亡的原因:①java為安全起見對(duì)Applet有所限制:Applet不允許訪問本地文件信息、敏感信息,不能執(zhí)行本地指令(比如FORMAT),不能訪問初原服務(wù)器之外的其他服務(wù)器。② IE不支持新版本的Applet。Applet的優(yōu)勢(shì):網(wǎng)絡(luò)傳輸,自動(dòng)下載。Application的優(yōu)勢(shì):沒有執(zhí)行限制。WebStart:可在網(wǎng)絡(luò)傳輸,并且在本地?zé)o限制。因此前景光明。練習(xí):使用Swing實(shí)現(xiàn)一個(gè)界面,分為上下兩個(gè)部分,南邊為JtextField組件,可編輯,上面為JtextArea組件,不可編輯,在JtextField組件輸入字符,按回車,就可以將內(nèi)容輸入到JtextArea組件。(AREA區(qū)域可以滾動(dòng))多線程進(jìn)程:任務(wù)任務(wù)并發(fā)執(zhí)行是一個(gè)宏觀概念,微觀上是串行的。進(jìn)程的調(diào)度是有OS負(fù)責(zé)的(有的系統(tǒng)為獨(dú)占式,有的系統(tǒng)為共享式,根據(jù)重要性,進(jìn)程有優(yōu)先級(jí))。由OS將時(shí)間分為若干個(gè)時(shí)間片。JAVA在語(yǔ)言級(jí)支持多線程。分配時(shí)間的仍然是OS。參看P377線程由兩種實(shí)現(xiàn)方式:第一種方式:class MyThread extends Thread{ public void run(){ 需要進(jìn)行執(zhí)行的代碼,如循環(huán)。}}public class TestThread{ main(){ Thread t1=new Mythread()。 ()。}}只有等到所有的線程全部結(jié)束之后,進(jìn)程才退出。第二種方式:Class MyThread implements Runnable{ Public void run(){ Runnable target=new MyThread()。 Thread t3=new Thread(target)。 ()。//啟動(dòng)線程}}P384:通過接口實(shí)現(xiàn)繼承練習(xí):寫兩個(gè)線程:① 輸入200個(gè)“”②輸入200個(gè)“***”下面為線程中的7中非常重要的狀態(tài):(有的書上也只有認(rèn)為前五種狀態(tài):而將“鎖池”和“等待隊(duì)列”都看成是“阻塞”狀態(tài)的特殊情況:這種認(rèn)識(shí)也是正確的,但是將“鎖池”和“等待隊(duì)列”單獨(dú)分離出來有利于對(duì)程序的理解)阻塞DEAD初始 ① ⑴ ② ⑵ ③ ⑶ run()結(jié)束 Start()運(yùn)行可運(yùn)行 OS分配CPU CPU時(shí)間片結(jié)束 yield() () 等待鎖標(biāo)記等待隊(duì)列鎖池 notify()注意:圖中標(biāo)記依次為①輸入完畢;②wake up③t1退出⑴如等待輸入(輸入設(shè)備進(jìn)行處理,而CUP不處理),則放入阻塞,直到輸入完畢。⑵線程休眠sleep()⑶()指停止main(),然后在某段時(shí)間內(nèi)將t1加入運(yùn)行隊(duì)列,直到t1退出,main()才結(jié)束。特別注意:①②③與⑴⑵⑶是一一對(duì)應(yīng)的。進(jìn)程的休眠:Thread sleep(1000)。//括號(hào)中以毫秒為單位當(dāng)main()運(yùn)行完畢,即使在結(jié)束時(shí)時(shí)間片還沒有用完,CPU也放棄此時(shí)間片,繼續(xù)運(yùn)行其他程序。Try{(1000)。}Catch(Exception e){(e)。}()表示運(yùn)行線程放棄執(zhí)行權(quán),進(jìn)入阻塞狀態(tài)。當(dāng)t1結(jié)束時(shí),main()可以重新進(jìn)入運(yùn)行狀態(tài)。線程的優(yōu)先級(jí):110,越大優(yōu)先級(jí)越高,優(yōu)先級(jí)越高被OS選中的可能性就越大。(不建議使用,因?yàn)椴煌僮飨到y(tǒng)的優(yōu)先級(jí)并不相同,使得程序不具備跨平臺(tái)性,這種優(yōu)先級(jí)只是粗略地劃分)。注:程序的跨平臺(tái)性:除了能夠運(yùn)行,還必須保證運(yùn)行的結(jié)果。一個(gè)使用yield()就馬上交出執(zhí)行權(quán),回到可運(yùn)行狀態(tài),等待OS的再次調(diào)用。下午:程序員需要關(guān)注的線程同步和互斥的問題。多線程的并發(fā)一般不是程序員決定,而是由容器決定。多線程出現(xiàn)故障的原因:兩個(gè)線程同時(shí)訪問一個(gè)數(shù)據(jù)資源(臨界資源),形成數(shù)據(jù)發(fā)生不一致和不完整。數(shù)據(jù)的不一致往往是因?yàn)橐粋€(gè)線程中的兩個(gè)關(guān)聯(lián)的操作只完成了一步。避免以上的問題可采用對(duì)數(shù)據(jù)進(jìn)行加鎖的方法每個(gè)對(duì)象除了屬性和方法,都有一個(gè)monitor(互斥鎖標(biāo)記),用來將這個(gè)對(duì)象交給一個(gè)線程,只有拿到monitor的線程才能夠訪問這個(gè)對(duì)象。Synchronized:這個(gè)修飾詞可以用來修飾方法和代碼塊Object obj。(123)。Synchronized用來修飾方法,表示當(dāng)某個(gè)線程調(diào)用這個(gè)方法之后,其他的事件不能再調(diào)用這個(gè)方法。只有拿到obj標(biāo)記的線程才能夠執(zhí)行代碼塊。注意:Synchronized一定使用在一個(gè)方法中。鎖標(biāo)記是對(duì)象的概念,加鎖是對(duì)對(duì)象加鎖,目的是在線程之間進(jìn)行協(xié)調(diào)。當(dāng)用Synchronized修飾某個(gè)方法的時(shí)候,表示該方法都對(duì)當(dāng)前對(duì)象加鎖。給方法加Synchronized和用Synchronized修飾對(duì)象的效果是一致的。一個(gè)線程可以拿到多個(gè)鎖標(biāo)記,一個(gè)對(duì)象最多只能將monitor給一個(gè)線程。Synchronized是以犧牲程序運(yùn)行的效率為代價(jià)的,因此應(yīng)該盡量控制互斥代碼塊的范圍。方法的Synchronized特性本身不會(huì)被繼承,只能覆蓋。線程因?yàn)槲茨玫芥i標(biāo)記而發(fā)生的阻塞不同于前面五個(gè)基本狀態(tài)中的阻塞,稱為鎖池。每個(gè)對(duì)象都有自己的一個(gè)鎖池的空間,用于放置等待運(yùn)行的線程。這些線程中哪個(gè)線程拿到鎖標(biāo)記由系統(tǒng)決定。鎖標(biāo)記如果過多,就會(huì)出現(xiàn)線程等待其他線程釋放鎖標(biāo)記,而又都不釋放自己的鎖標(biāo)記供其他線程運(yùn)行的狀況。就是死鎖。死鎖的問題通過線程間的通信的方式進(jìn)行解決。線程間通信機(jī)制實(shí)際上也就是協(xié)調(diào)機(jī)制。線程間通信使用的空間稱之為對(duì)象的等待隊(duì)列,則個(gè)隊(duì)列也是屬于對(duì)象的空間的。Object類中又一個(gè)wait(),在運(yùn)行狀態(tài)中,線程調(diào)用wait(),此時(shí)表示著線程將釋放自己所有的鎖標(biāo)記,同時(shí)進(jìn)入這個(gè)對(duì)象的等待隊(duì)列。等待隊(duì)列的狀態(tài)也是阻塞狀態(tài),只不過線程釋放自己的鎖標(biāo)記。Notify()如果一個(gè)線程調(diào)用對(duì)象的notify(),就是通知對(duì)象等待隊(duì)列的一個(gè)線程出列。進(jìn)入鎖池。如果使用notifyall()則通知等待隊(duì)列中所有的線程出列。注意:只能對(duì)加鎖的資源進(jìn)行wait()和notify()。釋放鎖標(biāo)記只有在Synchronized代碼結(jié)束或者調(diào)用wait()。注意鎖標(biāo)記是自己不會(huì)自動(dòng)釋放,必須有通知。注意在程序中判定一個(gè)條件是否成立時(shí)要注意使用WHILE要比使用IF要嚴(yán)密。WHILE會(huì)放置程序饒過判斷條件而造成越界。補(bǔ)充知識(shí):suspend()是將一個(gè)運(yùn)行時(shí)狀態(tài)進(jìn)入阻塞狀態(tài)(注意不釋放鎖標(biāo)記)。恢復(fù)狀態(tài)的時(shí)候用resume()。Stop()指釋放全部。這幾個(gè)方法上都有Deprecated標(biāo)志,說明這個(gè)方法不推薦使用。一般來說,主方法main()結(jié)束的時(shí)候線程結(jié)束,可是也可能出現(xiàn)需要中斷線程的情況。對(duì)于多線程一般每個(gè)線程都是一個(gè)循環(huán),如果中斷線程我們必須想辦法使其退出。如果主方法main()想結(jié)束阻塞中的線程(比如sleep或wait)那么我們可以從其他進(jìn)程對(duì)線程對(duì)象調(diào)用interrupt()。用于對(duì)阻塞(或鎖池)會(huì)拋出例外Interrupted Exception。這個(gè)例外會(huì)使線程中斷并執(zhí)行catch中代碼。多線程中的重點(diǎn):實(shí)現(xiàn)多線程的兩種方式,Synchronized,以及生產(chǎn)者和消費(fèi)者問題()。練習(xí):① 存車位的停開車的次序輸出問題;② 寫兩個(gè)線程,一個(gè)線程打印152,另一個(gè)線程答應(yīng)字母AZ。打印順序?yàn)?2A34B56C……5152Z。通過使用線程之間的通信協(xié)調(diào)關(guān)系。注:分別給兩個(gè)對(duì)象構(gòu)造一個(gè)對(duì)象o,()。()()。補(bǔ)充說明:通過Synchronized,可知Vector較ArrayList方法的區(qū)別就是Vector所有的方法都有Synchronized。所以Vector更為安全。同樣:Hashtable較HashMap也是如此。Module 10:I/O流(java如何實(shí)現(xiàn)與外界數(shù)據(jù)的交流)Input/Output:指跨越出了JVM的邊界,與外界數(shù)據(jù)的源頭或者目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)交換。 輸出數(shù)據(jù)源JMV 輸入 注意:輸入/輸出是針對(duì)JVM而言。File類(.*)可表示一個(gè)文件,也有可能是一個(gè)目錄(在JAVA中文件和目錄都屬于這個(gè)類中,而且區(qū)分不是非常的明顯)。,但是無法讀取文件的內(nèi)容。注意:創(chuàng)建一個(gè)文件對(duì)象和創(chuàng)建一個(gè)文件在JAVA中是兩個(gè)不同的概念。前者是在虛擬機(jī)中創(chuàng)建了一個(gè)文件,但卻并沒有將它真正地創(chuàng)建到OS的文件系統(tǒng)中,隨著虛擬機(jī)的關(guān)閉,這個(gè)創(chuàng)建的對(duì)象也就消失了。而創(chuàng)建一個(gè)文件才是在系統(tǒng)中真正地建立一個(gè)文件。例如:File f=new File(“”)。//()。 //真正地創(chuàng)建文件():創(chuàng)建目錄();刪除文件()。在進(jìn)程退出的時(shí)候刪除文件,這樣的操作通常用在臨時(shí)文件的刪除。對(duì)于命令:File f2=new file(“d:\\abc\\789\\”)這個(gè)命令不具備跨平臺(tái)性,因?yàn)椴煌腛S的文件系統(tǒng)很不相同。如果想要跨平臺(tái),在file類下有separtor(),返回鎖出平臺(tái)的文件分隔符。=new File()。String str=”abc”++”789”。使用文件下的方法的時(shí)候一定注意是否具備跨平臺(tái)性。List():顯示文件的名(相對(duì)路徑)ListFiles():返回Files類型數(shù)組,可以用getName()來訪問到文件名。使用isDirectory()和isFile()來判斷究竟是文件還是目錄。練習(xí):寫一個(gè)javaTest程序,列出所有目錄下的*.java文件,把子目錄下的JAVA文件也打印出來。使用I/O流訪問file中的內(nèi)容。JVM與外界通過數(shù)據(jù)通道進(jìn)行數(shù)據(jù)交換。分類:按流分為輸入流和輸出流;按傳輸單位分為字節(jié)流和字符流;還可以分為節(jié)點(diǎn)流和過濾流。節(jié)點(diǎn)流:負(fù)責(zé)數(shù)據(jù)源和程序之間建立連接;過濾流:用于給節(jié)點(diǎn)增加功能。過濾流的構(gòu)造方式是以其他流位參數(shù)構(gòu)造(這樣的設(shè)計(jì)模式稱為裝飾模式)。字節(jié)輸入流:io包中的InputStream為所有字節(jié)輸入流的父類。Int read()。讀入一個(gè)字節(jié)(每次一個(gè));可先使用new byte[]=數(shù)組,調(diào)用read(byte[] b)read
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1