欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      java軟件編程培訓(xùn)

      時(shí)間:2019-05-13 19:39:45下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《java軟件編程培訓(xùn)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《java軟件編程培訓(xùn)》。

      第一篇:java軟件編程培訓(xùn)

      最好的Java軟件編程培訓(xùn)

      西安雁塔尚學(xué)堂計(jì)算機(jī)學(xué)校創(chuàng)辦于2009年,是陜西省培養(yǎng)計(jì)算機(jī)實(shí)用性人才的學(xué)校,學(xué)校以“程序運(yùn)行人生,快樂(lè)魔力學(xué)堂”的口號(hào)名揚(yáng)陜西,并且開(kāi)創(chuàng)了V教學(xué)法等軟件人才培養(yǎng)的模式先河。學(xué)校采用“理論+實(shí)踐”并行的教學(xué)方式,使學(xué)生在這兩者的結(jié)合中掌握一技之長(zhǎng),為社會(huì)培養(yǎng)和輸送了大量的高級(jí)軟件人才。

      學(xué)校坐落于西安軟件園交大捷普大廈,環(huán)境優(yōu)美,更與國(guó)內(nèi)外知名軟件企業(yè)毗鄰,人文氣息濃厚。學(xué)校擁有自己的網(wǎng)站和機(jī)房供學(xué)生進(jìn)行軟件開(kāi)發(fā)、設(shè)計(jì)等課程的實(shí)踐。同時(shí)學(xué)校也是西安工業(yè)大學(xué)計(jì)算機(jī)與工程學(xué)院、陜西國(guó)際商貿(mào)學(xué)院、西安財(cái)經(jīng)學(xué)院統(tǒng)計(jì)學(xué)院、陜西科技大學(xué)理學(xué)院、楊陵職業(yè)技術(shù)學(xué) 院等大學(xué)的實(shí)習(xí)就業(yè)項(xiàng)訓(xùn)基地。

      開(kāi)設(shè)課程軟件編程培訓(xùn),android高級(jí)課程,iphone高級(jí)課程

      招生對(duì)象

      1.iPhone培訓(xùn)課程面向希望把握歷史性機(jī)遇,希望成為iPhone手機(jī)軟件開(kāi)發(fā)的緊缺人才。

      2.計(jì)算機(jī)相關(guān)專業(yè)、大專以及以上學(xué)歷。

      3.本課程同樣適用于希望了解iPhone手機(jī)軟件開(kāi)發(fā),為未來(lái)業(yè)務(wù)轉(zhuǎn)型奠定基礎(chǔ)的企業(yè)技術(shù)團(tuán)隊(duì)。

      免費(fèi)復(fù)訓(xùn) + 企業(yè)進(jìn)階課程 + 終身輔導(dǎo)

      我們?yōu)閷W(xué)員專門(mén)開(kāi)設(shè)QQ群、技術(shù)博客、微博等,學(xué)員到企業(yè)之后,如在技術(shù)和職業(yè)方向遇到任何瓶頸,都可以向?qū)熣?qǐng)教。我們保持對(duì)行業(yè)和技術(shù)的高度敏感,不斷優(yōu)化和豐富課程內(nèi)容,這些新技術(shù)畢業(yè)學(xué)員都可以免費(fèi)學(xué)習(xí),同時(shí)定期舉辦的技術(shù)講座和活動(dòng),也是對(duì)學(xué)員免費(fèi)開(kāi)放的。

      第二篇:JAVA編程心得體會(huì)

      JAVA編程心得

      計(jì)算機(jī)3班

      竇金霞

      20104773

      最近幾周一直在弄程序,說(shuō)實(shí)話真的很累,但累中也有成功的快樂(lè)。我覺(jué)得學(xué)到了很多東西,這是只看課本知識(shí)所不能學(xué)到的。

      說(shuō)實(shí)話,以前我一直沒(méi)學(xué)過(guò)JAVA雖然我也知道JAVA的重要性,可是即使上課聽(tīng)了,不實(shí)踐還是掌握不了。因?yàn)榉N種原因,今年我沒(méi)有買筆記本。沒(méi)有機(jī)器,僅僅靠每周一次的上機(jī)練習(xí)是絕對(duì)不夠的。所以我就插空調(diào)程序,在舍友們不用的時(shí)候自己再接她們的電腦調(diào)。

      調(diào)上一個(gè)WEB版的通訊錄程序時(shí)我已經(jīng)感覺(jué)到學(xué)的很吃力,好多東西都不懂。這次做的這個(gè)學(xué)生成績(jī)管理系統(tǒng)更復(fù)雜了,所以一開(kāi)始調(diào)的時(shí)候感覺(jué)特別吃力.所以我告訴自己不能放棄,慢慢來(lái),就這樣我從最基本的sql語(yǔ)句session對(duì)象開(kāi)始學(xué)起,我覺(jué)得我還有太多不懂得所以要比別人付出更多的努力。就這樣我一點(diǎn)一點(diǎn)的學(xué)著??

      說(shuō)心里話,在做上一個(gè)web版的通訊錄時(shí),我就感覺(jué)到成功的喜悅。好多地方我都是一點(diǎn)一點(diǎn)的問(wèn)的,在問(wèn)的過(guò)程中,我也學(xué)會(huì)了很多,像:Servlet和jsp之間跳不過(guò)去時(shí)有兩種解決辦法,一是關(guān)閉底層類中的db.close;二是將Servlet中的throws Exception改成try catch以捕捉異常;我還學(xué)到了集中查找錯(cuò)誤的方法,可以加上兩個(gè)雙斜杠“//”將具體的方法屏蔽掉,一檢查是方法錯(cuò)誤還是Servlet錯(cuò)誤,還有就是寫(xiě)上System.out.println()將獲得的數(shù)據(jù)輸出,用來(lái)檢查數(shù)據(jù)傳輸過(guò)程有沒(méi)有錯(cuò)誤等等。

      雖然在別人看來(lái),這些方法可能都很常規(guī),但是確實(shí)我自己學(xué)會(huì)的,我覺(jué)得很有成就感。我已經(jīng)做好計(jì)劃了,暑假的時(shí)候去買本本用自己的本本練習(xí)一下JAVA,雖然下學(xué)期不學(xué)JAVA了,但是我對(duì)JAVA的熱情不會(huì)因?yàn)檫@個(gè)而削減的!

      做完這個(gè)學(xué)生成績(jī)管理系統(tǒng)后,我覺(jué)得我對(duì)JAVA的看法已經(jīng)改變了。一前總以為JAVA很繁瑣很難,聽(tīng)同學(xué)說(shuō)JAVA不好學(xué),開(kāi)始又有一些聽(tīng)不懂,所以一直很畏懼JAVA。但真正做了這個(gè)系統(tǒng)以后我才感覺(jué)到其實(shí)任何事都沒(méi)有難與不難之分,只要你肯努力的去做,世上無(wú)難事只怕有心人!

      我現(xiàn)在對(duì)java學(xué)習(xí)充滿了熱情,我知道我還有很多的不足

      還有很多需要努力的地方,所以我的JAVA之旅將繼續(xù)進(jìn)行??

      第三篇:java軟件培訓(xùn)實(shí)習(xí)報(bào)告.

      實(shí)習(xí)報(bào)告

      一、實(shí)習(xí)時(shí)間 2013.01.08--2013.05.18

      二、實(shí)習(xí)地點(diǎn)

      無(wú)錫 NIIT 軟件服務(wù)外包實(shí)訓(xùn)基地

      三、實(shí)習(xí)目的

      進(jìn)一步了解 Java 開(kāi)發(fā)的相關(guān)知識(shí), 掌握 Java 開(kāi)發(fā)的基本技術(shù), 豐富 Java 開(kāi)發(fā)的實(shí)戰(zhàn)經(jīng) 驗(yàn)。學(xué)習(xí)SQL 的基礎(chǔ)知識(shí)及正確的運(yùn)用方法, ssh 等企業(yè)應(yīng)用框架和有用的相關(guān)技術(shù), 提高 自己的工作效率。通過(guò)實(shí)習(xí),培養(yǎng)我們綜合運(yùn)用已學(xué)知識(shí) Java 語(yǔ)言的面向?qū)ο缶幊棠芰?培養(yǎng)我們動(dòng)手能力;培養(yǎng)我們良好編程規(guī)范、編程方法;以便能較全面地理解、掌握和綜合 運(yùn)用所學(xué)的知識(shí), 提高自身的編程能力;增強(qiáng)自己的團(tuán)隊(duì)協(xié)作意識(shí), 了解軟件開(kāi)發(fā)的思考角 度和主要流程。為畢業(yè)之后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作, 打好一定的基礎(chǔ)。

      四、實(shí)習(xí)內(nèi)容概要

      應(yīng)用 java 基礎(chǔ)、MySQL 數(shù)據(jù)庫(kù)、Servlet 技術(shù)、JSP 頁(yè)面設(shè)計(jì)、JQuery、ajax、hibernate、struts2、spring、xml 等技術(shù)完成網(wǎng)站后臺(tái)的開(kāi)發(fā)。

      五、實(shí)習(xí)內(nèi)容 5.1 java基礎(chǔ)知識(shí)

      Java 的基礎(chǔ)知識(shí)對(duì)于一個(gè) java 軟件工程師來(lái)說(shuō)就好比是人的靈魂,現(xiàn)在的公司 在招聘的時(shí)候不在乎你會(huì)不會(huì)流行的技術(shù),如(Struts、Hibernate、Spring、ibatis 等 他看重的 是你的基礎(chǔ)扎不扎實(shí), 對(duì)于網(wǎng)易、騰訊等大公司來(lái)說(shuō)更是如此, 我們?cè)陂_(kāi)發(fā)過(guò)程中運(yùn)用了大 量的 java 基礎(chǔ)知識(shí),如類、對(duì)象、方法、成員變量、靜

      態(tài)變量、封裝、繼承、多態(tài)、異常、接口、抽象類、IO 流?等等等等,所以一個(gè)系統(tǒng)對(duì)于 java 編程基礎(chǔ)的依賴便不言而喻。

      5.2MySQL、Oracle 數(shù)據(jù)庫(kù)的介紹

      MySQL 是最流行的開(kāi)放源碼 SQL 數(shù)據(jù)庫(kù)管理系統(tǒng),它是由 MySQL AB公司開(kāi)發(fā)、發(fā) 布并支持的。MySQL AB是由多名 MySQL 開(kāi)發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開(kāi) 放源碼公司, 結(jié)合了開(kāi)放源碼價(jià)值取向、方法和成功的商業(yè)模型。Oracle 則是以穩(wěn)定性著稱, 在訪問(wèn)量和數(shù)據(jù)大量交換的服務(wù)器中, Oracle 占了大臂的江山, 在開(kāi)發(fā)中主要用到了數(shù)據(jù)庫(kù) 的查詢語(yǔ)句、數(shù)據(jù)庫(kù)的關(guān)系、事物等

      5.3 Java中的常用設(shè)計(jì)模式 5.3.1 工廠模式

      客戶類和工廠類分開(kāi)。消費(fèi)者任何時(shí)候需要某種產(chǎn)品, 只需向工廠請(qǐng)求即可。消費(fèi)者無(wú) 須修改就可以接納新產(chǎn)品。缺點(diǎn)是當(dāng)產(chǎn)品修改時(shí), 工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建 及如何向客戶端提供。

      5.3.2 單例模式

      單例模式的意思就是只有一個(gè)實(shí)例。單例模式確保某一個(gè)類只有一個(gè)實(shí)例, 而且自行實(shí) 例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。這個(gè)類稱為單例類。

      5.4 Servlet & JSP技術(shù)的介紹 5.4.1 什么是 Servlet 一個(gè) servlet 就是 Java 編程語(yǔ)言中的一個(gè)類,它被用來(lái)擴(kuò)展服務(wù)器的性能,服務(wù)器上駐 留著可以通過(guò)“請(qǐng)求-響應(yīng)”編程模型來(lái)訪問(wèn)的應(yīng)用程序。雖然 servlet 可以對(duì)任何類型的請(qǐng) 求產(chǎn)生響應(yīng),但通常只用來(lái)擴(kuò)展 Web 服務(wù)器的應(yīng)用程序。Java Servlet技術(shù)為這些應(yīng)用程序 定義了一個(gè)特定于 HTTP 的 servlet類。

      javax.servlet 和 javax.servlet.http 包為編寫(xiě) servlet 提供了接口和類。所有的 servlet 都必 須實(shí)現(xiàn) Servlet 接口,該接口定義了生命周期方法。

      5.4.2 Servlet的生命周期

      一個(gè) servlet 的生命周期由部署 servlet 的容器來(lái)控制。當(dāng)一個(gè)請(qǐng)求映射到一個(gè) servlet 時(shí), 該容器執(zhí)行下列步驟。

      5.4.3 JSP介紹

      JSP 是由 Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)技術(shù)標(biāo)準(zhǔn)。在 傳統(tǒng)的網(wǎng)頁(yè) HTML 文件(*.htm, *.html中加入 Java 程序 片段(Scriptlet 和 JSP 標(biāo)簽, 就構(gòu)成了 JSP 網(wǎng)頁(yè) java 程序片段可以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 E-mail 等,實(shí)現(xiàn) 建立動(dòng)態(tài)網(wǎng)站所 需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅 是得到的結(jié)果,這樣大大降低了對(duì)客戶瀏覽器的要求,即使客戶瀏覽器端不支持 Java , 也 可以訪問(wèn) JSP 網(wǎng)頁(yè)。

      5.4.4 JSP & Servlet Java Servlet是 JSP 技術(shù)的基礎(chǔ), 而且大型的 Web 應(yīng)用程序的開(kāi)發(fā)需要 Java Servlet和 JSP 配合才能完成。現(xiàn)在許多 Web 服務(wù)器都支持 Servlet , 即使不直接支持 Servlet 的 Web 服務(wù)器, 也可以通過(guò)附件的應(yīng)用服務(wù)器和模塊來(lái)支持 Servlet ,這得益于 Java 的跨平臺(tái)特性。另外, 由于 Servlet 內(nèi)部以線程方式提供提供服務(wù),不必對(duì)于每個(gè)請(qǐng)求都啟動(dòng)一個(gè)進(jìn)程,并且利用 多線程機(jī)制可以同時(shí)為多個(gè)請(qǐng)求服務(wù),因此 Servlet 的效率非常高。

      5.5 MVC 模式

      為了把表現(xiàn)層 presentation 從請(qǐng)求處理 request processing 和數(shù)據(jù)存儲(chǔ) data storage中分離 開(kāi)來(lái), SUN 公司推薦在 JSP 文件中使用一種“模型-視圖-控制器” Model-view-controller 模 式。規(guī)范的 SERVLET 或者分離的 JSP 文件用于處理請(qǐng)求。當(dāng)請(qǐng)求處理完后,控制權(quán)交給一

      個(gè)只作為創(chuàng)建輸出作用的 JSP 頁(yè)。有幾種平臺(tái)都基于服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件 模式(比 如 Struts 和 Spring framework。

      5.6 xml & jquery & ajax 5.6.1 xml Xml 是用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記 數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。主要學(xué)習(xí)了 xml 的語(yǔ)法與讀取 xml。

      5.6.2 jquery query 是繼 prototype 之后又一個(gè)優(yōu)秀的 Javascript 框架, jQuery 使用戶能更方便地處理 HTML documents、events、實(shí)現(xiàn)動(dòng)畫(huà)效果, jQuery 還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明 很全, 而且各種應(yīng)用也說(shuō)得很詳細(xì), 同時(shí)還有許多成熟的插件可供選擇。jQuery 能夠使用戶 的 html 頁(yè)保持代碼和 html 內(nèi)容分離,也就是說(shuō),不用再在 html 里面插入一堆 js 來(lái)調(diào)用命 令了,只需定義 id 即可。

      5.6.3 ajax Ajax 的核心是 JavaScript 對(duì)象 XmlHttpRequest。該對(duì)象在 Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之, XmlHttpRequest 使您可 以使用 JavaScript 向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶, AJAX 不是一種新的編程 語(yǔ)言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的 Web 應(yīng)用程序的技術(shù)。

      5.7三大框架 5.7.1 Struts2 Struts 2是 Struts 的下一代產(chǎn)品,是在 struts 1和 WebWork 的技術(shù)基礎(chǔ)上進(jìn)行了

      合并的全新的 Struts 2框架。其全新的 Struts 2的體系結(jié)構(gòu)與 Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以 WebWork 為核心, 采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求, 這樣的設(shè)計(jì)也使得業(yè)務(wù) 邏輯控制器能夠與 Servlet API完全脫離開(kāi), 所以 Struts 2可以理解為 WebWork 的更新產(chǎn)品。雖然從 Struts 1到 Struts 2有著太大的變化,但是相對(duì)于 WebWork , Struts 2的變化很小。

      5.7.2 Hibernate Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量 級(jí)的對(duì)象封裝, 使得 Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用 JDBC 的場(chǎng)合, 既可以在 Java 的客戶端程序使用, 也可以在 Servlet/JSP的 Web 應(yīng)用中使用, 最具革命意義的是, Hibernate 可以在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP , 完成數(shù)據(jù)持久化的重任。

      5.7.3 Spring spring 在英文里有春天、彈簧、跳躍和泉眼的意思。Spring 也表示是 一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性由 Rod Johnson創(chuàng)建的。框架的主要優(yōu) 勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序 開(kāi)發(fā)提供集成的框架。Spring 使用基本的 JavaBean 來(lái)完成以前只可能由 EJB 完成的事情。

      然而, Spring 的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言, 任何 Java 應(yīng)用都可以從 Spring 中受益。

      六、實(shí)習(xí)總結(jié)及體會(huì)

      通過(guò)這次實(shí)習(xí)機(jī)會(huì),我主要學(xué)習(xí)了以上這些 java 編程的技術(shù),同時(shí)也明白了身處公司 中如何更好地與同事配合, 畢竟在軟件開(kāi)發(fā)中, 你不可能一個(gè)人干完一個(gè)系統(tǒng), 大家都是通 過(guò) svn 等團(tuán)隊(duì)管理工具互相配合完成編程任務(wù)。在實(shí)習(xí)之前, 我對(duì)軟件開(kāi)發(fā)的過(guò)程只有一個(gè) 模糊地印象, 以為只要把代碼編寫(xiě)完之后就算基本上一個(gè)項(xiàng)目

      開(kāi)發(fā)完畢了。然而通過(guò)這次實(shí)習(xí), 徹底顛覆了我的認(rèn)知, 我當(dāng)時(shí)的認(rèn)知無(wú)疑是非常幼稚和可笑的, 完全的軟件開(kāi)發(fā)過(guò)程不 只只是編寫(xiě)代碼, 在編寫(xiě)代碼之前還有好多的事情要做, 比如文檔的編寫(xiě)、對(duì)項(xiàng)目進(jìn)行需求 分析、數(shù)據(jù)庫(kù)設(shè)計(jì)等等。代碼編寫(xiě)完成之后還要進(jìn)行測(cè)試,以及人員的培訓(xùn),這些都是必須 做,也是必不可少的項(xiàng)目,甚至比代碼的編寫(xiě)還重要。

      以前總是覺(jué)得自己干不好編程,沒(méi)有足夠的自信,但通過(guò)一系列知識(shí)的學(xué)習(xí),還有人 際交往能力的提高,我漸漸地認(rèn)識(shí)到如果個(gè)人想要在公司立足,除了要有扎實(shí)的知識(shí)基礎(chǔ), 還必須具備良好的交流溝通能力, 雖然現(xiàn)在我在公司基本沒(méi)出現(xiàn)加班的情況, 但做這一行就 得做好心里準(zhǔn)備,時(shí)刻準(zhǔn)備戰(zhàn)斗,對(duì)于我們現(xiàn)在這個(gè)階段來(lái)說(shuō),實(shí)踐就是提高的唯一捷徑, 在這個(gè)關(guān)鍵的階段中,你必須做到肯吃苦,不怕累,讓知識(shí)和技能來(lái)充實(shí)你的生活,但你回 想這一刻的時(shí)候, 你并不在乎當(dāng)初賺的工資是多少, 上班的時(shí)間是多久, 你只在乎的是你的 技能、經(jīng)驗(yàn)、人際關(guān)系的提高,這樣會(huì)給你帶來(lái)一種成就感,對(duì)于即將畢業(yè)的大學(xué)生來(lái)說(shuō), 經(jīng)驗(yàn)與經(jīng)歷是你以后發(fā)展的敲門(mén)磚, 即將面對(duì)社會(huì)的我們, 再也沒(méi)有校園那一堵堵圍墻能給 我們安全感并保護(hù)著我們, 我們需要面對(duì)社會(huì), 同其他人競(jìng)爭(zhēng), 如果你現(xiàn)在還在糾結(jié)這份工 作很辛苦、工資很低,那你就錯(cuò)了, 你要糾結(jié)的是這份工作能不能學(xué)到東西,你的能力跟你 的報(bào)酬對(duì)不對(duì)等, 如果當(dāng)你發(fā)現(xiàn)你的能力跟你的報(bào)酬嚴(yán)重不對(duì)等或是沒(méi)東西學(xué)習(xí)的時(shí)候, 那 時(shí)你可以選擇到別的地方發(fā)展。

      現(xiàn)在的我沒(méi)事也會(huì)去一些 java 的 QQ 群跟大家交流一番,在這里你能找到很多程序猿(程序員的網(wǎng)絡(luò)叫法 , 大家一起討論技術(shù), 討論問(wèn)題, 探討人生, 雖然很多時(shí)候都是在八卦, 但只有他們才能理解這個(gè)職業(yè)的艱辛,才能與你感同身受。我在開(kāi)發(fā)期間也遇到很多問(wèn)題, 但是我會(huì)試著到網(wǎng)絡(luò)去找答案, 如果實(shí)在找不到我會(huì)試著問(wèn)問(wèn)我的上級(jí), 或者跟一些朋友討 論一下, 如果發(fā)現(xiàn)了這個(gè)問(wèn)題的答案我會(huì)及時(shí)把它記錄下來(lái), 方便以后遇到問(wèn)題可以隨時(shí)翻 閱, 我相信好記性不如爛筆頭這句話, 我也相信如果一個(gè)程序員寫(xiě)的代碼沒(méi)有錯(cuò)誤那只能證 明他沒(méi)寫(xiě)過(guò)代碼, 雖然我比較懶, 但我現(xiàn)在有空的時(shí)候都會(huì)對(duì)著電腦敲代碼, 我相信手感是 敲出來(lái)的,你看 10遍都不如你敲一遍來(lái)得印象深刻。

      通過(guò)這次實(shí)習(xí),我認(rèn)識(shí)到了一個(gè)軟件開(kāi)發(fā)的完整的過(guò)程,為我今后進(jìn)行實(shí)際的工作奠定了 堅(jiān)實(shí)的基礎(chǔ)。首先,進(jìn)入公司,你就是一名職業(yè)人,不再是一名學(xué)生,你要具備一名職業(yè)人 應(yīng)具備的素養(yǎng), 不遲到不早退是必然的, 而且還要時(shí)刻嚴(yán)格要求自己, 公司的規(guī)定要嚴(yán)格遵 守。然后, 在技術(shù)上也有了很大的提高, 學(xué)習(xí)了很多公司自己的框架和工具,這都是一些前 輩的寶貴經(jīng)驗(yàn)。而且所作的軟件應(yīng)用性更強(qiáng)。所以,在今后的學(xué)習(xí)中我會(huì)嚴(yán)于律己,認(rèn)真學(xué)習(xí)有關(guān)軟件編程的課,為以后的工作打好堅(jiān)實(shí)的基礎(chǔ)。

      第四篇:軟件編程學(xué)習(xí)心得

      軟件編程學(xué)習(xí)心得

      隨著計(jì)算機(jī)技術(shù)的發(fā)展和工作的需要,為了能夠更好的維護(hù)公司生產(chǎn)管理系統(tǒng);公司安排我們到北大青鳥(niǎo)APTECH進(jìn)修。我們選擇了時(shí)下最流行、發(fā)展速度較快的語(yǔ)言C#。C#學(xué)習(xí)共分三個(gè)階段,目前我只學(xué)習(xí)了第一個(gè)階段;現(xiàn)將我在北大青鳥(niǎo)學(xué)習(xí)第一階段為期兩個(gè)月的學(xué)習(xí)心得總結(jié)如下:

      C#是一種新的面向?qū)ο蟮木幊陶Z(yǔ)言,專門(mén)用于.NET運(yùn)行時(shí)。C#編譯器只能生成受管制的代碼,也可以使用.NET基類。C#語(yǔ)言自C/C++演變而來(lái)。但是,它具有簡(jiǎn)單、現(xiàn)代、完全面向?qū)ο蠛皖愋桶踩戎T多特性。下面就簡(jiǎn)單說(shuō)說(shuō)簡(jiǎn)單和現(xiàn)代其中兩種特性。

      1、簡(jiǎn)單

      C#具有C++所沒(méi)有的一個(gè)優(yōu)勢(shì)就是學(xué)習(xí)簡(jiǎn)單。該語(yǔ)言首要的目標(biāo)就是簡(jiǎn)單。很多功能(還不如說(shuō)是缺少了C++的一些功能)有助于C#全方位的簡(jiǎn)單。

      在C#中,沒(méi)有C++中流行的指針。默認(rèn)地,您工作在受管理的代碼中,在那里不允許如直接存取內(nèi)存等不安全的操作。我想沒(méi)有C++程序員可以聲稱,從沒(méi)有使用指針訪問(wèn)過(guò)不屬于他們的內(nèi)存。

      C#棄用其它操作符,名字空間、成員和引用僅使用單個(gè)操作符 “.”?,F(xiàn)在一個(gè)程序員所需要理解的就是嵌套名字的注解了。

      C#使用統(tǒng)一的類型系統(tǒng)。這種系統(tǒng)充許您把各種類型作為一個(gè)對(duì)象查看,它是一個(gè)原始類型還是一個(gè)full-blown 類。和其它編程語(yǔ)言相比,由于加框(boxing)和消框(unboxing)的機(jī)制,把簡(jiǎn)單類型當(dāng)作對(duì)象處理并不能獲得性能的改善。稍后將詳細(xì)解釋加框和消框,但基本上僅當(dāng)需要時(shí)才使用對(duì)象訪問(wèn)簡(jiǎn)單類型這種技術(shù)。

      2、現(xiàn)代

      投入學(xué)習(xí)C#的努力是一筆大投資,因?yàn)镃#是為編寫(xiě)NGWS 應(yīng)用程序的主要語(yǔ)言而設(shè)計(jì)。很多用C++可以實(shí)現(xiàn)或者很費(fèi)力實(shí)現(xiàn)的功能,在C#中不過(guò)是一部分基本的功能而已。根據(jù)應(yīng)用程序的特殊需求,可以很容易地創(chuàng)建出新的一種數(shù)據(jù)類型。

      指針不再是編程武器的一部分。運(yùn)行時(shí)NGWS提供了一個(gè)垃圾收集器,負(fù)責(zé)C#程序中的內(nèi)存管理。因內(nèi)存和應(yīng)用程序都受到管理,所以很必要增強(qiáng)類型安全,以確保應(yīng)用的穩(wěn)定性。

      異常處理是C#的主要功能。C#的異常處理與C++的不同點(diǎn)在于它是交叉語(yǔ)言的(運(yùn)行時(shí)的另一個(gè)功能)。在沒(méi)有C#之前,您必須處理怪異的HRESULTs,但現(xiàn)在由于使用了基于異常的健壯的出錯(cuò)處理,這一切都結(jié)束了。

      對(duì)于現(xiàn)代的應(yīng)用程序,安全是首要的,C#也不會(huì)例外。它提供了元數(shù)據(jù)語(yǔ)法,用于聲明下述NGWS安全模式的能力和許可。元數(shù)據(jù)是NGWS運(yùn)行時(shí)的一個(gè)關(guān)鍵的概念。

      通兩個(gè)多月學(xué)習(xí),我能夠很好的掌握C#語(yǔ)言的基本語(yǔ)句、語(yǔ)法以及老師補(bǔ)充的一些要點(diǎn);能夠編寫(xiě)簡(jiǎn)單的應(yīng)用程序,例如電子郵件的收發(fā)等,為接下來(lái)的第二、第三階段學(xué)習(xí)打下了良好的基礎(chǔ)。

      第五篇:Java多線程編程總結(jié)

      Java多線程編程總結(jié)

      2007-05-17 11:21:59 標(biāo)簽:java 多線程

      原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處、作者信息和本聲明。否則將追究法律責(zé)任。http://lavasoft.blog.51cto.com/62575/27069

      Java多線程編程總結(jié)

      下面是Java線程系列博文的一個(gè)編目:

      Java線程:概念與原理 Java線程:創(chuàng)建與啟動(dòng)

      Java線程:線程棧模型與線程的變量 Java線程:線程狀態(tài)的轉(zhuǎn)換 Java線程:線程的同步與鎖 Java線程:線程的交互 Java線程:線程的調(diào)度-休眠 Java線程:線程的調(diào)度-優(yōu)先級(jí) Java線程:線程的調(diào)度-讓步 Java線程:線程的調(diào)度-合并 Java線程:線程的調(diào)度-守護(hù)線程 Java線程:線程的同步-同步方法 Java線程:線程的同步-同步塊

      Java線程:并發(fā)協(xié)作-生產(chǎn)者消費(fèi)者模型 Java線程:并發(fā)協(xié)作-死鎖 Java線程:volatile關(guān)鍵字 Java線程:新特征-線程池

      Java線程:新特征-有返回值的線程 Java線程:新特征-鎖(上)Java線程:新特征-鎖(下)Java線程:新特征-信號(hào)量 Java線程:新特征-阻塞隊(duì)列 Java線程:新特征-阻塞棧 Java線程:新特征-條件變量 Java線程:新特征-原子量 Java線程:新特征-障礙器 Java線程:大總結(jié)

      ----

      下面的內(nèi)容是很早之前寫(xiě)的,內(nèi)容不夠充實(shí),而且是基于Java1.4的內(nèi)容,Java5之后,線程并發(fā)部分?jǐn)U展了相當(dāng)多的內(nèi)容,因此建議大家看上面的系列文章的內(nèi)容,與時(shí)俱進(jìn),跟上Java發(fā)展的步伐。----

      一、認(rèn)識(shí)多任務(wù)、多進(jìn)程、單線程、多線程 要認(rèn)識(shí)多線程就要從操作系統(tǒng)的原理說(shuō)起。

      以前古老的DOS操作系統(tǒng)(V 6.22)是單任務(wù)的,還沒(méi)有線程的概念,系統(tǒng)在每次只能做一件事情。比如你在copy東西的時(shí)候不能rename文件名。為了提高系統(tǒng)的利用效率,采用批處理來(lái)批量執(zhí)行任務(wù)。

      現(xiàn)在的操作系統(tǒng)都是多任務(wù)操作系統(tǒng),每個(gè)運(yùn)行的任務(wù)就是操作系統(tǒng)所做的一件事情,比如你在聽(tīng)歌的同時(shí)還在用MSN和好友聊天。聽(tīng)歌和聊天就是兩個(gè)任務(wù),這個(gè)兩個(gè)任務(wù)是“同時(shí)”進(jìn)行的。一個(gè)任務(wù)一般對(duì)應(yīng)一個(gè)進(jìn)程,也可能包含好幾個(gè)進(jìn)程。比如運(yùn)行的MSN就對(duì)應(yīng)一個(gè)MSN的進(jìn)程,如果你用的是windows系統(tǒng),你就可以在任務(wù)管理器中看到操作系統(tǒng)正在運(yùn)行的進(jìn)程信息。

      一般來(lái)說(shuō),當(dāng)運(yùn)行一個(gè)應(yīng)用程序的時(shí)候,就啟動(dòng)了一個(gè)進(jìn)程,當(dāng)然有些會(huì)啟動(dòng)多個(gè)進(jìn)程。啟動(dòng)進(jìn)程的時(shí)候,操作系統(tǒng)會(huì)為進(jìn)程分配資源,其中最主要的資源是內(nèi)存空間,因?yàn)槌绦蚴窃趦?nèi)存中運(yùn)行的。在進(jìn)程中,有些程序流程塊是可以亂序執(zhí)行的,并且這個(gè)代碼塊可以同時(shí)被多次執(zhí)行。實(shí)際上,這樣的代碼塊就是線程體。線程是進(jìn)程中亂序執(zhí)行的代碼流程。當(dāng)多個(gè)線程同時(shí)運(yùn)行的時(shí)候,這樣的執(zhí)行模式成為并發(fā)執(zhí)行。

      多線程的目的是為了最大限度的利用CPU資源。

      Java編寫(xiě)程序都運(yùn)行在在Java虛擬機(jī)(JVM)中,在JVM的內(nèi)部,程序的多任務(wù)是通過(guò)線程來(lái)實(shí)現(xiàn)的。每用java命令啟動(dòng)一個(gè)java應(yīng)用程序,就會(huì)啟動(dòng)一個(gè)JVM進(jìn)程。在同一個(gè)JVM進(jìn)程中,有且只有一個(gè)進(jìn)程,就是它自己。在這個(gè)JVM環(huán)境中,所有程序代碼的運(yùn)行都是以線程來(lái)運(yùn)行。

      一般常見(jiàn)的Java應(yīng)用程序都是單線程的。比如,用java命令運(yùn)行一個(gè)最簡(jiǎn)單的HelloWorld的Java應(yīng)用程序時(shí),就啟動(dòng)了一個(gè)JVM進(jìn)程,JVM找到程序程序的入口點(diǎn)main(),然后運(yùn)行main()方法,這樣就產(chǎn)生了一個(gè)線程,這個(gè)線程稱之為主線程。當(dāng)main方法結(jié)束后,主線程運(yùn)行完成。JVM進(jìn)程也隨即退出。

      對(duì)于一個(gè)進(jìn)程中的多個(gè)線程來(lái)說(shuō),多個(gè)線程共享進(jìn)程的內(nèi)存塊,當(dāng)有新的線程產(chǎn)生的時(shí)候,操作系統(tǒng)不分配新的內(nèi)存,而是讓新線程共享原有的進(jìn)程塊的內(nèi)存。因此,線程間的通信很容易,速度也很快。不同的進(jìn)程因?yàn)樘幱诓煌膬?nèi)存塊,因此進(jìn)程之間的通信相對(duì)困難。

      實(shí)際上,操作的系統(tǒng)的多進(jìn)程實(shí)現(xiàn)了多任務(wù)并發(fā)執(zhí)行,程序的多線程實(shí)現(xiàn)了進(jìn)程的并發(fā)執(zhí)行。多任務(wù)、多進(jìn)程、多線程的前提都是要求操作系統(tǒng)提供多任務(wù)、多進(jìn)程、多線程的支持。

      在Java程序中,JVM負(fù)責(zé)線程的調(diào)度。線程調(diào)度是值按照特定的機(jī)制為多個(gè)線程分配CPU的使用權(quán)。調(diào)度的模式有兩種:分時(shí)調(diào)度和搶占式調(diào)度。分時(shí)調(diào)度是所有線程輪流獲得CPU使用權(quán),并平均分配每個(gè)線程占用CPU的時(shí)間;搶占式調(diào)度是根據(jù)線程的優(yōu)先級(jí)別來(lái)獲取CPU的使用權(quán)。JVM的線程調(diào)度模式采用了搶占式模式。

      所謂的“并發(fā)執(zhí)行”、“同時(shí)”其實(shí)都不是真正意義上的“同時(shí)”。眾所周知,CPU都有個(gè)時(shí)鐘頻率,表示每秒中能執(zhí)行cpu指令的次數(shù)。在每個(gè)時(shí)鐘周期內(nèi),CPU實(shí)際上只能去執(zhí)行一條(也有可能多條)指令。操作系統(tǒng)將進(jìn)程線程進(jìn)行管理,輪流(沒(méi)有固定的順序)分配每個(gè)進(jìn)程很短的一段是時(shí)間(不一定是均分),然后在每個(gè)線程內(nèi)部,程序代碼自己處理該進(jìn)程內(nèi)部線程的時(shí)間分配,多個(gè)線程之間相互的切換去執(zhí)行,這個(gè)切換時(shí)間也是非常短的。因此多任務(wù)、多進(jìn)程、多線程都是操作系統(tǒng)給人的一種宏觀感受,從微觀角度看,程序的運(yùn)行是異步執(zhí)行的。

      用一句話做總結(jié):雖然操作系統(tǒng)是多線程的,但CPU每一時(shí)刻只能做一件事,和人的大腦是一樣的,呵呵。

      二、Java與多線程

      Java語(yǔ)言的多線程需要操作系統(tǒng)的支持。

      Java 虛擬機(jī)允許應(yīng)用程序并發(fā)地運(yùn)行多個(gè)執(zhí)行線程。Java語(yǔ)言提供了多線程編程的擴(kuò)展點(diǎn),并給出了功能強(qiáng)大的線程控制API。

      在Java中,多線程的實(shí)現(xiàn)有兩種方式: 擴(kuò)展java.lang.Thread類 實(shí)現(xiàn)java.lang.Runnable接口

      每個(gè)線程都有一個(gè)優(yōu)先級(jí),高優(yōu)先級(jí)線程的執(zhí)行優(yōu)先于低優(yōu)先級(jí)線程。每個(gè)線程都可以或不可以標(biāo)記為一個(gè)守護(hù)程序。當(dāng)某個(gè)線程中運(yùn)行的代碼創(chuàng)建一個(gè)新 Thread 對(duì)象時(shí),該新線程的初始優(yōu)先級(jí)被設(shè)定為創(chuàng)建線程的優(yōu)先級(jí),并且當(dāng)且僅當(dāng)創(chuàng)建線程是守護(hù)線程時(shí),新線程才是守護(hù)程序。

      當(dāng) Java 虛擬機(jī)啟動(dòng)時(shí),通常都會(huì)有單個(gè)非守護(hù)線程(它通常會(huì)調(diào)用某個(gè)指定類的 main 方法)。Java 虛擬機(jī)會(huì)繼續(xù)執(zhí)行線程,直到下列任一情況出現(xiàn)時(shí)為止:

      調(diào)用了 Runtime 類的 exit 方法,并且安全管理器允許退出操作發(fā)生。

      非守護(hù)線程的所有線程都已停止運(yùn)行,無(wú)論是通過(guò)從對(duì) run 方法的調(diào)用中返回,還是通過(guò)拋出一個(gè)傳播到 run 方法之外的異常。

      三、擴(kuò)展java.lang.Thread類

      /** * File Name: TestMitiThread.java * Created by: IntelliJ IDEA.* Copyright: Copyright(c)2003-2006 * Company: Lavasoft([url]http://lavasoft.blog.51cto.com/[/url])* Author: leizhimin * Modifier: leizhimin * Date Time: 2007-5-17 10:03:12 * Readme: 通過(guò)擴(kuò)展Thread類實(shí)現(xiàn)多線程 */ public class TestMitiThread { public static void main(String[] rags){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開(kāi)始!”);new MitiSay(“A”).start();new MitiSay(“B”).start();System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      class MitiSay extends Thread { public MitiSay(String threadName){ super(threadName);}

      public void run(){ System.out.println(getName()+ “ 線程運(yùn)行開(kāi)始!”);for(int i = 0;i < 10;i++){ System.out.println(i + “ ” + getName());try { sleep((int)Math.random()* 10);} catch(InterruptedException e){ e.printStackTrace();} } System.out.println(getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      運(yùn)行結(jié)果:

      main 線程運(yùn)行開(kāi)始!main 線程運(yùn)行結(jié)束!A 線程運(yùn)行開(kāi)始!0 A 1 A B 線程運(yùn)行開(kāi)始!2 A 0 B 3 A 4 A 1 B 5 A 6 A 7 A 8 A 9 A A 線程運(yùn)行結(jié)束!2 B 3 B 4 B 5 B 6 B 7 B 8 B 9 B B 線程運(yùn)行結(jié)束!說(shuō)明:

      程序啟動(dòng)運(yùn)行main時(shí)候,java虛擬機(jī)啟動(dòng)一個(gè)進(jìn)程,主線程main在main()調(diào)用時(shí)候被創(chuàng)建。隨著調(diào)用MitiSay的兩個(gè)對(duì)象的start方法,另外兩個(gè)線程也啟動(dòng)了,這樣,整個(gè)應(yīng)用就在多線程下運(yùn)行。

      在一個(gè)方法中調(diào)用Thread.currentThread().getName()方法,可以獲取當(dāng)前線程的名字。在mian方法中調(diào)用該方法,獲取的是主線程的名字。

      注意:start()方法的調(diào)用后并不是立即執(zhí)行多線程代碼,而是使得該線程變?yōu)榭蛇\(yùn)行態(tài)(Runnable),什么時(shí)候運(yùn)行是由操作系統(tǒng)決定的。

      從程序運(yùn)行的結(jié)果可以發(fā)現(xiàn),多線程程序是亂序執(zhí)行。因此,只有亂序執(zhí)行的代碼才有必要設(shè)計(jì)為多線程。

      Thread.sleep()方法調(diào)用目的是不讓當(dāng)前線程獨(dú)自霸占該進(jìn)程所獲取的CPU資源,以留出一定時(shí)間給其他線程執(zhí)行的機(jī)會(huì)。

      實(shí)際上所有的多線程代碼執(zhí)行順序都是不確定的,每次執(zhí)行的結(jié)果都是隨機(jī)的。

      四、實(shí)現(xiàn)java.lang.Runnable接口

      /** * 通過(guò)實(shí)現(xiàn) Runnable 接口實(shí)現(xiàn)多線程 */ public class TestMitiThread1 implements Runnable {

      public static void main(String[] args){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開(kāi)始!”);TestMitiThread1 test = new TestMitiThread1();Thread thread1 = new Thread(test);Thread thread2 = new Thread(test);thread1.start();thread2.start();System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);}

      public void run(){ System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行開(kāi)始!”);for(int i = 0;i < 10;i++){ System.out.println(i + “ ” + Thread.currentThread().getName());try { Thread.sleep((int)Math.random()* 10);} catch(InterruptedException e){ e.printStackTrace();} } System.out.println(Thread.currentThread().getName()+ “ 線程運(yùn)行結(jié)束!”);} }

      運(yùn)行結(jié)果:

      main 線程運(yùn)行開(kāi)始!Thread-0 線程運(yùn)行開(kāi)始!main 線程運(yùn)行結(jié)束!0 Thread-0 Thread-1 線程運(yùn)行開(kāi)始!0 Thread-1 1 Thread-1 1 Thread-0 2 Thread-0 2 Thread-1 3 Thread-0 3 Thread-1 4 Thread-0 4 Thread-1 5 Thread-0 6 Thread-0 5 Thread-1 7 Thread-0 8 Thread-0 6 Thread-1 9 Thread-0 7 Thread-1 Thread-0 線程運(yùn)行結(jié)束!8 Thread-1 9 Thread-1 Thread-1 線程運(yùn)行結(jié)束!說(shuō)明:

      TestMitiThread1類通過(guò)實(shí)現(xiàn)Runnable接口,使得該類有了多線程類的特征。run()方法是多線程程序的一個(gè)約定。所有的多線程代碼都在run方法里面。Thread類實(shí)際上也是實(shí)現(xiàn)了Runnable接口的類。

      在啟動(dòng)的多線程的時(shí)候,需要先通過(guò)Thread類的構(gòu)造方法Thread(Runnable target)構(gòu)造出對(duì)象,然后調(diào)用Thread對(duì)象的start()方法來(lái)運(yùn)行多線程代碼。

      實(shí)際上所有的多線程代碼都是通過(guò)運(yùn)行Thread的start()方法來(lái)運(yùn)行的。因此,不管是擴(kuò)展Thread類還是實(shí)現(xiàn)Runnable接口來(lái)實(shí)現(xiàn)多線程,最終還是通過(guò)Thread的對(duì)象的API來(lái)控制線程的,熟悉Thread類的API是進(jìn)行多線程編程的基礎(chǔ)。

      五、讀解Thread類API

      static int MAX_PRIORITY 線程可以具有的最高優(yōu)先級(jí)。static int MIN_PRIORITY 線程可以具有的最低優(yōu)先級(jí)。static int NORM_PRIORITY 分配給線程的默認(rèn)優(yōu)先級(jí)。

      構(gòu)造方法摘要

      Thread(Runnable target)分配新的 Thread 對(duì)象。Thread(String name)分配新的 Thread 對(duì)象。

      方法摘要

      static Thread currentThread()返回對(duì)當(dāng)前正在執(zhí)行的線程對(duì)象的引用。ClassLoader getContextClassLoader()返回該線程的上下文 ClassLoader。long getId()返回該線程的標(biāo)識(shí)符。String getName()返回該線程的名稱。int getPriority()返回線程的優(yōu)先級(jí)。Thread.State getState()返回該線程的狀態(tài)。ThreadGroup getThreadGroup()返回該線程所屬的線程組。static boolean holdsLock(Object obj)當(dāng)且僅當(dāng)當(dāng)前線程在指定的對(duì)象上保持監(jiān)視器鎖時(shí),才返回 true。void interrupt()中斷線程。

      static boolean interrupted()測(cè)試當(dāng)前線程是否已經(jīng)中斷。boolean isAlive()測(cè)試線程是否處于活動(dòng)狀態(tài)。boolean isDaemon()測(cè)試該線程是否為守護(hù)線程。boolean isInterrupted()測(cè)試線程是否已經(jīng)中斷。void join()等待該線程終止。void join(long millis)等待該線程終止的時(shí)間最長(zhǎng)為 millis 毫秒。void join(long millis, int nanos)等待該線程終止的時(shí)間最長(zhǎng)為 millis 毫秒 + nanos 納秒。void resume()已過(guò)時(shí)。該方法只與 suspend()一起使用,但 suspend()已經(jīng)遭到反對(duì),因?yàn)樗哂兴梨i傾向。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。void run()如果該線程是使用獨(dú)立的 Runnable 運(yùn)行對(duì)象構(gòu)造的,則調(diào)用該 Runnable 對(duì)象的 run 方法;否則,該方法不執(zhí)行任何操作并返回。void setContextClassLoader(ClassLoader cl)設(shè)置該線程的上下文 ClassLoader。void setDaemon(boolean on)將該線程標(biāo)記為守護(hù)線程或用戶線程。

      static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)設(shè)置當(dāng)線程由于未捕獲到異常而突然終止,并且沒(méi)有為該線程定義其他處理程序時(shí)所調(diào)用的默認(rèn)處理程序。void setName(String name)改變線程名稱,使之與參數(shù) name 相同。void setPriority(int newPriority)更改線程的優(yōu)先級(jí)。

      void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)設(shè)置該線程由于未捕獲到異常而突然終止時(shí)調(diào)用的處理程序。static void sleep(long millis)在指定的毫秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行)。static void sleep(long millis, int nanos)在指定的毫秒數(shù)加指定的納秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行)。void start()使該線程開(kāi)始執(zhí)行;Java 虛擬機(jī)調(diào)用該線程的 run 方法。void stop()已過(guò)時(shí)。該方法具有固有的不安全性。用 Thread.stop 來(lái)終止線程將釋放它已經(jīng)鎖定的所有監(jiān)視器(作為沿堆棧向上傳播的未檢查 ThreadDeath 異常的一個(gè)自然后果)。如果以前受這些監(jiān)視器保護(hù)的任何對(duì)象都處于一種不一致的狀態(tài),則損壞的對(duì)象將對(duì)其他線程可見(jiàn),這有可能導(dǎo)致任意的行為。stop 的許多使用都應(yīng)由只修改某些變量以指示目標(biāo)線程應(yīng)該停止運(yùn)行的代碼來(lái)取代。目標(biāo)線程應(yīng)定期檢查該變量,并且如果該變量指示它要停止運(yùn)行,則從其運(yùn)行方法依次返回。如果目標(biāo)線程等待很長(zhǎng)時(shí)間(例如基于一個(gè)條件變量),則應(yīng)使用 interrupt 方法來(lái)中斷該等待。有關(guān)更多信息,請(qǐng)參閱《為何不贊成使用 Thread.stop、Thread.suspend 和 Thread.resume?》。void stop(Throwable obj)已過(guò)時(shí)。該方法具有固有的不安全性。請(qǐng)參閱 stop()以獲得詳細(xì)信息。該方法的附加危險(xiǎn)是它可用于生成目標(biāo)線程未準(zhǔn)備處理的異常(包括若沒(méi)有該方法該線程不太可能拋出的已檢查的異常)。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。void suspend()已過(guò)時(shí)。該方法已經(jīng)遭到反對(duì),因?yàn)樗哂泄逃械乃梨i傾向。如果目標(biāo)線程掛起時(shí)在保護(hù)關(guān)鍵系統(tǒng)資源的監(jiān)視器上保持有鎖,則在目標(biāo)線程重新開(kāi)始以前任何線程都不能訪問(wèn)該資源。如果重新開(kāi)始目標(biāo)線程的線程想在調(diào)用 resume 之前鎖定該監(jiān)視器,則會(huì)發(fā)生死鎖。這類死鎖通常會(huì)證明自己是“凍結(jié)”的進(jìn)程。有關(guān)更多信息,請(qǐng)參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對(duì)?。String toString()返回該線程的字符串表示形式,包括線程名稱、優(yōu)先級(jí)和線程組。static void yield()暫停當(dāng)前正在執(zhí)行的線程對(duì)象,并執(zhí)行其他線程。

      六、線程的狀態(tài)轉(zhuǎn)換圖

      線程在一定條件下,狀態(tài)會(huì)發(fā)生變化。線程變化的狀態(tài)轉(zhuǎn)換圖如下:

      1、新建狀態(tài)(New):新創(chuàng)建了一個(gè)線程對(duì)象。

      2、就緒狀態(tài)(Runnable):線程對(duì)象創(chuàng)建后,其他線程調(diào)用了該對(duì)象的start()方法。該狀態(tài)的線程位于可運(yùn)行線程池中,變得可運(yùn)行,等待獲取CPU的使用權(quán)。

      3、運(yùn)行狀態(tài)(Running):就緒狀態(tài)的線程獲取了CPU,執(zhí)行程序代碼。

      4、阻塞狀態(tài)(Blocked):阻塞狀態(tài)是線程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:

      (一)、等待阻塞:運(yùn)行的線程執(zhí)行wait()方法,JVM會(huì)把該線程放入等待池中。

      (二)、同步阻塞:運(yùn)行的線程在獲取對(duì)象的同步鎖時(shí),若該同步鎖被別的線程占用,則JVM會(huì)把該線程放入鎖池中。

      (三)、其他阻塞:運(yùn)行的線程執(zhí)行sleep()或join()方法,或者發(fā)出了I/O請(qǐng)求時(shí),JVM會(huì)把該線程置為阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線程終止或者超時(shí)、或者I/O處理完畢時(shí),線程重新轉(zhuǎn)入就緒狀態(tài)。

      5、死亡狀態(tài)(Dead):線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。

      七、線程的調(diào)度

      1、調(diào)整線程優(yōu)先級(jí):Java線程有優(yōu)先級(jí),優(yōu)先級(jí)高的線程會(huì)獲得較多的運(yùn)行機(jī)會(huì)。

      Java線程的優(yōu)先級(jí)用整數(shù)表示,取值范圍是1~10,Thread類有以下三個(gè)靜態(tài)常量: static int MAX_PRIORITY 線程可以具有的最高優(yōu)先級(jí),取值為10。static int MIN_PRIORITY 線程可以具有的最低優(yōu)先級(jí),取值為1。static int NORM_PRIORITY 分配給線程的默認(rèn)優(yōu)先級(jí),取值為5。

      Thread類的setPriority()和getPriority()方法分別用來(lái)設(shè)置和獲取線程的優(yōu)先級(jí)。

      每個(gè)線程都有默認(rèn)的優(yōu)先級(jí)。主線程的默認(rèn)優(yōu)先級(jí)為T(mén)hread.NORM_PRIORITY。

      線程的優(yōu)先級(jí)有繼承關(guān)系,比如A線程中創(chuàng)建了B線程,那么B將和A具有相同的優(yōu)先級(jí)。JVM提供了10個(gè)線程優(yōu)先級(jí),但與常見(jiàn)的操作系統(tǒng)都不能很好的映射。如果希望程序能移植到各個(gè)操作系統(tǒng)中,應(yīng)該僅僅使用Thread類有以下三個(gè)靜態(tài)常量作為優(yōu)先級(jí),這樣能保證同樣的優(yōu)先級(jí)采用了同樣的調(diào)度方式。

      2、線程睡眠:Thread.sleep(long millis)方法,使線程轉(zhuǎn)到阻塞狀態(tài)。millis參數(shù)設(shè)定睡眠的時(shí)間,以毫秒為單位。當(dāng)睡眠結(jié)束后,就轉(zhuǎn)為就緒(Runnable)狀態(tài)。sleep()平臺(tái)移植性好。

      3、線程等待:Object類中的wait()方法,導(dǎo)致當(dāng)前的線程等待,直到其他線程調(diào)用此對(duì)象的 notify()方法或 notifyAll()喚醒方法。這個(gè)兩個(gè)喚醒方法也是Object類中的方法,行為等價(jià)于調(diào)用 wait(0)一樣。

      4、線程讓步:Thread.yield()方法,暫停當(dāng)前正在執(zhí)行的線程對(duì)象,把執(zhí)行機(jī)會(huì)讓給相同或者更高優(yōu)先級(jí)的線程。

      5、線程加入:join()方法,等待其他線程終止。在當(dāng)前線程中調(diào)用另一個(gè)線程的join()方法,則當(dāng)前線程轉(zhuǎn)入阻塞狀態(tài),直到另一個(gè)進(jìn)程運(yùn)行結(jié)束,當(dāng)前線程再由阻塞轉(zhuǎn)為就緒狀態(tài)。

      6、線程喚醒:Object類中的notify()方法,喚醒在此對(duì)象監(jiān)視器上等待的單個(gè)線程。如果所有線程都在此對(duì)象上等待,則會(huì)選擇喚醒其中一個(gè)線程。選擇是任意性的,并在對(duì)實(shí)現(xiàn)做出決定時(shí)發(fā)生。線程通過(guò)調(diào)用其中一個(gè) wait 方法,在對(duì)象的監(jiān)視器上等待。直到當(dāng)前的線程放棄此對(duì)象上的鎖定,才能繼續(xù)執(zhí)行被喚醒的線程。被喚醒的線程將以常規(guī)方式與在該對(duì)象上主動(dòng)同步的其他所有線程進(jìn)行競(jìng)爭(zhēng);例如,喚醒的線程在作為鎖定此對(duì)象的下一個(gè)線程方面沒(méi)有可靠的特權(quán)或劣勢(shì)。類似的方法還有一個(gè)notifyAll(),喚醒在此對(duì)象監(jiān)視器上等待的所有線程。注意:Thread中suspend()和resume()兩個(gè)方法在JDK1.5中已經(jīng)廢除,不再介紹。因?yàn)橛兴梨i傾向。

      7、常見(jiàn)線程名詞解釋

      主線程:JVM調(diào)用程序mian()所產(chǎn)生的線程。

      當(dāng)前線程:這個(gè)是容易混淆的概念。一般指通過(guò)Thread.currentThread()來(lái)獲取的進(jìn)程。后臺(tái)線程:指為其他線程提供服務(wù)的線程,也稱為守護(hù)線程。JVM的垃圾回收線程就是一個(gè)后臺(tái)線程。

      前臺(tái)線程:是指接受后臺(tái)線程服務(wù)的線程,其實(shí)前臺(tái)后臺(tái)線程是聯(lián)系在一起,就像傀儡和幕后操縱者一樣的關(guān)系??苁乔芭_(tái)線程、幕后操縱者是后臺(tái)線程。由前臺(tái)線程創(chuàng)建的線程默認(rèn)也是前臺(tái)線程??梢酝ㄟ^(guò)isDaemon()和setDaemon()方法來(lái)判斷和設(shè)置一個(gè)線程是否為后臺(tái)線程。

      本文出自 “熔 巖” 博客,請(qǐng)務(wù)必保留此出處http://lavasoft.blog.51cto.com/62575/27069

      下載java軟件編程培訓(xùn)word格式文檔
      下載java軟件編程培訓(xùn).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        Java基礎(chǔ)編程題

        【程序1】題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?1.程序分析: 兔子的......

        Java編程語(yǔ)言面試題

        西安英泰移動(dòng)通信學(xué)院S2級(jí)Java編程語(yǔ)言測(cè)試題 1 Java編程語(yǔ)言面試題 一、簡(jiǎn)答題 1、 簡(jiǎn)述用Java編程語(yǔ)言編寫(xiě)、編譯、解釋和執(zhí)行過(guò)程。 2、 簡(jiǎn)述在Java JDK中,java.exe程序的......

        java高級(jí)編程教學(xué)大綱

        《Java高級(jí)編程》教學(xué)大綱 鄭州大學(xué)軟件技術(shù)學(xué)院 一、 課程的性質(zhì)與任務(wù) 本課程是軟件開(kāi)發(fā)專業(yè)開(kāi)設(shè)的程序設(shè)計(jì)類高級(jí)課程,學(xué)生在學(xué)習(xí)了《程序設(shè)計(jì)導(dǎo)論》,初步具備了一定的程......

        Java AWT編程總結(jié)

        1. 什么是GUI? a) GUI是Graphics User Interface的全稱,意思是圖形用戶界面. 2. 為什么需要GUI? a) 圖形用戶界面能夠讓最終用戶通過(guò)鼠標(biāo)拖動(dòng)、單擊等動(dòng)作就可以操作整個(gè)應(yīng)......

        Java線程編程總結(jié)

        線程編程方面60、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用? 答:有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接......

        Java AWT編程總結(jié)

        1. 什么是GUI? a) GUI是Graphics User Interface的全稱,意思是圖形用戶界面. 2. 為什么需要GUI? a) 圖形用戶界面能夠讓最終用戶通過(guò)鼠標(biāo)拖動(dòng)、單擊等動(dòng)作就可以操作整個(gè)應(yīng)......

        Java JDBC編程總結(jié)

        Java JDBC編程總結(jié) Hibernate、TopLink等OR Mapping操作數(shù)據(jù)庫(kù)的技術(shù)都是建立JDBC技術(shù)之上的,實(shí)際來(lái)說(shuō),他們的性能和JDBC是有很大差距的,但反過(guò)來(lái)說(shuō),如果JDBC用不好,還不如hibern......

        java編程實(shí)習(xí)心得體會(huì)

        Java編程實(shí)習(xí)心得體會(huì) “紙上得來(lái)終覺(jué)淺,絕知此事要躬行?!痹诙虝旱膶?shí)習(xí)過(guò)程中,我深深的感覺(jué)到自己所學(xué)知識(shí)的膚淺和在實(shí)際運(yùn)用中的專業(yè)知識(shí)的匱乏。剛開(kāi)始的一段時(shí)間里,對(duì)一......