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

正文內(nèi)容

java論文簡易瀏覽器與java思想(doc畢業(yè)設(shè)計論文)-文庫吧

2025-06-09 18:37 本頁面


【正文】 些行為,他能干什么?。?。每個人都有身高、體重、年齡、血型等等一些屬性。人會勞動、人都會直立行走、人都會 用自己的頭腦去創(chuàng)造工具等等這些方法!人之所以能區(qū)別于其它類型的動物,是因為每個人都具有人這個群體的屬性與方法。“人類”只是一個抽象的概念,它僅僅 是一個概念,它是不存在的實體!但是所有具備“人類”這個群體的屬性與方法的對象都叫人!這個對象“人”是實際存在的實體!每個人都是人這個群體的一個對象。老虎為什么不是人?因為它不具備人這個群體的屬性與方法,老虎不會直立行走,不會使用工具等等!所以說老虎不是人!由此可見類描述了一組有相同特性(屬性)和相同行為(方法)的對象。在程序中,類實際上就是數(shù)據(jù)類型!例如:整數(shù),小數(shù)等等。整數(shù)也有一組特性和行為。面向過程的語言與面相對象的語言的區(qū)別就在于,面向過程的語言不允許程序員自己定義數(shù)據(jù)類型,而只能使用程序中內(nèi)置的數(shù)據(jù)類型!而為了模擬真實世界,為了更好的解決問題,往往我們需要創(chuàng)建解決問題所必需的數(shù)據(jù)類型!面向?qū)ο缶幊虨槲覀兲峁┝私鉀Q方案。我學(xué)習(xí) java 有半年時間,對類與對象的理解僅限于這種水平,例子舉得有點死板,理論說的有點抽象。在我個人看來,java 這種面向?qū)ο蟮木幊陶Z言,即便你不理解什么是對象思想,但只要你能調(diào)動控件,讓程序做你想要做的事,那么什么是思想、類、對象,無所謂。 多線程學(xué)習(xí)多線程往往存在下列疑惑:a. 線程的 wait()、notify()方法到底是做什么時候用的,什么時候用?b. A 對象實現(xiàn) Runnable 接口,()運行后所謂的線程對象是誰?是 A 么?c. 線程的 wait()、notify()方法到底是做什么時候用的,什么時候用?d. 為什么線程的 suspend 方法會被標注過時,不推薦再使用,線程還能掛起么?e. 為了同步我們會對線程方法聲明 Synchronized 來加鎖在對象上,那么如果父類的 f()方法加了 Synchronized,子類重寫 f()方法必須也加 Synchronized 么?如果子類的f()方法重寫時聲明 Synchronized 并調(diào)用 (),那么子類對象上到底有幾把鎖呢?會因為競爭產(chǎn)生死鎖么?首先第一點,線程跟對象完全是兩回事,雖然我們也常說線程對象。但當你用run()和 start()來啟動一個線程之后,線程其實跟這個繼承了 Thread 或?qū)崿F(xiàn)了 Runnable的對象已經(jīng)沒有關(guān)系了,對象只能算內(nèi)存中可用資源而對象的方法只能算內(nèi)存正文區(qū)可以執(zhí)行的代碼段而已。既然是資源和代碼段,另外一個線程當然也可以去訪問,main 函數(shù)執(zhí)行就至少會啟動兩個線程,一個我們稱之為主線程,還一個是垃圾收集器的線程,主線程結(jié)束就意味著程序結(jié)束,可垃圾收集器線程很可能正在工作。第二點,wait()和 sleep()類似,都是讓線程處于阻塞狀態(tài)暫停一段時間,不同之處在于 wait 會釋放當前線程占有的所有的鎖,而 sleep 不會。我們知道獲得鎖的唯一方法是進入了 Synchronized 保護代碼段,所以大家會發(fā)現(xiàn)只有 Synchronized 方法中才會出現(xiàn) wait,直接寫會給警告沒有獲得當前對象的鎖。所以 notify 跟 wait 配合使用,notify 會重新把鎖還給阻塞的線程重而使其繼續(xù)執(zhí)行,當有多個對象 wait 了,notify 不能確定喚醒哪一個,必經(jīng)鎖只有一把,所以一般用 notifyAll()來讓它們自己根據(jù)優(yōu)先級等競爭那唯一的一把鎖,競爭到的線程執(zhí)行,其他線程只要繼續(xù) wait。從前 Java 允許在一個線程之外把線程掛起,即調(diào)用 suspend 方法,這樣的操作是極不安全的。根據(jù)面向?qū)ο蟮乃枷朊總€對象必須對自己的行為負責(zé),而對自己的權(quán)力進行封裝。如果任何外步對象都能使線程被掛起而阻塞的話,程序往往會出現(xiàn)混亂導(dǎo)致崩潰,所以這樣的方法自然是被斃掉了啦。最后一個問題比較有意思,首先回答的是子類重寫 f()方法可以加 Synchronized 也可以不加,如果加了而且還內(nèi)部調(diào)用了 ()的話理論上是應(yīng)該對同一對象加兩把鎖的,因為每次調(diào)用 Synchronized 方法都要加一把,調(diào)用子類的 f 首先就加了一把,進入方法內(nèi)部調(diào)用父類的 f 又要加一把,加兩把不是互斥的么?那么調(diào)父類 f 加鎖不就必須永遠等待已經(jīng)加的鎖釋放而造成死鎖么?實際上是不會的,這個機制叫重進入,當父類的 f 方法試圖在本對象上再加一把鎖的時候,因為當前線程擁有這個對象的鎖,也可以理解為開啟它的鑰匙,所以同一個線程在同一對象上還沒釋放之前加第二次鎖是不會出問題的,這個鎖其實根本就沒有加,它有了鑰匙,不管加幾把還是可以進入鎖保護的代碼段,暢通無阻,所以叫重進入,我們可以簡單認為第二把鎖沒有加上去。其實,Synchronized 的本質(zhì)是不讓其他線程在同一對象上再加一把鎖。 關(guān)于 jdk 和 jre大家肯定在安裝 JDK 的時候會有選擇是否安裝單獨的 jre,一般都會一起安裝,我也建議大家這樣做。因為這樣更能幫助大家弄清楚它們的區(qū)別:Jre 是 java runtime environment,是 java 程序的運行環(huán)境。既然是運行,當然要包含 jvm,也就是大家熟悉的虛擬機啦,還有所有 java 類庫的 class 文件,都在 lib 目錄下打包成了 jar。大家可以自己驗證。至于在 windows 上的虛擬機是哪個文件呢?學(xué)過 MFC 的都知道什么是 dll文件吧,那么大家看看 jre/bin/client 里面是不是有一個 呢?那就是虛擬機。Jdk 是 java development kit,是 java 的開發(fā)工具包,里面包含了各種類庫和工具。當然也包括了另外一個 Jre 呢?而且 jdk/jre/bin 同時有client 和 server 兩個文件夾下都包含一個 。說明是有兩個虛擬機的。這一點不知道大家是否注意到了呢?相信大家都知道 jdk 的 bin 下有各種 java 程序需要用到的命令,與 jre 的 bin 目錄最明顯的區(qū)別就是 jdk 下才有 javac,這一點很好理解,因為 jre 只是一個運行環(huán)境而已。與開發(fā)無關(guān),正因為如此,具備開發(fā)功能的 jdk 自己的 jre 下才會同時有 client 性質(zhì)的 jvm 和 server 性質(zhì)的 jvm,而僅僅作為運行環(huán)境的 jre 下只需要client 性質(zhì)的 就夠了。記得在環(huán)境變量 path 中設(shè)置 jdk/bin 路徑麼?這應(yīng)該是大家學(xué)習(xí) Java 的第一步吧,老師會告訴大家不設(shè)置的話 javac 和 java 是用不了的。確實 jdk/bin 目錄下包含了所有的命令??墒怯袥]有人想過我們用的 java 命令并不是 jdk/bin 目錄下的而是 jre/bin 目錄下的,大家可以把 jdk/bin 目錄下的 剪切到別的地方再運行 java 程序,一切運轉(zhuǎn)正常!試想一下如果 java 為了提供給大多數(shù)人使用,他們是不需要 jdk 做開發(fā)的,只需要 jre 能讓 java 程序跑起來就可以了,那么每個客戶還需要手動去設(shè)置環(huán)境變量多麻煩啊?所以安裝 jre 的時候安裝程序自動幫你把 jre 的 添加到了系統(tǒng)變量中,驗證的方。如果強行能夠把 jdk/b
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1