版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、序本視頻假定讀者已經(jīng)掌握了C語(yǔ)言!所以有關(guān)變量,數(shù)據(jù)類型,運(yùn)算符, 流程控制,函數(shù),指針等知識(shí)本視頻中是沒有講的,因?yàn)檫@些知識(shí)我已經(jīng)在C語(yǔ)言中講過了C語(yǔ)言視頻我暫時(shí)還沒有錄制, 沒有C語(yǔ)言基礎(chǔ)的同學(xué)看本Java視頻會(huì)有不小的難度!當(dāng)然如果你已經(jīng)學(xué)習(xí)了其他語(yǔ)言,掌握了有關(guān)變量,數(shù)據(jù)類型,運(yùn)算符, 流程控制,函數(shù),指針等知識(shí),看此視頻應(yīng)該沒什么難度吧!沒有學(xué)過C語(yǔ)言的推薦看譚浩強(qiáng)先生的書籍!本人的qq只希望接受您對(duì)我視頻教學(xué)錯(cuò)誤的指正,對(duì)于您學(xué)習(xí)中出現(xiàn)的問題,對(duì)不起,我沒有時(shí)間通過qq來(lái)幫您解決!實(shí)在是抱歉! 2009年7月17日郝斌注意:本資源郝斌Java自學(xué)視頻教程共107集郝斌,現(xiàn)在瑞德學(xué)校
2、擔(dān)任教學(xué)組長(zhǎng),曾在雅博等公司擔(dān)任項(xiàng)目總監(jiān)。6年開發(fā)經(jīng)驗(yàn),擅長(zhǎng)C/C+ 、Java、 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)。具有四年培訓(xùn)經(jīng)驗(yàn)。郝斌:自學(xué)好辛苦, 不過好在最后我還是學(xué)出來(lái)了, 教學(xué)好幾年了, 感觸頗多, 如今錄制了一些教學(xué)視頻, 把自己的心得發(fā)布出來(lái), 希望對(duì)那些沒錢培訓(xùn)的朋友有所幫助視頻目錄1_Java概述_1 2_Java概述_2 3_Java概述_3 4_Java的卸載 5_Java的安裝 6_環(huán)境變量的設(shè)置 7_常見dos命令 文件名和類名不同時(shí)編譯運(yùn)行的問題 9_復(fù)習(xí)上節(jié)課 10_類和對(duì)象 8_ 變量命名規(guī)則 數(shù)據(jù)類型 運(yùn)算符 格式化輸出 流程控制 11_內(nèi)存分配 12_訪問控制符_1 1
3、3_訪問控制符_2 14_構(gòu)造函數(shù) 15_UltraEdit的使用 16_復(fù)習(xí) 17_函數(shù)的重載 18_構(gòu)造函數(shù) 19_this 20_static 21_復(fù)習(xí) 22_static兩示例_求個(gè)數(shù)_只生成一個(gè)對(duì)象_1 23_static兩示例_求個(gè)數(shù)_只生成一個(gè)對(duì)象_2 24_繼承的由來(lái) 和 繼承的訪問控制權(quán)限_1 25_繼承的由來(lái) 和 繼承的訪問控制權(quán)限_2 26_面向?qū)ο蟮睦^承反映的是現(xiàn)實(shí)中的一般到特殊的關(guān)系 27_Java為什么沒有多繼承 28_復(fù)習(xí)+super_1 29_復(fù)習(xí)+super_2 30_重寫父類方法_1 31_重寫方法示例 32_多態(tài)的語(yǔ)法知識(shí) 33_復(fù)習(xí) 34_多態(tài)注意事項(xiàng)
4、和 實(shí)際應(yīng)用示例 36_接口_1 35_抽象類 和 final 37_接口_2 38_面向?qū)ο髲?fù)習(xí) 39_編譯運(yùn)行含有包層的類_1 40_編譯運(yùn)行含有包層的類_2 41_同包和不同包類的相互訪問 42_復(fù)習(xí) 和 不同包之間的相互訪問_1 43_復(fù)習(xí) 和 不同包之間的相互訪問_2 44_jar包的生成 45_如何使用Jar包 和 包的總回顧 46_異常概述_1 47_異常概述_2 48_復(fù)習(xí) 49_為什么需要異常 50_printStackTrace方法的介紹 51_ 可處理可不處理的異常 和 必須得進(jìn)行處理的異常 52_處理異常的兩種方式 53_finally 54_ 自定義異常 和 thro
5、ws常見錯(cuò)誤解析_1 55_ 自定義異常 和 throws常見錯(cuò)誤解析_2 56_異常復(fù)習(xí) 57_異常 58_ToString()方法介紹_1 59_ToString()方法介紹_2 60_equals_1 61_equals_2 62_復(fù)習(xí) 63_String類的 equals=常量字符串的用法 64_String類的常用方法介紹 字符串和整數(shù)的相互轉(zhuǎn)化 67_復(fù)習(xí) 65_String常用方法舉例 66_printf和println的區(qū)別 68_StringBuffer 69_數(shù)組 70_線程_1 71_復(fù)習(xí) 72_創(chuàng)建線程的第二種方式 73_線程常用方法的介紹 java自學(xué)視頻 源代碼 7
6、4_線程的控制 75_線程同步問題的產(chǎn)生原因 76_復(fù)習(xí) 78_閑聊 79_復(fù)習(xí) 77_買票程序講解 80_生產(chǎn)消費(fèi)程序演示_1 82_awt展望 81_生產(chǎn)消費(fèi)程序演示_2 84_布局管理器 86_復(fù)習(xí) 83_gui 85_事件處理 87_十個(gè)按鈕的設(shè)計(jì) 90_計(jì)算器 可運(yùn)行jar包的生成 89_復(fù)習(xí) 內(nèi)部類 匿名類 92_復(fù)習(xí) 91_什么叫流 流的分類 四大基本抽象流 88_三個(gè)文本框的相加運(yùn)算示例 93字節(jié)流 字符流的使用和它們的區(qū)別 94_緩沖流的使用 95_將一個(gè)長(zhǎng)整型數(shù)寫入字節(jié)數(shù)組再?gòu)淖止?jié)數(shù)組讀出程序講解96_print流 Object流 97_容器的介紹和使用 99_ 復(fù)習(xí) 98
7、_Comparable 接口 Set接口 101_Iterator接口 100_equals和hashCode方法的使用(難點(diǎn)) 103_泛型 102_Map接口的使用 104_網(wǎng)絡(luò)編程基礎(chǔ)知識(shí) UDP編程 105_TCP編程 和 TCP下的WEB服務(wù)器程序的講解 106_JavaSE復(fù)習(xí)大綱_上 107_JavaSE復(fù)習(xí)大綱_下Java概述Java特點(diǎn)Java虛擬機(jī)(JVM)每臺(tái)計(jì)算機(jī)上都有獨(dú)特的java虛擬機(jī);一次編譯到處運(yùn)行;Java應(yīng)用領(lǐng)域 J2SE J2ME J2EEJava基礎(chǔ)知識(shí)Dos命令Java中的注釋標(biāo)識(shí)符關(guān)鍵字?jǐn)?shù)據(jù)類型常量 整型常量、浮點(diǎn)常量、字符常量不同類型變量的存儲(chǔ)范圍
8、數(shù)據(jù)類型轉(zhuǎn)化運(yùn)算符 算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符 賦值運(yùn)算符 位運(yùn)算符運(yùn)算符的優(yōu)先級(jí)流程控制 順序 選擇 循環(huán)函數(shù)的重載面向?qū)ο缶幊蹋ㄉ希┟嫦蜻^程的設(shè)計(jì)思想/面向?qū)ο蟮脑O(shè)計(jì)思想類的定義:靜態(tài)屬性(成員變量); 動(dòng)態(tài)可執(zhí)行的操作(成員方法);對(duì)象的定義程序的執(zhí)行過程(執(zhí)行過程的內(nèi)存管理:堆棧等)內(nèi)存Code segment(代碼段)存放代碼Data segment(數(shù)據(jù)段)存放靜態(tài)變量,字符串常量Stack(棧)存放對(duì)象Heap(堆)存放對(duì)象引用(一個(gè)類的new出多個(gè)對(duì)象,成員變量放在內(nèi)存的不同區(qū)域,但是方法只有一個(gè)且放在代碼段)訪問控制符 public 可以通過外部訪問方式訪問類內(nèi)部的p
9、ublic成員 Protect 默認(rèn) Private 不可以通過外部訪問方式訪問類內(nèi)部的private成員分三個(gè)層次掌握訪問控制符:(1)、類的內(nèi)部訪問在一個(gè)類的內(nèi)部,所有的成員可以相互訪問,訪問控制符是透明的;訪問控制符是針對(duì)類外部訪問而言的;=類內(nèi)/類外=(2)、同一個(gè)包中外部訪問(同包不同類/同包不同類-繼承)通過類的對(duì)象名訪問類的內(nèi)部成員通過類名訪問類的內(nèi)部成員=包內(nèi)/包外=(3)、包函數(shù)調(diào)用的過程:壓棧過程構(gòu)造函數(shù)構(gòu)造函數(shù)的定義和作用:類創(chuàng)建對(duì)象構(gòu)造函數(shù)的返回值問題(構(gòu)造函數(shù)沒有返回值)構(gòu)造函數(shù)數(shù)據(jù)成員的賦值-對(duì)象被創(chuàng)建時(shí)會(huì)對(duì)其中各種類型的成員變量自動(dòng)初始化賦值多個(gè)構(gòu)造函數(shù)可能帶來(lái)的
10、沖突(如果不定義程序就會(huì)默認(rèn)提供,定義后就不再提供)關(guān)鍵字this(理解成當(dāng)前對(duì)象的引用或指針)一個(gè)類的new出多個(gè)對(duì)象,成員變量放在內(nèi)存的不同區(qū)域,但是方法只有一個(gè)且放在代碼段-成員方法如何區(qū)別是哪一個(gè)對(duì)象掉用自己?-每一個(gè)非靜態(tài)方法中都隱含一個(gè)this指針關(guān)鍵字static(成員屬于類)非私有靜態(tài)屬性或方法可以直接用類名訪問,類的對(duì)象也可以直接訪問;靜態(tài)方法不可以訪問非靜態(tài)成員;非靜態(tài)方法可以訪問靜態(tài)成員;Static應(yīng)用:創(chuàng)建對(duì)象計(jì)數(shù);單態(tài)模式-只能創(chuàng)建一個(gè)對(duì)象(見例子 TestStatic_2.java);面向?qū)ο缶幊蹋ㄏ拢├^承(extends)(1)子類內(nèi)部可以訪問父類非私有的成員;
11、(2)子類的外部(子類new出來(lái)的對(duì)象),通過子類對(duì)象名只能訪問從父類繼承過來(lái)的非私有成員(反過來(lái)父類對(duì)象訪問子類的成員同理,子類把public等修飾符也繼承過來(lái)了)(3)通過子類的類名訪問父類的成員總之-私有不能被繼承(私有成員邏輯上已經(jīng)被繼承過來(lái)的,只是不能訪問,因此繼承要慎重否則浪費(fèi)內(nèi)存空間)不同包的繼承問題繼承原則:區(qū)別汽車和車輪的關(guān)系(包含關(guān)系)父類/基類-子類/派生類superjava只允許單繼承(C+允許多繼承)接口可以一定程度上解決單繼承的缺陷Super的使用(見TestSuper_1.java/TestSuper_2.java/TestSuper_3.java)Super的應(yīng)
12、用-情景:父類有很多很多屬性,子類繼承過來(lái)如果一個(gè)個(gè)進(jìn)行初始化就會(huì)太麻煩,可以使用Super調(diào)用父類的構(gòu)造器進(jìn)行初始化總結(jié):1、每個(gè)子類構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super(),如果父類沒有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。2、如果顯示的寫出super();語(yǔ)句,則必須保證該語(yǔ)句是第一條語(yǔ)句,否則會(huì)出錯(cuò)3、super();如果不寫,則編譯器會(huì)自動(dòng)添加,所以此時(shí)如果父類沒有無(wú)參的構(gòu)造函數(shù)就會(huì)出錯(cuò)4、既可以顯示寫super();前提是父類必須有無(wú)參的構(gòu)造函數(shù)也可以顯示寫super(實(shí)參); 前提是父類必須有帶參的構(gòu)造函數(shù)5、調(diào)用父類的構(gòu)造函數(shù)的語(yǔ)句必須借助于super,不能直
13、接寫父類的類名,這與C+不同,6、一個(gè)構(gòu)造函數(shù)中不能寫多個(gè)super(參數(shù)列表)語(yǔ)句;Super.f();方法的重寫-子類要比父類的權(quán)限大(否則多態(tài)無(wú)法實(shí)現(xiàn))TestStudent.java多態(tài)(一個(gè)父類的引用類型變量既可以指向父類對(duì)象也可以指向子類對(duì)象,它可以根據(jù)當(dāng)前時(shí)刻指向的不同,自動(dòng)調(diào)用不同對(duì)象的方法,這就是多態(tài))多態(tài)的作用:同一段代碼做不同的事情(TestPoly_1.java)通過父類的引用只能指向子類從父類繼承過來(lái)的成員;父類的引用永遠(yuǎn)不可能直接賦給子類的引用;只有當(dāng)在父類引用本身指向的就是一個(gè)子類對(duì)象時(shí),才可以把父類引用強(qiáng)制轉(zhuǎn)換為子類引用抽象類(abstract 美æb
14、strækt)的由來(lái):比如“植物”抽象詞abstract class A abstract public void f();/沒有方法體的方法叫做抽象方法,抽象方法沒有方法體 有抽象方法的類一定是抽象類,抽象類不一定有抽象方法;可以定義一個(gè)抽象類的引用(多態(tài)抽象類),但不可以創(chuàng)建一個(gè)抽象類對(duì)象Final: 修飾 整個(gè)類:表示不能被繼承 成員屬性:表示屬性必須被賦值,且只能被賦值一次,通過兩種方式 成員方法:可以繼承但不可以重寫 接口interface(特殊的抽象類)抽象方法和常量屬性的集合接口和抽象類的區(qū)別:抽象類是一個(gè)類可以被繼承,接口不能被繼承只能被實(shí)現(xiàn)用關(guān)鍵字implement
15、s(實(shí)現(xiàn))接口內(nèi)的方法沒有 ,不允許有非抽象方法包:Javac -d . TestPackage.javaJava myPackage.cy.TestPackagePath: exe的路徑Classpath: class的路徑DOS命令:設(shè)置類的路徑:set classpath=c:Documents and setting.同包不同類的訪問:?jiǎn)?dòng)類Javac a.java b.java 兩個(gè)一起編譯同包非私有成員都可以不同包的訪問:共有的類的共有成員才可以被另外一個(gè)包的類訪問Import公有類保證可以在另一個(gè)類中創(chuàng)建對(duì)象,公有方法除了內(nèi)部類 普通類只能用public 或者什么都不修飾如何生成
16、jar包放在一個(gè)文件夾中DOS下 jar cvf xxx.jar *(進(jìn)入當(dāng)前目錄)如何使用jar包Import zhangsan.lidi.A;Set classpath=c:documents and settting.t.jar;面向?qū)ο蟮奶攸c(diǎn):封裝: 訪問控制符:只有private This:一個(gè)對(duì)象只含有屬性的空間 private繼承:java只允許單繼承,私有成員無(wú)法被繼承 重寫:方法名和參數(shù)列表和返回值必須一樣多態(tài):放在java.lang包中的類不需要引入,其他的類都需要手動(dòng)引入Object類的方法-toString()方法一個(gè)類默認(rèn)繼承Object該方法返回“類名哈希碼-該對(duì)象
17、在內(nèi)存堆中的地址”System.out.println(類的對(duì)象名)-實(shí)際輸出的是該對(duì)象的toString()方法所返回的字符串重寫toString方法的意義:為了實(shí)際需要String和StringBuffer:JAVA的StringBuffer類: StringBuffer類和String一樣,也用來(lái)代表字符串,只是由于StringBuffer的內(nèi)部實(shí)現(xiàn)方式和String不同,所以StringBuffer在進(jìn)行字符串處理時(shí),不生成新的對(duì)象,在內(nèi)存使用上要優(yōu)于String類。
18、 所以在實(shí)際使用時(shí),如果經(jīng)常需要對(duì)一個(gè)字符串進(jìn)行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。 在StringBuffer類中存在很多和String類一樣的方法,這些方法在功能上和String類中的功能是完全一樣的。但是有一個(gè)最顯著的區(qū)別在于,對(duì)于StringBuffer對(duì)象的每次修改都會(huì)改變對(duì)象自身,這點(diǎn)是和String類最大的區(qū)別。
19、另外由于StringBuffer是線程安全的,關(guān)于線程的概念后續(xù)有專門的章節(jié)進(jìn)行介紹,所以在多線程程序中也可以很方便的進(jìn)行使用,但是程序的執(zhí)行效率相對(duì)來(lái)說(shuō)就要稍微慢一些。 1、StringBuffer對(duì)象的初始化StringBuffer對(duì)象的初始化不像String類的初始化一樣,Java提供的有特殊的語(yǔ)法,而通常情況下一般使用構(gòu)造方法進(jìn)行初始化。例如: StringBuffer s = new Strin
20、gBuffer();這樣初始化出的StringBuffer對(duì)象是一個(gè)空的對(duì)象。如果需要?jiǎng)?chuàng)建帶有內(nèi)容的StringBuffer對(duì)象,則可以使用: StringBuffer s = new StringBuffer(“abc”);這樣初始化出的StringBuffer對(duì)象的內(nèi)容就是字符串”abc”。需要注意的是,StringBuffer和String屬于不同的類型,也不能直接進(jìn)行強(qiáng)制類型轉(zhuǎn)換,下面的代碼都是錯(cuò)誤的:
21、60; StringBuffer s = “abc”; /賦值類型不匹配 StringBuffer s = (StringBuffer)”abc”; /不存在繼承關(guān)系,無(wú)法進(jìn)行強(qiáng)轉(zhuǎn)StringBuffer對(duì)象和String對(duì)象之間的互轉(zhuǎn)的代碼如下:
22、160; String s = “abc”; StringBuffer sb1 = new StringBuffer(“123”); StringBuffer sb2 = new StringBuffer(s); /String轉(zhuǎn)換為StringBuffer
23、60; String s1 = sb1.toString(); /StringBuffer轉(zhuǎn)換為String 2、StringBuffer的常用方法StringBuffer類中的方法主要偏重于對(duì)于字符串的變化,例如追加、插入和刪除等,這個(gè)也是StringBuffer和String類的主要區(qū)別。a、append方法
24、; public StringBuffer append(boolean b)該方法的作用是追加內(nèi)容到當(dāng)前StringBuffer對(duì)象的末尾,類似于字符串的連接。調(diào)用該方法以后,StringBuffer對(duì)象的內(nèi)容也發(fā)生改變,例如: StringBuffer sb = new StringBuffer(“abc”);
25、60; sb.append(true); 則對(duì)象sb的值將變成”abctrue”。使用該方法進(jìn)行字符串的連接,將比String更加節(jié)約內(nèi)容,例如應(yīng)用于數(shù)據(jù)庫(kù)SQL語(yǔ)句的連接,例如: &
26、#160; StringBuffer sb = new StringBuffer(); String user = “test”; &
27、#160; String pwd = “123”; sb.append(“select * from userInfo where username=“) &
28、#160; .append(user) .append(“ and pwd=”) .append(pwd);
29、 這樣對(duì)象sb的值就是字符串“select * from userInfo where username=test and pwd=123”。b、deleteCharAt方法 public StringBuffer deleteCharAt(int index)該方法的作用是刪除指定位置的字符,然后將剩余的內(nèi)容形成新的字符串。例如:
30、160; StringBuffer sb = new StringBuffer(“Test”); sb. deleteCharAt(1);該代碼的作用刪除字符串對(duì)象sb中索引值為1的字符,也就是刪除第二個(gè)字符,剩余的內(nèi)容組成一個(gè)新的字符串。所以對(duì)象sb的值變?yōu)椤盩st”。還存在一個(gè)功能類似的delete方法: public StringBuffer delete(int start,int end)該方法
31、的作用是刪除指定區(qū)間以內(nèi)的所有字符,包含start,不包含end索引值的區(qū)間。例如: StringBuffer sb = new StringBuffer(“TestString”); sb. delete (1,4);該代碼的作用是刪除索引值1(包括)到索引值4(不包括)之間的所有字符,剩余的字符形成新的字符串。則對(duì)象sb的值是”TString”。
32、0; c、insert方法 public StringBuffer insert(int offset, boolean
33、 b) 該方法的作用是在StringBuffer對(duì)象中插入內(nèi)容,然后形成新的字符串。例如:
34、0; StringBuffer sb = new StringBuffer(“TestString”);
35、160; sb.insert(4,false);該示例代碼的作用是在對(duì)象sb的索引值4的位置插入false值,形成新的字符串,則執(zhí)行以后對(duì)象sb的值是”TestfalseString”。 d、revers
36、e方法 public StringBuffer reverse()該方法的作用是將StringBuffer對(duì)象中的內(nèi)容反轉(zhuǎn),然后形成新的字符串。例如: StringBuffer s
37、b = new StringBuffer(“abc”); sb.reverse();經(jīng)過反轉(zhuǎn)以后,對(duì)象sb中的內(nèi)容將變?yōu)椤眂ba”。 e、setCharAt方法
38、0; public void setCharAt(int index, char ch)
39、0; 該方法的作用是修改對(duì)象中索引值為index位置的字符為新的字符ch。例如: StringBuffer sb = new StringBuffer(“ab
40、c”); sb.setCharAt(1,D); &
41、#160; 則對(duì)象sb的值將變成”aDc”。 f、trimToSize方法
42、 public void trimToSize()該方法的作用是將StringBuffer對(duì)象的中存儲(chǔ)空間縮小到和字符串長(zhǎng)度一樣的長(zhǎng)度,減少空間的浪費(fèi)。 總之,在實(shí)際使用時(shí),String和StringBuffer各有優(yōu)勢(shì)和不足,可以根據(jù)具體的使用環(huán)境,選擇對(duì)應(yīng)的類型進(jìn)行使用。S
43、tring中的equals方法線程:進(jìn)程:一個(gè)程序加載數(shù)據(jù)后的一次運(yùn)行線程:TestThread_1.java 一個(gè)程序的 不同的執(zhí)行路徑單線程:程序一步步執(zhí)行,執(zhí)行完上一步才執(zhí)行下一步,多線程(thread):創(chuàng)建線程后,多個(gè)線程之間交替執(zhí)行時(shí)間片輪轉(zhuǎn)算法創(chuàng)建線程的方法一:繼承Thread【注意】1、Thread中的start()方法的功能就是創(chuàng)建一個(gè)新的線程,并自動(dòng)調(diào)用該線程的run()方法,直接調(diào)用run()方法是不會(huì)創(chuàng)建一個(gè)新的線程的;2、執(zhí)行一個(gè)線程實(shí)際就是執(zhí)行該線程run方法中的代碼;3、執(zhí)行完aa.start();后并不表示aa所對(duì)應(yīng)的線程就一定會(huì)立即得到執(zhí)行,aa.start(
44、);執(zhí)行完后只是表示aa線程具有了可以立即被cpu執(zhí)行的資格,但是由于想搶占cpu執(zhí)行的線程很多,cpu并不一定會(huì)立即去執(zhí)行aa所對(duì)應(yīng)的線程。4、一個(gè)Thread對(duì)象能且只能代表一個(gè)線程,一個(gè)Thread對(duì)象不能調(diào)用兩次start()方法,否則會(huì)拋出java.lang.lllegalThreadStateException異常創(chuàng)建線程的方法二:實(shí)現(xiàn)Runnable接口Class A implements Runnable/使類A具有了run()A aa=new A();Thread t=new Thread(aa);/創(chuàng)建一個(gè)線程,將aa作為運(yùn)行對(duì)象T.start();Thread的常用方法:
45、Public final void setName()/設(shè)置當(dāng)前線程的名字Public static Thread currentThread()/返回當(dāng)前正在執(zhí)行的線程對(duì)象的引用Public final String getName()/返回當(dāng)前線程的名字線程的狀態(tài)切換:線程控制:線程控制的基本方法:isAlive() 判斷線程是否還活著getPriority() 獲取優(yōu)先級(jí)Thread.sleep() 線程休眠Join() 等待另一個(gè)線程運(yùn)行完自己再運(yùn)行(一個(gè)線程用到另一個(gè)線程的結(jié)果)線程的串行化Yield() 線程讓步,讓出CPU,當(dāng)前線程進(jìn)入就緒隊(duì)列Wait() 線程等待Notify(
46、)/NotifyAll() 喚醒一個(gè)/所有線程優(yōu)先級(jí)(1-10 小-大,默認(rèn)5)線程的休眠:線程的掛起和恢復(fù) 線程的結(jié)束線程的同步:賣票(本質(zhì)就是多個(gè)線程訪問一個(gè)資源,線程同步就是保證資源多個(gè)線程處理資源過程中不出現(xiàn)錯(cuò)誤)問題:線程沒處理完,語(yǔ)句沒有執(zhí)行完,就切換到另外一個(gè)線程,If(票數(shù)大于0)/必須只有一個(gè)線程訪問 買一張票; 票數(shù)減一;ABC三個(gè)售票點(diǎn);Synchronized(str) /Synchronized同步修飾一個(gè)方法-霸占正在調(diào)用該方法的對(duì)象修飾一個(gè)方法內(nèi)部的某個(gè)代碼塊引入Synchronized的目的就是讓售票代碼和-tickets;代碼,能要么都執(zhí)行要么都不執(zhí)行;生產(chǎn)和消費(fèi)(本質(zhì)就
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拼圖效果課件教學(xué)課件
- 精細(xì)化管理企業(yè)培訓(xùn)
- 課件畫房間教學(xué)課件
- 腹部瘢痕手術(shù)中的皮膚切口設(shè)計(jì)
- 愛情的課件教學(xué)課件
- 新上崗職工院感培訓(xùn)課件
- 認(rèn)知障礙的評(píng)估與治療
- 深度學(xué)習(xí)及自動(dòng)駕駛應(yīng)用 課件 第8、9章 基于Transformer的自動(dòng)駕駛目標(biāo)檢測(cè)理論與實(shí)踐、生成對(duì)抗網(wǎng)絡(luò)及自動(dòng)駕駛應(yīng)用
- 手機(jī)行業(yè)企業(yè)發(fā)展規(guī)劃
- 初中素質(zhì)訓(xùn)練教案
- 特種設(shè)備安全法全文
- 2024年國(guó)家能源集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 幼兒園的小小科學(xué)家實(shí)驗(yàn)室主題班會(huì)課件
- 變電運(yùn)維管理規(guī)定(試行)第3分冊(cè)組合電器運(yùn)維細(xì)則
- 伴有精神病性癥狀的重度抑郁發(fā)作的護(hù)理查房
- 倉(cāng)儲(chǔ)人員貨物搬運(yùn)與裝卸作業(yè)指南
- 短視頻運(yùn)營(yíng)管理(抖音短視頻運(yùn)營(yíng)崗位職責(zé)說(shuō)明及薪酬績(jī)效考核體系-抖音快手運(yùn)營(yíng)管理KPI績(jī)效)
- 民航概論(民航乘務(wù)專業(yè))全套教學(xué)課件
- 部編版七年級(jí)上冊(cè)語(yǔ)文基礎(chǔ)知識(shí)訓(xùn)練及答案一
- 天文競(jìng)賽復(fù)習(xí)題庫(kù)及答案
- 污泥( 廢水)運(yùn)輸服務(wù)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論