久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

java編程實習心得體會

時間:2019-05-12 16:02:38下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《java編程實習心得體會》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《java編程實習心得體會》。

第一篇:java編程實習心得體會

Java編程實習心得體會

“紙上得來終覺淺,絕知此事要躬行。”在短暫的實習過程中,我深深的感覺到自己所學知識的膚淺和在實際運用中的專業知識的匱乏。剛開始的一段時間里,對一些工作感到無從下手,茫然不培訓班學習心得體會知所措,這讓我感到非常的難過。在學校總以為自己學的不錯,一旦接觸到實際,才發現自己得能力是遠遠沒有達到工作的要求的,實際的工作遠比想象中的要細致得多復雜得多,這時才真正領悟到“活到老學到老”的含義。實際的工作能力是書本實習心得體會范文上沒有辦法教授給大家的,必須要通過實際工作來積累與強化。來公司實習已兩個個多月了,在這段時間里,我主要學習java編程,下面主要談談學習的經驗以及心得體會。

在編程過程中遇到了較多的問題,解決問題的過程是漫長而艱苦的,然而在問題得到解決的一剎那是很快樂的。在此與大家分享下:

一、前期規劃:

我理解的前期規劃是:在市場人員們匯總一個需求提交給產品專家帶領的產品經理團隊,然后經過這個團隊根據公司具體情況再次分析和規劃出一個最終需求文檔。

這個需求文檔應當首先提交給技術研發部門的負責人以及核心開發人員。由開發團隊對其進行技術和風險分析。如果對此需求統一有異議的地方,需要返回給產品團隊,重新修正需求。反復如此,直至需求完善準確,細致,清晰。

前期規劃就像高樓的地基,如果馬馬虎虎,就算是一塊磚塊沒擺好都可能導致整個高樓建設的失敗。在規劃中我認為,交流永遠是需要雙方積極主動,能認真聽取每個人的建議。前期工作思維不慎重,不細致,不認真,不夠完善,將產生連鎖效應直接導致整個工程和項目的失敗。

這種失敗可能表現為:第一種,軟件按需求實現但是功能根本不能滿足用戶需要。第二種,功能都有了,軟件沒有達到可用性、易用性。

對于第一種,當然是因為前期規劃疏漏了某些細小功能,沒能把需求文檔做完善。應該是規劃工作做的還不夠認真和細致。

對于第二種情況,我認為更多是在產品設計規劃方面經驗還不夠成熟。這種問題應該是很難避免的。因為每種新產品對產品團隊來說都很陌生。即使以前做過類似的東西,也難免面面俱到。這只能通過不斷努力和認真的態度來彌補。

前期規劃的交流涉及了市場、產品和技術研發等多個團隊之間。需要的不僅是團隊內部的交流,更多需要協調好團隊之間的交流。可能有時候需要公司高層和中層參與協調。

目前,很多開發人員深感項目的需求文檔寫的都很單薄。大家可以想一想,如果沒有好的開始,怎么會有好的結束呢?需求文檔單薄,不夠細致,由誰來繼續完善呢?難道讓程序員們自己去完善。我想程序員也可能沒有這種能力。對于程序員能把代碼寫的很健壯很穩定就已經是很不容易的事情了。

二、概要設計:

我理解的概要設計步驟:(以項目為中心的開發流程)

1〉 項目經理仔細閱讀項目需求文檔。

2〉 項目經理召集項目開發成員,開項目啟動會議。具體商議項目的開發任務和責任分配。

3〉 核心開發人員開發確定,以及各模塊開發人員確定。4〉 由系統分析員和核心開發人員仔細閱讀需求文檔,對系統整個架構分析和做技術規劃。

5〉 系統分析員整理和書寫最終的系統架構和概要設計文檔。

6〉 系統分析員在文檔提交日,提交給項目經理。項目經理確認文檔并審批。

7〉 項目經理召集項目開發成員,開一個概要設計以及系統架構確定的會議。向每個成員分發文檔,并討論確定最終概要設計文檔。

8〉開始詳細設計文檔的工作

三、詳細設計:

1〉項目經理組織成立各個模塊的開發小組,并確定開發小組組長(程序經理)。

2〉各開發組長書寫各自模塊的詳細設計文檔,開發成員需要協助,配合。

3〉在指定提交日,開發組長提交文檔給系統分析員。由系統分析員審批。

4〉系統分析員組織召開一個詳細設計文檔確認的會議。

5〉然后開發組長分發各自模塊的詳細設計文檔給程序員,程序員在指定時間

內完成。

6〉程序員做內部測試。開發組長協調并配合。

7〉確認無bug提交給開發組組長。

8〉所有模塊整合工作,由整個開發組成員參與完成。

由所有開發組長和系統分析員負責主要部分工作。程序員協助和配合。

9〉對整合后工程做詳細測試。

10〉確認測試通過后,開發組長根據開發成員表現以及提交成果

填寫績效考核表。然后提交給項目經理。

11項目經理會召開項目總結會,同時向優秀成員頒獎。同時鼓

勵所有成員繼續努力。對不能按時完成導致項目能按時提交,以及對導致失敗的 關鍵人員給與懲罰處理。

當然,以上只是一個簡單的開發流程,一定是有很多不足的地方。希望能起到拋磚引玉的作用。大家都明白,流程和制度是死的,但人是活的,所以如何按流程做得好,關鍵還是在人本身了。沒有一個流程和制度,一個團隊也必將是一盤散沙。正所謂“無規矩無以成方圓”。這句話說得很有道理。

四、具體編碼:

開發幾個項目之后,對編寫程序有了更進一步的了解。

好的程序應該具有:

易讀性,易擴展性,容錯性。易讀性: 所有變量和函數以及類名用簡單易懂易記憶的命名方式。所有類和

函數甚至變量都有關鍵的注釋說明。

這點很重要,也是最基礎的。如果代碼書寫

不夠美觀和易懂,我想自己以后也不想再看。

就更別談功能的擴展和新版本開發了。

易擴展性: 整體系統架構邏輯簡單清晰。

模塊與模塊之間盡量做到互不影響,也就是盡可能的獨立。這部分工作主要體現在前期設計工作中,需要掌握好的設計經驗和方法才能夠做得比較好。

容錯性: 對數據流和指針以及數組都做數據有效性檢查;對第三方接口的調

用失敗的容錯性。對所有代碼都做調用失敗后的錯誤處理。

以及在大的工程中加入trace文件輸出,把關鍵的數據流和關鍵處理部分的操作信息輸出。

以便對工程異常情況產生條件的定位,及時解決問題。

我覺得程序員能在這三方面做得很好就算一個優秀的programmer了。

四、調試、跟蹤與測試 測試需要注意的:

對每個模塊的接口做測試,數據邊界的檢查。在對整個模塊做測試。主要測試穩定性,效率以及功能是否正常。確認單個模塊完全正常后,再加入工程。

在系統架構設計的時候,可能會引入原型參考。要對原型做完成測試后,確認沒有問題后,才可使用。

五、收獲與體會:

在鼎慧大數據公司的實習結束了,看著自己親手寫出來的幾個案例,內心非常激動,整個實習過程充滿濃厚的學習氛圍。在這里,我對Java的認識與理解上升了一個檔次,當初對Java只是一知半解,而在這里學習了一段時間后,發現自己對Java還是很感興趣的。課堂上老師認真地講解各個方面的知識,每一個知識點都會講解地非常清楚,讓我們理解透徹,并且會加以程序聯系,讓我們充分地吸收一天所學的知識。實習從開始的緊張畏懼到后來的喜歡習慣,在這里留下的記憶是深刻的、收獲是豐盛的、汗水是晶瑩的。

通過這次實習,此次實習過程中的收獲主要有四個方面:一是通過直接參與企業的運作過程,學到了實踐知識,同時進一步加深了對理論知識的理解,使理論與實踐知識都有所提高,圓滿地完成了此次實習的實踐任務。二是提高了實際工作能力,為就業和將來的工作取得了一些寶貴的實踐經驗。三是在實習過程中成立一個小組,彼此之間互相溝通,互相幫助,為了達成共同的目標而努力,讓我看到了大家對于工作的熱情,還有每個人的工作能力。四是為畢業論文積累了素材和資料。

于是,在未來的日子,我將做到以下幾點:

1、繼續學習,不斷提升理論涵養

在信息時代,學習是不斷地汲取新信息,獲得事業進步的動力。認真學習java,使自己具有更好的專業知識,為以后就業做準備。作為一名青年學子更應該把學習作為保持工作積極性的重要途徑,不斷努力,不斷進步。

2、努力實踐,自覺進行角色轉化

理論是灰色的,生活之樹常青,只有將理論付諸于實踐才能實現理論自身的價值,也只有將理論付諸于實踐才能使理論得以檢驗。同樣,一個人的價值也是通過實踐活動來實現的,也只有通過實踐才能鍛煉人的品質,彰現人的意志。

從學校走向社會,首要面臨的問題便是角色轉換的問題。從一個學生轉化為一個單位人,在思想的層面上,必須認識到二者的社會角色之間存在著較大的差異。學生時代只是單純的學習知識,而社會實踐則意味著繼續學習,并將知識應用于實踐,學生時代可以自己選擇交往的對象,而社會人則更多地被他人所選擇。諸此種種的差異。不勝枚舉。但僅僅在思想的層面上認識到這一點還是不夠的,而是必須在實際的工作和生活中潛心體會,并自覺的進行這種角色的轉換。

3、提高學習積極性和主動性

實習,是開端也是結束。展現在自己面前的是一片任自己馳騁的沃土,也分明感受到了沉甸甸的責任。在今后的學習和生活中,我將繼續努力學習,深入實踐,不斷提升自我,努力創造成績,繼續創造更多的人生價值。

4、要培養自己的團結合作精神

工作學習生活中,團結合作,是必須的。項目經理說過,一個完整的程序不是由一個人完成的,而是由一個團隊完成的,每個人完成一部分的模塊,然后整合起來才是完美的程序。所以在項目中,每個人都是力量必要的。因此,培養自己的團結合作能力,是以后的工作的必要準備。

第二篇:JAVA編程心得體會

JAVA編程心得

計算機3班

竇金霞

20104773

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

說實話,以前我一直沒學過JAVA雖然我也知道JAVA的重要性,可是即使上課聽了,不實踐還是掌握不了。因為種種原因,今年我沒有買筆記本。沒有機器,僅僅靠每周一次的上機練習是絕對不夠的。所以我就插空調程序,在舍友們不用的時候自己再接她們的電腦調。

調上一個WEB版的通訊錄程序時我已經感覺到學的很吃力,好多東西都不懂。這次做的這個學生成績管理系統更復雜了,所以一開始調的時候感覺特別吃力.所以我告訴自己不能放棄,慢慢來,就這樣我從最基本的sql語句session對象開始學起,我覺得我還有太多不懂得所以要比別人付出更多的努力。就這樣我一點一點的學著??

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

雖然在別人看來,這些方法可能都很常規,但是確實我自己學會的,我覺得很有成就感。我已經做好計劃了,暑假的時候去買本本用自己的本本練習一下JAVA,雖然下學期不學JAVA了,但是我對JAVA的熱情不會因為這個而削減的!

做完這個學生成績管理系統后,我覺得我對JAVA的看法已經改變了。一前總以為JAVA很繁瑣很難,聽同學說JAVA不好學,開始又有一些聽不懂,所以一直很畏懼JAVA。但真正做了這個系統以后我才感覺到其實任何事都沒有難與不難之分,只要你肯努力的去做,世上無難事只怕有心人!

我現在對java學習充滿了熱情,我知道我還有很多的不足

還有很多需要努力的地方,所以我的JAVA之旅將繼續進行??

第三篇:Java多線程編程總結

Java多線程編程總結

2007-05-17 11:21:59 標簽:java 多線程

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處、作者信息和本聲明。否則將追究法律責任。http://lavasoft.blog.51cto.com/62575/27069

Java多線程編程總結

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

Java線程:概念與原理 Java線程:創建與啟動

Java線程:線程棧模型與線程的變量 Java線程:線程狀態的轉換 Java線程:線程的同步與鎖 Java線程:線程的交互 Java線程:線程的調度-休眠 Java線程:線程的調度-優先級 Java線程:線程的調度-讓步 Java線程:線程的調度-合并 Java線程:線程的調度-守護線程 Java線程:線程的同步-同步方法 Java線程:線程的同步-同步塊

Java線程:并發協作-生產者消費者模型 Java線程:并發協作-死鎖 Java線程:volatile關鍵字 Java線程:新特征-線程池

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

----

下面的內容是很早之前寫的,內容不夠充實,而且是基于Java1.4的內容,Java5之后,線程并發部分擴展了相當多的內容,因此建議大家看上面的系列文章的內容,與時俱進,跟上Java發展的步伐。----

一、認識多任務、多進程、單線程、多線程 要認識多線程就要從操作系統的原理說起。

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

現在的操作系統都是多任務操作系統,每個運行的任務就是操作系統所做的一件事情,比如你在聽歌的同時還在用MSN和好友聊天。聽歌和聊天就是兩個任務,這個兩個任務是“同時”進行的。一個任務一般對應一個進程,也可能包含好幾個進程。比如運行的MSN就對應一個MSN的進程,如果你用的是windows系統,你就可以在任務管理器中看到操作系統正在運行的進程信息。

一般來說,當運行一個應用程序的時候,就啟動了一個進程,當然有些會啟動多個進程。啟動進程的時候,操作系統會為進程分配資源,其中最主要的資源是內存空間,因為程序是在內存中運行的。在進程中,有些程序流程塊是可以亂序執行的,并且這個代碼塊可以同時被多次執行。實際上,這樣的代碼塊就是線程體。線程是進程中亂序執行的代碼流程。當多個線程同時運行的時候,這樣的執行模式成為并發執行。

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

Java編寫程序都運行在在Java虛擬機(JVM)中,在JVM的內部,程序的多任務是通過線程來實現的。每用java命令啟動一個java應用程序,就會啟動一個JVM進程。在同一個JVM進程中,有且只有一個進程,就是它自己。在這個JVM環境中,所有程序代碼的運行都是以線程來運行。

一般常見的Java應用程序都是單線程的。比如,用java命令運行一個最簡單的HelloWorld的Java應用程序時,就啟動了一個JVM進程,JVM找到程序程序的入口點main(),然后運行main()方法,這樣就產生了一個線程,這個線程稱之為主線程。當main方法結束后,主線程運行完成。JVM進程也隨即退出。

對于一個進程中的多個線程來說,多個線程共享進程的內存塊,當有新的線程產生的時候,操作系統不分配新的內存,而是讓新線程共享原有的進程塊的內存。因此,線程間的通信很容易,速度也很快。不同的進程因為處于不同的內存塊,因此進程之間的通信相對困難。

實際上,操作的系統的多進程實現了多任務并發執行,程序的多線程實現了進程的并發執行。多任務、多進程、多線程的前提都是要求操作系統提供多任務、多進程、多線程的支持。

在Java程序中,JVM負責線程的調度。線程調度是值按照特定的機制為多個線程分配CPU的使用權。調度的模式有兩種:分時調度和搶占式調度。分時調度是所有線程輪流獲得CPU使用權,并平均分配每個線程占用CPU的時間;搶占式調度是根據線程的優先級別來獲取CPU的使用權。JVM的線程調度模式采用了搶占式模式。

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

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

二、Java與多線程

Java語言的多線程需要操作系統的支持。

Java 虛擬機允許應用程序并發地運行多個執行線程。Java語言提供了多線程編程的擴展點,并給出了功能強大的線程控制API。

在Java中,多線程的實現有兩種方式: 擴展java.lang.Thread類 實現java.lang.Runnable接口

每個線程都有一個優先級,高優先級線程的執行優先于低優先級線程。每個線程都可以或不可以標記為一個守護程序。當某個線程中運行的代碼創建一個新 Thread 對象時,該新線程的初始優先級被設定為創建線程的優先級,并且當且僅當創建線程是守護線程時,新線程才是守護程序。

當 Java 虛擬機啟動時,通常都會有單個非守護線程(它通常會調用某個指定類的 main 方法)。Java 虛擬機會繼續執行線程,直到下列任一情況出現時為止:

調用了 Runtime 類的 exit 方法,并且安全管理器允許退出操作發生。

非守護線程的所有線程都已停止運行,無論是通過從對 run 方法的調用中返回,還是通過拋出一個傳播到 run 方法之外的異常。

三、擴展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: 通過擴展Thread類實現多線程 */ public class TestMitiThread { public static void main(String[] rags){ System.out.println(Thread.currentThread().getName()+ “ 線程運行開始!”);new MitiSay(“A”).start();new MitiSay(“B”).start();System.out.println(Thread.currentThread().getName()+ “ 線程運行結束!”);} }

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

public void run(){ System.out.println(getName()+ “ 線程運行開始!”);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()+ “ 線程運行結束!”);} }

運行結果:

main 線程運行開始!main 線程運行結束!A 線程運行開始!0 A 1 A B 線程運行開始!2 A 0 B 3 A 4 A 1 B 5 A 6 A 7 A 8 A 9 A A 線程運行結束!2 B 3 B 4 B 5 B 6 B 7 B 8 B 9 B B 線程運行結束!說明:

程序啟動運行main時候,java虛擬機啟動一個進程,主線程main在main()調用時候被創建。隨著調用MitiSay的兩個對象的start方法,另外兩個線程也啟動了,這樣,整個應用就在多線程下運行。

在一個方法中調用Thread.currentThread().getName()方法,可以獲取當前線程的名字。在mian方法中調用該方法,獲取的是主線程的名字。

注意:start()方法的調用后并不是立即執行多線程代碼,而是使得該線程變為可運行態(Runnable),什么時候運行是由操作系統決定的。

從程序運行的結果可以發現,多線程程序是亂序執行。因此,只有亂序執行的代碼才有必要設計為多線程。

Thread.sleep()方法調用目的是不讓當前線程獨自霸占該進程所獲取的CPU資源,以留出一定時間給其他線程執行的機會。

實際上所有的多線程代碼執行順序都是不確定的,每次執行的結果都是隨機的。

四、實現java.lang.Runnable接口

/** * 通過實現 Runnable 接口實現多線程 */ public class TestMitiThread1 implements Runnable {

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

public void run(){ System.out.println(Thread.currentThread().getName()+ “ 線程運行開始!”);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()+ “ 線程運行結束!”);} }

運行結果:

main 線程運行開始!Thread-0 線程運行開始!main 線程運行結束!0 Thread-0 Thread-1 線程運行開始!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 線程運行結束!8 Thread-1 9 Thread-1 Thread-1 線程運行結束!說明:

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

在啟動的多線程的時候,需要先通過Thread類的構造方法Thread(Runnable target)構造出對象,然后調用Thread對象的start()方法來運行多線程代碼。

實際上所有的多線程代碼都是通過運行Thread的start()方法來運行的。因此,不管是擴展Thread類還是實現Runnable接口來實現多線程,最終還是通過Thread的對象的API來控制線程的,熟悉Thread類的API是進行多線程編程的基礎。

五、讀解Thread類API

static int MAX_PRIORITY 線程可以具有的最高優先級。static int MIN_PRIORITY 線程可以具有的最低優先級。static int NORM_PRIORITY 分配給線程的默認優先級。

構造方法摘要

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

方法摘要

static Thread currentThread()返回對當前正在執行的線程對象的引用。ClassLoader getContextClassLoader()返回該線程的上下文 ClassLoader。long getId()返回該線程的標識符。String getName()返回該線程的名稱。int getPriority()返回線程的優先級。Thread.State getState()返回該線程的狀態。ThreadGroup getThreadGroup()返回該線程所屬的線程組。static boolean holdsLock(Object obj)當且僅當當前線程在指定的對象上保持監視器鎖時,才返回 true。void interrupt()中斷線程。

static boolean interrupted()測試當前線程是否已經中斷。boolean isAlive()測試線程是否處于活動狀態。boolean isDaemon()測試該線程是否為守護線程。boolean isInterrupted()測試線程是否已經中斷。void join()等待該線程終止。void join(long millis)等待該線程終止的時間最長為 millis 毫秒。void join(long millis, int nanos)等待該線程終止的時間最長為 millis 毫秒 + nanos 納秒。void resume()已過時。該方法只與 suspend()一起使用,但 suspend()已經遭到反對,因為它具有死鎖傾向。有關更多信息,請參閱為何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反對?。void run()如果該線程是使用獨立的 Runnable 運行對象構造的,則調用該 Runnable 對象的 run 方法;否則,該方法不執行任何操作并返回。void setContextClassLoader(ClassLoader cl)設置該線程的上下文 ClassLoader。void setDaemon(boolean on)將該線程標記為守護線程或用戶線程。

static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)設置當線程由于未捕獲到異常而突然終止,并且沒有為該線程定義其他處理程序時所調用的默認處理程序。void setName(String name)改變線程名稱,使之與參數 name 相同。void setPriority(int newPriority)更改線程的優先級。

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

六、線程的狀態轉換圖

線程在一定條件下,狀態會發生變化。線程變化的狀態轉換圖如下:

1、新建狀態(New):新創建了一個線程對象。

2、就緒狀態(Runnable):線程對象創建后,其他線程調用了該對象的start()方法。該狀態的線程位于可運行線程池中,變得可運行,等待獲取CPU的使用權。

3、運行狀態(Running):就緒狀態的線程獲取了CPU,執行程序代碼。

4、阻塞狀態(Blocked):阻塞狀態是線程因為某種原因放棄CPU使用權,暫時停止運行。直到線程進入就緒狀態,才有機會轉到運行狀態。阻塞的情況分三種:

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

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

(三)、其他阻塞:運行的線程執行sleep()或join()方法,或者發出了I/O請求時,JVM會把該線程置為阻塞狀態。當sleep()狀態超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉入就緒狀態。

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

七、線程的調度

1、調整線程優先級:Java線程有優先級,優先級高的線程會獲得較多的運行機會。

Java線程的優先級用整數表示,取值范圍是1~10,Thread類有以下三個靜態常量: static int MAX_PRIORITY 線程可以具有的最高優先級,取值為10。static int MIN_PRIORITY 線程可以具有的最低優先級,取值為1。static int NORM_PRIORITY 分配給線程的默認優先級,取值為5。

Thread類的setPriority()和getPriority()方法分別用來設置和獲取線程的優先級。

每個線程都有默認的優先級。主線程的默認優先級為Thread.NORM_PRIORITY。

線程的優先級有繼承關系,比如A線程中創建了B線程,那么B將和A具有相同的優先級。JVM提供了10個線程優先級,但與常見的操作系統都不能很好的映射。如果希望程序能移植到各個操作系統中,應該僅僅使用Thread類有以下三個靜態常量作為優先級,這樣能保證同樣的優先級采用了同樣的調度方式。

2、線程睡眠:Thread.sleep(long millis)方法,使線程轉到阻塞狀態。millis參數設定睡眠的時間,以毫秒為單位。當睡眠結束后,就轉為就緒(Runnable)狀態。sleep()平臺移植性好。

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

4、線程讓步:Thread.yield()方法,暫停當前正在執行的線程對象,把執行機會讓給相同或者更高優先級的線程。

5、線程加入:join()方法,等待其他線程終止。在當前線程中調用另一個線程的join()方法,則當前線程轉入阻塞狀態,直到另一個進程運行結束,當前線程再由阻塞轉為就緒狀態。

6、線程喚醒:Object類中的notify()方法,喚醒在此對象監視器上等待的單個線程。如果所有線程都在此對象上等待,則會選擇喚醒其中一個線程。選擇是任意性的,并在對實現做出決定時發生。線程通過調用其中一個 wait 方法,在對象的監視器上等待。直到當前的線程放棄此對象上的鎖定,才能繼續執行被喚醒的線程。被喚醒的線程將以常規方式與在該對象上主動同步的其他所有線程進行競爭;例如,喚醒的線程在作為鎖定此對象的下一個線程方面沒有可靠的特權或劣勢。類似的方法還有一個notifyAll(),喚醒在此對象監視器上等待的所有線程。注意:Thread中suspend()和resume()兩個方法在JDK1.5中已經廢除,不再介紹。因為有死鎖傾向。

7、常見線程名詞解釋

主線程:JVM調用程序mian()所產生的線程。

當前線程:這個是容易混淆的概念。一般指通過Thread.currentThread()來獲取的進程。后臺線程:指為其他線程提供服務的線程,也稱為守護線程。JVM的垃圾回收線程就是一個后臺線程。

前臺線程:是指接受后臺線程服務的線程,其實前臺后臺線程是聯系在一起,就像傀儡和幕后操縱者一樣的關系。傀儡是前臺線程、幕后操縱者是后臺線程。由前臺線程創建的線程默認也是前臺線程。可以通過isDaemon()和setDaemon()方法來判斷和設置一個線程是否為后臺線程。

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

第四篇:Java基礎編程題

【程序1】

題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....【程序2】

題目:判斷101-200之間有多少個素數,并輸出所有素數。

1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

【程序3】

題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

【程序4】

題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:

(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。

(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,重復執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。

【程序5】

題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。

1.程序分析:(a>b)?a:b這是條件運算符的基本例子。

【程序6】

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。

1.程序分析:利用輾除法。

【程序7】

題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

1.程序分析:利用while語句,條件為輸入的字符不為'n'.【程序8】

題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。

1.程序分析:關鍵是計算出每一項的值。

【程序9】

題目:一個數如果恰好等于它的因子之和,這個數就稱為“完數”。例如6=1+2+3.編程 找出1000以內的所有完數。

【程序10】

題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高?

【程序11】

題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?

1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。

【程序12】

題目:企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?

1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。

【程序13】

題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

1.程序分析:在10萬以內判斷,先將該數加上100后再開方,再將該數加上268后再開方,如果開方后的結果滿足如下條件,即是結果。請看具體分析:

【程序14】

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。

【程序15】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。

【程序16】

題目:輸出9*9口訣。

1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。

【程序17】

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

1.程序分析:采取逆向思維的方法,從后往前推斷。

【程序18】

題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。

1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

【程序19】

題目:打印出如下圖案(菱形)

*

***

******

********

******

***

*

1.程序分析:先把圖形分成兩部分來看待,前四行一個規律,后三行一個規律,利用雙重 for循環,第一層控制行,第二層控制列。

【程序20】

題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

1.程序分析:請抓住分子與分母的變化規律。

【程序21】

題目:求1+2!+3!+...+20!的和

1.程序分析:此程序只是把累加變成了累乘。

【程序22】

題目:利用遞歸方法求5!。

1.程序分析:遞歸公式:fn=fn_1*4!

【程序23】

題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?

1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四人的歲數,依次類推,推到第一人(10歲),再往回推。

【程序24】

題目:給一個不多于5位的正整數,要求:

一、求它是幾位數,二、逆序打印出各位數字。

【程序25】

題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

【程序26】

題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續 判斷第二個字母。

1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。

【程序27】

題目:求100之內的素數

【程序28】

題目:對10個數進行排序

1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,下次類推,即用第二個元素與后8個進行比較,并進行交換。

【程序29】

題目:求一個3*3矩陣對角線元素之和

1.程序分析:利用雙重for循環控制輸入二維數組,再將a[i][i]累加后輸出。

【程序30】

題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。

1.程序分析:首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況,插入后此元素之后的數,依次后移一個位置。

【程序31】

題目:將一個數組逆序輸出。

1.程序分析:用第一個與最后一個交換。

【程序32】

題目:取一個整數a從右端開始的4~7位。

程序分析:可以這樣考慮:

(1)先使a右移4位。

(2)設置一個低4位全為1,其余全為0的數。可用~(~0<<4)

(3)將上面二者進行&運算。

【程序33】

題目:打印出楊輝三角形(要求打印出10行如下圖)

1.程序分析:2 13 3 14 6 4 15 10 10 5 1

【程序34】

題目:輸入3個數a,b,c,按大小順序輸出。

1.程序分析:利用指針方法。

【程序35】

題目:輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。

【程序36】

題目:有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面的m個數

【程序37】

題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。

【程序38】

題目:寫一個函數,求一個字符串的長度,在main函數中輸入字符串,并輸出其長度。

【程序39】

題目:編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數1/1+1/3+...+1/n(利用指針函數)

【程序40】

題目:字符串排序。

【程序41】

題目:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?

【程序42】

題目:809*??=800*??+9*??+1 其中??代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??后的結果。

【程序43】

題目:求0—7所能組成的奇數個數。

【程序44】

題目:一個偶數總能表示為兩個素數之和。

【程序45】

題目:判斷一個素數能被幾個9整除

【程序46】

題目:兩個字符串連接程序

【程序47】

題目:讀取7個數(1—50)的整數值,每讀取一個值,程序打印出該值個數的*。

【程序48】

題目:某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。

【程序49】

題目:計算字符串中子串出現的次數

【程序50】

題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件“stud”中。

第五篇:Java編程語言面試題

西安英泰移動通信學院S2級Java編程語言測試題 1

Java編程語言面試題

一、簡答題

1、簡述用Java編程語言編寫、編譯、解釋和執行過程。

2、簡述在Java JDK中,java.exe程序的作用。

3、簡述Java編程語言中的數組和C編程語言中定義數組有什么區別。

4、簡述類與對象的關系。對象的方法和類的方法是否為一回事?

5、JVM在解析代碼Person p1=new Person()和new Person()時有什么區別?

6、簡述this關鍵字的四中用途。

7、簡述構造函數的作用。

8、分別簡述static和final關鍵字的意義。

9、簡述抽象類和接口的區別,并闡明抽象類和接口的用途。

10、簡述多態的概念和意義。

11、簡述異常和錯誤的區別。

12、簡述如何創建和啟動一個線程的兩種方法

13、簡述棧內存和堆內存分別用來做什么。

14、簡述throw關鍵字在程序中拋出的是什么。

15、在一個類的public static void method()中,能夠直接使用該類什么類型的成員。

二、計算題

1、在類Runner中定義一個方法move(),要求這個方法的參數是一個實現了接口Runnable的匿名內部類的對象,該接口中的方法中的內容自己可以決定。

2、類Outer中與方法屬性平行定義的內部類為Inner{ public void doStuff(){}},寫出在另一個類TestInner的public static void main(String s)中調用方法doStuff()的代碼。

3、類Book{ public void insert(String id)throws Exception{…}}中的方法被類TestBook中public void testInser()方法調用,寫出該方法中的主要代碼。

4、兩個頂級包test1和test2,需要將它們壓縮成一個文件myjava.jar,再用WinRaR打開時,會在瀏覽器上看到下列層次;

◎META-INF

◎test1

◎test2

注:◎為文件夾

請寫出操作過程,并寫出運行的命令行程序(提示:用jar.......).5、同一個線程類ThreadTest中定義了:

public synchronized void sale(){...}

synchronized(str){...}

寫出能使這兩個類成員保持同步的改進代碼。

6、解釋類class Q{

private String name=“李四”;

private String sex=“女”;

boolean bFull=false;

public synchronized void put(String name,String sex){

if(bFull)

try{

wait();

this.name=name;

}catch(InterruptedException e){}

try{

Thread.sleep(10);

}catch(Exception e){

System.out.println(e.getMessage());

}

this.sex=sex;

bFull=true;

notify();

}

public synchronized void get()

{

if(!bFull)

try{

wait();

}catch(InterruptedException e){}

System.out.println(name + “----” + sex);

bFull=false;

notify();

}

}

中wait()、notify()、sleep()諸方法的作用。

7、在類class TestInteger{

public static void main(String[] args){

int w =。。。。。。。。。。。。。。。。。。。。// 將args[0]轉換int型的方法

int h =。。。。。。。。。。。。。。。。。。。。//將args[1]轉換int型的另一種方法//int h = Integer.valueOf(args[1]).intValue();//第三種方法

for(int i=0;i

StringBuffer sb=new StringBuffer();

for(int j=0;j

sb.append('*');

}

System.out.println(sb.toString());

}

}

}

中,args[0]的值為:“1234”,args[1]的值為:“5678”,請上面代碼塊中的……………處填寫代碼。

8、下面類

import java.util.*;

public class TestVector{

public static void main(String [] args){

int b=0;

Vector v=new Vector();System.out.println(“Please Enter Number:”);

while(true){

try{

b= System.in.read();//……….} catch(Exception e){

System.out.println(e.getMessage());

}

if(b=='r' || b== 'n')

break;

else{

int num=b-'0';

v.addElement(new Integer(num));//………..}

}

int sum=0;

Enumeration e=v.elements();//…………………

while(e.hasMoreElements()){

Integer intObj=(Integer)e.nextElement();//………………..sum += intObj.intValue();

}

System.out.println(sum);

}

}

中,請在諸單行注釋//。。。。中解釋其左邊一行代碼的意義。

9、下面類

import java.io.*;

public class DataStreamTest{

public static void main(String[] args){

try{

FileOutputStream fos=new FileOutputStream(“c:hello.txt”);//…….BufferedOutputStream bos= new BufferedOutputStream(fos);//……

DataOutputStream dos= new DataOutputStream(bos);//……..dos.writeUTF(“ab中國”);//………

dos.writeBytes(“ab中國”);

dos.writeChars(“ab中國”);

dos.close();//…………

FileInputStream fis=new FileInputStream(“hello.txt”);//…….BufferedInputStream bis=new BufferedInputStream(fis);//…….DataInputStream dis=new DataInputStream(bis);//…….System.out.println(dis.readUTF());

dis.close();

}catch(Exception e){

System.out.println(e.getMessage());

}

}

}

中,請在諸單行注釋//。。。。中解釋其左邊一行代碼的意義。

10、已知接口:interface PCI {

voidstart();

voidstop();

}

要求:寫兩個類:NetWorkCard,SoundCard分別實現上面接口的方法(內容自編),并寫第三個類MainBoard,該類中的方法install(PCI p)應用NetWorkCard,SoundCard兩個類對象的方法。根據上面的要求,填寫下面的代碼:

class Assembler

{

public static void main(String []args)

{

//在下面寫代碼….}

}

class NetWorkCard ….{

}

class SoundCard…………{

}

class MainBoard…………………………………..{

install(PCI p){

}

}

下載java編程實習心得體會word格式文檔
下載java編程實習心得體會.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    java高級編程教學大綱

    《Java高級編程》教學大綱 鄭州大學軟件技術學院 一、 課程的性質與任務 本課程是軟件開發專業開設的程序設計類高級課程,學生在學習了《程序設計導論》,初步具備了一定的程......

    Java AWT編程總結

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

    Java線程編程總結

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

    Java AWT編程總結

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

    Java JDBC編程總結

    Java JDBC編程總結 Hibernate、TopLink等OR Mapping操作數據庫的技術都是建立JDBC技術之上的,實際來說,他們的性能和JDBC是有很大差距的,但反過來說,如果JDBC用不好,還不如hibern......

    Java編程學習順序★

    1. 第一階段 掌握要點:Java語基礎知識。包括異常、IO流、多線程、集合類、數據庫。 (切記基礎知識一定要時時刻刻鞏固)eg:Java編程思想、Java2 核心技術 2. 第二階段掌握要點:To......

    java軟件編程培訓

    最好的Java軟件編程培訓西安雁塔尚學堂計算機學校創辦于2009年,是陜西省培養計算機實用性人才的學校,學校以“程序運行人生,快樂魔力學堂”的口號名揚陜西,并且開創了V教學法等......

    Java編程思想讀書筆記

    這是一份試圖提綱挈領的讀書筆記,《java編程思想》這本八百多頁的書娓娓道來地包含了太多細節,這對讀者是非常貼心的,我也強烈建議細細讀這本書,如果你希望在短時間內學會java這......

主站蜘蛛池模板: 无码吃奶揉捏奶头高潮视频| 久久夜色撩人精品国产小说| 青青青爽在线视频观看| 无码中文人妻在线一区| 国产女人水真多18毛片18精品| 超碰伊人久久大香线蕉综合| 国模无码人体一区二区| 国产在热线精品视频| 自拍视频亚洲综合在线精品| 97精品久久天干天天| 亚洲天堂2017无码中文| 亚洲国产av精品一区二区蜜芽| 国产成人午夜福利在线视频| 成人欧美一区二区三区视频| 最新国产福利在线观看精品| 人妻无码一区二区三区| 亚洲国产成人一区二区精品区| 四川丰满肥嫩肥BBBBB| 久久婷婷五月综合色丁香花| 亚洲 自拍 另类 欧美 综合| 秋霞av一区二区二三区| 久久精品国产99久久久小说| 国产精品成人a区在线观看| 亚洲国产一区二区三区亚瑟| 女人被弄到高潮的免费视频| 国产深夜福利视频在线| 亚洲精品中文字幕乱码| 日韩人妻无码系列专区| 岛国片人妻三上悠亚| 亚洲日韩欧美一区久久久久我| 欧美成人www免费全部网站| 久久久精品94久久精品| 在线涩涩免费观看国产精品| 免费国产污网站在线观看不要卡| 久久欧美一区二区三区性生奴| 又粗又硬又大又爽免费视频播放| 一区二区三区精品视频日本| 日出水了特别黄的视频| 色综合99久久久无码国产精品| 国产香蕉尹人在线观看视频| 精品久久久久久国产|