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

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

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

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

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

      程序員的基礎(chǔ)知識

      時間:2019-05-12 19:17:40下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《程序員的基礎(chǔ)知識》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《程序員的基礎(chǔ)知識》。

      第一篇:程序員的基礎(chǔ)知識

      程序員的基礎(chǔ)知識

      現(xiàn)在程序員也分很多種的啊。有WEB程序員,嵌入式程序員,有C/S程序員。我就給你一份.net程序員的規(guī)劃吧!呵。希望對你有幫助!一份.Net的學(xué)習(xí)規(guī)劃

      一、研究方向

      智能信息處理實驗室.Net小組的主要研究方向是“.Net平臺下軟件開發(fā)技術(shù)及相關(guān)應(yīng)用”,其研究內(nèi)容包括.Net框架、.Net語言、面向?qū)ο蟮脑O(shè)計、軟件工程學(xué)方法以及以上理論在實際中的應(yīng)用。小組將以.Net為開發(fā)平臺,著眼于軟件體系結(jié)構(gòu),特別是面向?qū)ο蟮能浖O(shè)計方法,學(xué)習(xí)軟件模塊化、系統(tǒng)解耦合和設(shè)計模式等相關(guān)的理論知識,并結(jié)合實驗室“Web語義”、“工作流”等已有的課題點,討論以上技術(shù)在實際生產(chǎn)中的應(yīng)用。在更高層次上,小組將系統(tǒng)的學(xué)習(xí)目前較為常見的軟件工程學(xué)方法,包括瀑布模式、螺旋模式和敏捷模式等。并在項目中嘗試采用這些方法,分析這些模式的特點和適用范圍,使小組成員掌握基本的軟件項目管理能力。

      二、研究階段

      對于.Net下軟件的開發(fā)的研究分為以下四個階段: 第一階段:.Net開發(fā)環(huán)境的掌握和相關(guān)開發(fā)技術(shù)的學(xué)習(xí)。這一階段主要是掌握一門.Net語言(推薦C#);掌握.Net開發(fā)的基本技能,包括熟悉.Net框架中的核心類、用于數(shù)據(jù)訪問的ADO.Net和用于Web應(yīng)用的Asp.Net等;掌握Web開發(fā)的相關(guān)技術(shù),包括數(shù)據(jù)庫、HTML、JavaScript、CSS和服務(wù)器的配置等;熟悉Visual Studio.Net、Visual Source Safe等開發(fā)工具。該階段完成后小組成員將有能力閱讀.Net系統(tǒng)的代碼,并在已有的基礎(chǔ)上進行改善的能力。第二階段:掌握基本的面向?qū)ο笤O(shè)計。在這一階段,小組成將繼續(xù)學(xué)習(xí).Net框架的相關(guān)知識,了解包括反射、XML、ORM和Ajax等較為深入的內(nèi)容。同時,應(yīng)該注重對相關(guān)原理的理解,包括IL語言、Asp.Net運行時和Http協(xié)議等。在軟件結(jié)構(gòu)體系方面,小組成員開始學(xué)習(xí)使用面向?qū)ο蟮姆椒ㄟM行思考,使用繼承、引用和多態(tài)等面向?qū)ο蟮乃悸穪砻枋鱿到y(tǒng)的設(shè)計,掌握UML等系統(tǒng)設(shè)計工具。這一階段將加大實踐的比例,使小組通過開發(fā)實際項目,掌握相關(guān)的技術(shù)和面向?qū)ο笤O(shè)計能力。在這一階段,隨著項目實踐的展開,小組成員開始接觸軟件工程學(xué)方法,了解不同的開發(fā)模式,掌握團隊協(xié)作能力和相關(guān)協(xié)作工具的使用。第三個階段:掌握初步系統(tǒng)架構(gòu)設(shè)計。在這一階段,系統(tǒng)地實現(xiàn)已經(jīng)不是重點,而該是如何設(shè)計出一個良好的系統(tǒng)結(jié)構(gòu)。這要求深入的理解面向?qū)ο蟮乃枷?,并且具有一定的開發(fā)經(jīng)驗。在這一階段,小組將學(xué)習(xí)軟件構(gòu)架的相關(guān)知識,包括系統(tǒng)的模塊化、模塊間解耦合、面向?qū)ο蟮脑O(shè)計原則、設(shè)計模式、測試和重構(gòu)等,并且學(xué)習(xí)使用這些知識對不同的系統(tǒng)進行設(shè)計,掌握各種模式的特點和使用范圍,從而對于給定的系統(tǒng)要求能夠設(shè)計出較為完善的架構(gòu)。第四階段:掌握完善系統(tǒng)架構(gòu)設(shè)計。這一階段著眼于如何對系統(tǒng)的需求進行深入的理解,以及此基礎(chǔ)上,設(shè)計出完善的系統(tǒng)架構(gòu)。完善的系統(tǒng)架構(gòu)應(yīng)該重視并準確的反映系統(tǒng)的業(yè)務(wù)邏輯,并考慮需求變化的應(yīng)對,兼顧系統(tǒng)的靈活性、健壯性、復(fù)雜度、開發(fā)效率和運行效率等諸多方面。小組成員在這一階段將學(xué)習(xí)大量現(xiàn)有的優(yōu)秀系統(tǒng)設(shè)計,并結(jié)合實驗室相關(guān)項目,充分理解不同系統(tǒng)所應(yīng)該采用的構(gòu)架模式,并盡量能夠擁有自己獨到的設(shè)計見解和設(shè)計風(fēng)格。

      附:參考書目

      1.第一階段: a)《C#高級編程》 b)《Asp.Net高級編程》 c)《HTML&XHTML權(quán)威指南》 d)《JavaScript權(quán)威指南》 e)《數(shù)據(jù)系統(tǒng)概論》

      2.第二階段: a)《.Net Framework高級編程》 b)《Asp.Net 技術(shù)內(nèi)幕》 c)《C# XML高級編程》 d)《JavaScript高級編程》 e)《Ajax基礎(chǔ)教程》 f)《代碼大全2》 g)《面向?qū)ο箝_發(fā)實踐之路--C#版》 h)UML書籍一本

      3.第三階段: a)《重構(gòu)--改善既有代碼的設(shè)計》 b)《敏捷軟件開發(fā)--原則、模式及實踐》 c)《Head First Design Patterns》 d)《設(shè)計模式--可復(fù)用的面向?qū)ο笤O(shè)計》

      4.第四階段: a)《企業(yè)應(yīng)用構(gòu)架模式》 b)《測試驅(qū)動開發(fā)》 c)《程序員修煉之道》

      第二篇:java程序員基礎(chǔ)知識

      目前,JAVA是開發(fā)人員的熱寵,很多論壇都有不少熱愛JAVA的開發(fā)人員,也有不少想成為JAVA程序員,但苦于不知道該如何學(xué)習(xí),也不清楚該學(xué)些什么知識才能成為一個JAVA程序員。本人在這里拋磚引玉,和大家討論成為一個JAVA初級程序員應(yīng)該具有的知識,與大家共享。

      個人認為想成為一個合格的JAVA初級程序員應(yīng)該具備如下知識:

      一、面向?qū)ο蟮闹R:JAVA是一個面向?qū)ο蟮拈_發(fā)語言,因此熟悉面向?qū)ο髮W(xué)習(xí)JAVA很有必要,您要了解:什么是對象,什么是類;什么是封裝,什么是多態(tài),什么是繼承;什么是抽象類,什么是接口。了解了概念后,您還需要這些概念是如何體現(xiàn)的,如類和對象有什么區(qū)別?類是如何封裝的?

      二、JAVA語法:如果您已經(jīng)有了開發(fā)經(jīng)驗,恭喜您,您學(xué)習(xí)JAVA語法來將比較容易。如果您有C++等面向?qū)ο笳Z言的開發(fā)經(jīng)驗,您只需簡單的翻看一下介紹JAVA的相關(guān)書籍就可以了。如果您是新手,沒有關(guān)系,您下些工夫,好好研究一本JAVA初級教程之類的書就可以了。

      學(xué)習(xí)了JAVA語法,加上面向?qū)ο蟮闹R,只有您用心,您就可以寫出來比較好的JAVA代碼了。如果您再抽出時間熟悉一下JAVA編程規(guī)范,您代碼的水平就應(yīng)該不俗了。

      三、JSP和HTML:在我國的絕大多數(shù)公司,做JAVA程序員都少不了和JSP以及HTML打交道。因此,想成為JAVA程序員就不可避免的要熟悉JSP和HTML,您最好能知道JSP的幾個內(nèi)置對象,如Session,Request,Reponse,以及常用的JSP標(biāo)簽,如

      include,userBean等。盡管一些工具會幫您生成HTML代碼,但您還是要熟悉比如title等。如果您再熟悉一下JS和CSS就更好了,那會使您制作的頁面更友好。

      四、WebServer:熟悉了以上三種,可以肯定的說您已經(jīng)可以制作出來JSP頁面了,您也可以在您的頁面里使用自己開發(fā)的JAVA類,但您的頁面總要跑起來才能看到您要的效果,這就要求您必須熟悉一種WebServer,比如:TOMCAT等。您要熟悉如何發(fā)布您的應(yīng)用,如何利用WebServer的數(shù)據(jù)庫資源等。

      五、開發(fā)工具:大家都知道,開發(fā)工具可以幫助您更好更快地開發(fā),因此熟悉幾種開發(fā)工具很有必要。目前JAVA的開發(fā)工具比較流行的有Eclipse,HTML的開發(fā)工具有Dreamweaver等。

      六、熟悉一種框架:熟悉一種框架其實是成為JAVA程序員的一種可選知識,但目前開發(fā)B/S結(jié)構(gòu)的應(yīng)用的開發(fā)小組,都差不多會采用一種框架來構(gòu)建自己的應(yīng)用系統(tǒng)??蚣芏紩性S多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開發(fā)使你可以省出很多的開發(fā)成本。目前比較流行的框架有Struts和Spring等。

      如何成為一名合格的java程序員?(轉(zhuǎn))

      程序?qū)W習(xí)2008-05-27 19:56閱讀35評論01、語法:必須比較熟悉,在寫代碼的時候IDE的編輯器對某一行報錯應(yīng)該能夠根據(jù)

      報錯信息知道是什么樣的語法錯誤并且知道任何修正。

      2、命令:必須熟悉JDK帶的一些常用命令及其常用選項,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那么你對java實際上還很不了解。

      3、工具:必須至少熟練使用一種IDE的開發(fā)工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進行工程管理、常用選項的設(shè)置、插件的安裝配置以及進行調(diào)試。

      4、API:Java的核心API是非常龐大的,但是有一些內(nèi)容筆者認為是必須熟悉的,否則不可能熟練的運用Java,包括:

      1)、java.lang包下的80%以上的類的功能的靈活運用。

      2)、java.util包下的80%以上的類的靈活運用,特別是集合類體系、規(guī)則表達式、zip、以及時間、隨機數(shù)、屬性、資源和Timer。

      3)、java.io包下的60%以上的類的使用,理解IO體系的基于管道模型的設(shè)計思路以及常用IO類的特性和使用場合。

      4)、java.math包下的100%的內(nèi)容。

      5)、java.net包下的60%以上的內(nèi)容,對各個類的功能比較熟悉。

      6)、java.text包下的60%以上的內(nèi)容,特別是各種格式化類。

      7)、熟練運用JDBC。

      8)、java.security包下40%以上的內(nèi)容,如果對于安全沒有接觸的話根本就不可能掌握java。

      9)、AWT的基本內(nèi)容,包括各種組件事件、監(jiān)聽器、布局管理器、常用組件、打印。

      10)、Swing的基本內(nèi)容,和AWT的要求類似。

      11)、XML處理,熟悉SAX、DOM以及JDOM的優(yōu)缺點并且能夠使用其中的一種完成XML的解析及內(nèi)容處理。

      5、測試:必須熟悉使用junit編寫測試用例完成代碼的自動測試。

      6、管理:必須熟悉使用ant完成工程管理的常用任務(wù),例如工程編譯、生成javadoc、生成jar、版本控制、自動測試。

      7、排錯:應(yīng)該可以根據(jù)異常信息比較快速的定位問題的原因和大致位置。

      8、思想:必須掌握OOP的主要要求,這樣使用Java開發(fā)的系統(tǒng)才能是真正的Java系統(tǒng)。

      9、規(guī)范:編寫的代碼必須符合流行的編碼規(guī)范,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個單詞一般是動詞,包名全部小寫等,這樣程序的可讀性才比較好。

      第三篇:一個程序員應(yīng)該具備的基礎(chǔ)知識和概念

      一個程序員應(yīng)該具備的基礎(chǔ)知識和概念

      1、計算機是有什么組成的,CPU是什么東西,其工作原理是什么。(對于這些以及下面將要提到的概念我不會告訴你什么答案,你可以看相應(yīng)的教材,關(guān)于教材我會在下一部分詳述,記住理解最重要!)

      2、機器語言和微指令集的概念。

      3、程序的概念。

      4、匯編語言是低級語言但不是機器語言。

      5、高級語言主要有那些?(C,C++,Basic,Pascal,F(xiàn)ortran,C#,Java等等;如果你是中國軟件業(yè)的英雄,你也寫一門語言,最好不用英語)

      6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫的)

      7、HTML、XML等是標(biāo)識性語言。

      8、Prolog是人工智能語言。

      9、操作系統(tǒng)OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實時OS,嵌入OS,編這些的絕對是高手)

      10、Windows編程說白了就是Windows API的調(diào)用。(中國的程序員很多只是會編windows程序,用的是VB,我的建議是這些程序員頂多只是低級編碼員,我稱其是coder)

      11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環(huán)境,不是編程語言。

      12、面向結(jié)構(gòu)的設(shè)計概念。

      13、面向?qū)ο蟮母拍?。(好好理解,兄弟,這個東西還是很重要的)

      14、軟件工程的概念和原理。(如果你想當(dāng)老總就需要好好研究了,系統(tǒng)分析員比編碼員要高一個等級,薪水也高喲)

      15、數(shù)據(jù)庫的概念。(要熟悉一些著名的數(shù)據(jù)庫系統(tǒng)和語言的名字,如Orcle,SQL,DB2,DyBase等)

      16、了解網(wǎng)絡(luò)概念。

      17、了解多媒體概念。

      18、熟悉和掌握數(shù)據(jù)結(jié)構(gòu)和基本算法。

      19、是不是要求太高了,別著急慢慢來,進步在不知不覺之中。(一旦開始學(xué)習(xí),一個月以后你就會有一個基本的概念;兩個月以后你就會感覺自己有了全面的基 礎(chǔ)知識;當(dāng)你知道編程序是怎么回事時,說明你已經(jīng)入門了。也有很多人編了很多年程序還沒有入門呢,你不會希望自己步其后塵吧。要有信心和耐心。沉不住氣怎 么能成大事?!)

      (四)教材推薦

      ――-推薦的教材主要還是針對概念來的,最好選用名校的教學(xué)用書。

      1、《計算機組成原理》(熟悉)

      2、《數(shù)據(jù)結(jié)構(gòu)》(掌握)

      3、《操作系統(tǒng)》(了解->熟悉)

      4、《The C language》(掌握)

      5、《編譯原理》(了解原理)

      6、《匯編語言》(了解)

      7、《計算機網(wǎng)絡(luò)》(了解)

      8、《軟件工程》(了解)

      9、《關(guān)系數(shù)據(jù)庫》(熟悉)

      10、《The C++Languege 》(掌握)

      11、《面向?qū)ο笤O(shè)計》(掌握;結(jié)合C++學(xué)習(xí))

      (五)一些經(jīng)驗和體會

      1、真正的程序員用C++;(一位專家說的)

      2、動手去編程序;

      3、動腦去思考;

      4、要有良好的編程風(fēng)格;

      5、讀書,讀好書,盡量讀原版書?。ㄎ曳磸?fù)強調(diào)這一點,讀書要有選擇,堅持讀好書,名家出的經(jīng)典書,不要浪費實踐在一些粗制濫造的書上面;堅持博覽群書)

      6、有自己的學(xué)習(xí)計劃;

      7、總結(jié)自己的經(jīng)驗教訓(xùn);(準備一個筆記本,記錄錯誤和心得)

      8、不要怕學(xué)新東西;

      9、要有軟件工程的思想;

      10、善于發(fā)現(xiàn)問題,然后去尋找答案;

      11、向高手請教;(要虛心直到你成為高手)

      12、和同行交流;(不善于交流肯定不行)

      13、懂得軟件的實質(zhì),不要被千變?nèi)f化的表象所迷惑;

      14、真正要學(xué)習(xí)用的是編程語言和方法,不是什么庫,什么類,什么工具;用那些什么庫都比較簡單,但光會這些庫,我覺得還遠遠不夠)

      15、學(xué)習(xí)wiodows編程主要是學(xué)習(xí)windows OS和win32 API;

      16、有空了解一下嵌入式開發(fā);

      (學(xué)

      17、有空了解一下PDA軟件開發(fā);

      18、了解一下.NET框架和C#語言,也許它是你新的衣食父母;

      19、要有耐心,不要作浮躁的人;

      20、對程序加注釋,并保留你的老程序;

      21、學(xué)到的東西越多,了解的越多,你就越接近專家;

      22、有空去逛逛CSDN,那里有你很多知己;

      23、要有信心成為一個優(yōu)秀的程序;

      (六)一些好書的推薦

      1、《The C Programming language》(Keinighan & Dennis Ritchie 1988)

      2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)

      3、《Inside The C++ Object Model》(lippman)

      4、《Effective C++》

      5、《More Effective C++》(lippman)

      6、《Exceptional c++》

      7、《C++面向?qū)ο蟾咝Ь幊獭?/p>

      8、《設(shè)計模式》

      9、《Thinking In C++》

      10、《The Standard C++ Bible》(一般推薦)

      11、《The Art of Computer Programming 》

      12、《Programming Windows》(Charles Petzold)

      13、《VC++5.0技術(shù)內(nèi)幕》

      14、《MFC 深入淺出》

      15、《軟件需求》

      16、《Advanced Windows》

      17、《C++ primer》

      18、《win32程序員參考手冊》

      19、《用TCP/IP進行網(wǎng)際互連》

      20、《COM 本質(zhì)論》

      (七)學(xué)習(xí)計劃

      ――-這個學(xué)習(xí)計劃是我個人定的,也共享給大家參考一下,共同進步吧。

      1、《計算機組成原理》

      2、《操作系統(tǒng)》

      3、《數(shù)據(jù)結(jié)構(gòu)》

      4、《匯編語言》

      5、《 C 》

      6、《 C++ 》

      7、《VC 技術(shù)內(nèi)幕》

      8、《Programming Windows》

      9、《深入淺出MFC》

      10、《Advanced Windows》

      11、《Inside The C++ Object Model》

      12、《Thinking in C++》

      13、《Effective C++》

      14、數(shù)據(jù)庫

      15、網(wǎng)絡(luò)

      16、嵌入式OS和編程

      17、硬件單片機

      18、.NET和C#

      19、軟件工程

      20、UNIX和Linux

      (八)后記

      一年來浪費了大量的時間去摸索,去思考,走了很多的彎路,直到現(xiàn)在我還覺得自己是個編程的門外漢。我把我的一些體會和想法說出來(當(dāng)然,很多都不一定正 確,歡迎大家指正和討論),也許對一些想加入程序員行列的朋友有一些建議和幫助。希望能幫助這些朋友順利走上編程之路,成為高手。

      第四篇:Java初級程序員面試必備的基礎(chǔ)知識總結(jié)

      Java基礎(chǔ)

      簡述Java的基本歷史

      java起源于SUN公司的一個GREEN的項目,其原先目的是:為家用消費電子產(chǎn)品發(fā)送一個信息的分布式代碼系統(tǒng),通過發(fā)送信息控制電視機、冰箱等

      簡單寫出Java特點,寫出5個以上,越多越好

      簡單的、面向?qū)ο蟮?、分布式的、安全的、穩(wěn)定的、與平臺無關(guān)的、可解釋的、多線的、動態(tài)的語言。

      什么是Java? JAVA:一種編程語言

      一種開發(fā)環(huán)境

      一種應(yīng)用環(huán)境

      一種部署環(huán)境

      請寫出Java的版本分類,以及每種版本的應(yīng)用方向 三種版本:

      JME:是面向內(nèi)存有限的移動終端.為消費性產(chǎn)品設(shè)計的;

      JSE: 是SUN公司針對桌面開發(fā)和低端商務(wù)計算方案開發(fā)的版本。為筆記本電腦、PC機設(shè)計的;

      JEE: 是一種利用JAVA 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。為企業(yè)級的、服務(wù)器端的高端應(yīng)用而設(shè)計的;

      描述Java技術(shù)的主要特性 java虛擬機

      垃圾回收

      代碼安全性

      描述 Java虛擬機的功能

      (1)通過 ClassLoader 尋找和裝載 class 文件

      (2)解釋字節(jié)碼成為指令并執(zhí)行,提供 class 文件的運行環(huán)境

      (3)進行運行期間垃圾回收

      (4)提供與硬件交互的平臺

      簡述Java代碼安全性(1)編譯時的錯誤檢驗

      (2)類裝載檢查,把本機上的類和網(wǎng)絡(luò)資源類相分離,在調(diào)入類的時候進行檢查,因而可以限制任何“特洛伊木馬“的應(yīng)用

      (3)字節(jié)碼校驗

      (4)沙箱機制,限定訪問權(quán)限

      描述Java垃圾回收機制

      Java 編程語言解除了程序員釋放內(nèi)存的責(zé)任。它可提供一種系統(tǒng)級線程以跟蹤每一次內(nèi)存的分配情況。在 Java 虛擬機的空閑周期,垃圾收集線程檢查并釋放那些可被釋放的內(nèi)存。垃圾收集在 Java 技術(shù)程序的生命周期中自動進行,它解除了釋放內(nèi)存的要求,這樣能夠有效避免內(nèi)存漏洞和內(nèi)存泄露(內(nèi)存泄露就是程序運行期間,所占用的內(nèi)存一直往上漲,很容易造成系統(tǒng)資源耗盡而降低性能或崩潰。

      垃圾回收有以下特點:

      (1)垃圾回收是一個自動的系統(tǒng)行為,程序員不能控制垃圾回收的功能和行為。

      (2)有一些跟垃圾回收相關(guān)的方法,比如:System.gc(),調(diào)用這些方法,僅僅是在通知垃圾回收程序,至于垃圾回收程序運不運行,什么時候運行,都是無法控制的。

      (3)程序員可以通過設(shè)置對象為 null,來標(biāo)示某個對象不再被需要了,這只是表示這個對象可以被回收了,并不是馬上被回收。

      簡述Java代碼的運行過程

      (1)加載代碼 通過類裝載器裝載CLASS文件

      (2)校驗代碼 由字節(jié)碼校驗

      (3)執(zhí)行代碼 由解釋器將字節(jié)碼轉(zhuǎn)換成機器碼

      簡述如何搭建Java開發(fā)環(huán)境 首先下載安裝JDK 然后配置環(huán)境

      (1)配置PATH,(2)配置CLASSPATH

      (3)配置JAVA_HOME

      簡述classpath,path,JAVA_HOME的意義和配置方法 path 操作系統(tǒng)運行環(huán)境的路徑

      classpath JAVA運行應(yīng)用程序時所需要的類包的路徑

      JAVA_HOME 供需要運行JAVA的程序使用

      請描述:一個完整的Java文件的代碼分幾個部分,每部分都起什么作用,大致的寫法 package 當(dāng)前類所在位置

      import 當(dāng)前類運行時所需要的包或類

      public class 類名 {

      屬性定義;

      方法定義:

      構(gòu)造方法定義;

      public static void main(String args [])例外{ 程序入口 語句;} }

      //注釋

      Java代碼的注釋有幾種?分別舉例說明(1)// 單行注解

      (2)/* */ 塊注釋

      (3)/* *

      * 文檔注釋

      */

      什么是Java代碼的語句,什么是Java代碼的塊,舉例說明 語句 是一行以分號終止的代碼,例:int a;

      塊 是以{ }為邊界的一些語句的集合 例:public void tt(){}

      什么是標(biāo)示符?

      標(biāo)識符:是賦予變量、類、方法的名稱。

      標(biāo)示符定義的規(guī)則?

      首字母只能以字母、下劃線、$開頭,其后可以跟字母’下劃線、$和數(shù)字配置CLASSPATH 首字母小寫中間用大寫字母隔開 標(biāo)識符具有一定的含義

      什么是關(guān)鍵字?

      關(guān)鍵字就是編程語言與機器語言的編碼約定

      true、false、null、sizeof、goto、const那些是Java關(guān)鍵字 true、false、null 為JAVA的關(guān)鍵字

      Java的基本數(shù)據(jù)類型有幾種?分別是? short int long boolean float double char byte

      請寫出每種基本類型的默認值?取值范圍?分別給出一個定義的例子 默認值

      取值范圍 示例

      字節(jié)型 : 0-2^7—-2^7-1 byte b=10;

      字符型 : ‘ u0000′ 0—-2^16-1 char c=’c’;

      short : 0-2^15—-2^15-1 short s=10;

      int : 0-2^31—-2^31-1 int i=10;

      long : 0-2^63—-2^63-1 long o=10L;

      float : 0.0f-2^31—-2^31-1 float f=10.0F

      double : 0.0d-2^63—-2^63-1 double d=10.0;

      boolean: false truefalse boolean flag=true;

      在基本類型中,如果不明確指定,整數(shù)型的默認是什么類型?帶小數(shù)的默認是什么類型? 整數(shù)類型 默認為 int

      帶小數(shù)的默認為 double

      如何定義float類型和long型 float f = 1.2f

      long l = 1.2L

      什么是變量?

      變量是用來引用一塊內(nèi)存區(qū)域或一個值,用標(biāo)識符來表示,可以通過操作變量來操作變量所對應(yīng)的內(nèi)存區(qū)域或值塊的值。

      變量的定義規(guī)則?

      以字母、$、下劃線開頭,其后可以跟字母、下劃線、$和數(shù)字; 首字母小寫,中間單詞用大寫字母隔開; 名稱具有一定含義;

      請寫出Java編碼約定中對下列部分的要求:類、屬性、方法、包、文件名、變量、常量、控制結(jié)構(gòu)、語句行、注釋

      類: 一個類文件中類名要和文件名相同,類名一定要以大寫字母開頭,單詞之間用大寫字母分隔

      屬性: 屬性名首字母小寫,中間用大寫字母隔開。

      方法: 方法名首字母小寫,中間用大寫字母隔開。

      包: 引用包必須寫在類文件的開頭,有且只能有一個包,全部用小寫字母。

      控制結(jié)構(gòu):當(dāng)語句是控制結(jié)構(gòu)的一部分時,即使是單個語句,也應(yīng)使用大括號將語句封閉。

      語句行:每行只寫一個語句,并使用四個縮進的空格,使代碼更易讀,注意用分號結(jié)束。

      注釋: 用注釋來說明那些不明顯代碼的段落。

      常量: 常量名一般用大寫字母,單詞之間用下劃線分隔,一旦賦值不允許修改。

      什么是Javadoc? 按照一定格式生成程序的文檔的工具。

      什么是引用類型?

      用戶定義類型, 它可引用類和數(shù)組。

      除去基本數(shù)據(jù)類型的其他類型都是引用數(shù)據(jù)類型。

      什么是按值傳遞?什么是按引用傳遞?

      按值傳遞:就是將該值的副本傳過去(基本數(shù)據(jù)類型+String類型的傳遞,就是按值傳遞)

      按引用傳遞:就是將值的內(nèi)存地址傳過去(除基本數(shù)據(jù)類型+String以外類型的傳遞,就是引用傳遞)

      如何創(chuàng)建一個新對象?如何使用對象中的屬性和方法? 使用new 關(guān)鍵字來創(chuàng)建一個新的對象;

      通過對象的實例用”.“(點)來調(diào)用對象中的屬性和方法;

      靜態(tài)的方法和屬性,也可以直接用類名”.“(點)來調(diào)用;

      簡述new關(guān)鍵字所做的工作

      new 創(chuàng)建一個對象,并為對象分配一塊內(nèi)存。

      簡述”=” 和”= =”的功能和區(qū)別 “=” 賦值,“= =”當(dāng)比較基本數(shù)據(jù)類型的時候,判斷前后兩個值是否相等;

      當(dāng)比較引用數(shù)據(jù)類型的時候,判斷= =前后兩個值的內(nèi)存地址是否相等;

      區(qū)別:

      = :為賦值表達式

      = = :為邏輯表達式

      什么是實例變量?什么是局部變量?什么是類變量?什么是final變量?

      實例變量:

      類中定義的變量,即類成員變量,如果沒有初始化,會有默認值;

      局部變量:

      在方法中定義的變量,必須初始化;

      類變量:

      用static修飾的屬性;

      final變量:

      用final 修飾的變量,簡述上述各種變量的定義規(guī)則和使用規(guī)則?

      實例變量: 不需要static關(guān)鍵字來聲明,需要類的實例(對象)調(diào)用(用”.“);

      類變量: 用static修飾,可以用類名調(diào)用,也可以用類的實例調(diào)用;

      局部變量: 在方法內(nèi)任意定義變量即為局部變量;

      final變量: 一旦賦值,不可以再修改的變量;

      final屬性只允許賦值一次,且只能通過構(gòu)造方法賦值,定義后也就是一個常量;

      final修飾的變量,只允許賦值一次

      a++和++a的區(qū)別?

      a++ : 先使用,后加1

      ++a : 先加1,后使用

      請描述instanceof、?:、&、&&各自的功能

      instanceof :用來判斷某個實例變量是否屬于某種類的類型。

      ? : 三目運算符:

      表達式1?表達式2:表達式3

      如果表達式1為true,執(zhí)行表達式2,否則執(zhí)行表達式3

      &: 位運算:按位與 |

      &&: 邏輯運算:邏輯與

      請描述>>、<<、>>>的功能

      10>>4 :算術(shù)或符號右移位運算符

      << :算術(shù)或符號左移位運算符 >>> :邏輯或無符號右移位運算符

      請描述什么是強制類型轉(zhuǎn)換?什么是自動類型轉(zhuǎn)換?什么是向上造型?并分別舉例說明 強制類型轉(zhuǎn)換:在一個類型前面加(),來強制轉(zhuǎn)換

      long l = 9L;

      int i =(int)l;

      自動類型轉(zhuǎn)換:

      int i = 5;

      String str = “”+i;

      向上造型:把范圍小的造型為范圍大的類型:

      int i = 2;

      long l = i;

      請寫出完整的if條件控制語句的結(jié)構(gòu) if(布爾表達式){ 語句

      }else{

      語句

      }

      請寫出完整的switch語句的結(jié)構(gòu) switch(字符){

      case 字符: 語句

      break;

      case 字符: 語句

      break;

      default:語句

      }

      請寫出完整的for語句的結(jié)構(gòu) for(初始語句;條件語句;步長){ }

      請寫出完整的while語句的結(jié)構(gòu) while(boolean語句){ }

      請寫出完整的do while語句的結(jié)構(gòu) do{

      }while(boolean語句);

      請描述break 和 continue的功能和用法 break:終止(跳出)最近的循環(huán)

      continue:跳出本次循環(huán),執(zhí)行下一次循環(huán)

      定義一個一維的int數(shù)組,先創(chuàng)建它,并初始化它,給它賦值,然后輸出其中的一個值 public class Arr{

      public static void main(String args[]){ int a[] = new int[5];

      a={1,2,3,4,5};//錯誤 , 只能在初始化時這樣做

      a[0]=1;

      a[1]=2;

      System.out.println(a[0]);} }

      定義一個一維的A類型數(shù)組,直接定義并賦值,然后輸出其中的一個值 public class A{

      public static int i;

      public static void main(String args[]){

      A aa = new A();

      A bb = new A();

      A a[] = {aa,bb};

      a[0].i=2;

      System.out.println(a[0]);} }

      把上面的數(shù)組改成2維的數(shù)組 public class A{

      public static int i;public static void main(String args[]){

      A a[ ][ ] = new A[5][5];

      a[0][0].i=2;

      System.out.println(a[0][0]);} }

      舉例說明數(shù)組拷貝方法的使用:arraycopy方法 public class A{

      public static void main(String args[]){

      int a[] = new int[5];

      int b[] = new int[5];

      System.arraycopy(a[5],0,b[5],0,a.length)

      System.out.println(b[0][0]);} }

      什么是構(gòu)造和析構(gòu)方法?功能是?

      構(gòu)造方法:每個類至少有一個構(gòu)造方法,類初始化時調(diào)用的方法

      1.方法名和類名相同

      2.無返回值類型

      格式:訪問權(quán)限 類名(參數(shù)列表){};

      1.自己定義構(gòu)造后,就沒有默認的構(gòu)造方法 2.無構(gòu)造方法時,默認為空參的構(gòu)造方法(無參數(shù),方法體為空)析構(gòu)方法:finalize

      類銷毀時,自動調(diào)用方法

      當(dāng)對象在內(nèi)存中被刪除時,自動調(diào)用該方法

      在此方法中可以寫回收對象內(nèi)部的動態(tài)空間的代碼

      簡述Java的訪問修飾符類型?分別有什么功能? public 公開的,任何一個類都有可以訪問

      protected 同包同類,只可被它的子類訪問

      default 只能被同一個包中類訪問

      private 私有的,只能在本類中被訪問

      分別說明:在類上、在屬性上、在方法上能使用哪些訪問修飾符 在類上:public default final

      在方法上: 訪問權(quán)限:public protected private default

      方法修飾符:static final

      返回類型:void

      在屬性上:public protected private default

      static final

      簡述什么是包?包的功能

      包:對所定義的多個JAVA類進行分組,將多個功能相關(guān)的類定義到一個包(文件)中。

      功能:1.易于查找和使用適當(dāng)?shù)念?/p>

      2.包不止包含類和接口,還可以包含其它包,形成層次的包空間

      3.有助于避免命名沖突

      請寫出5個以上的JDK中的包,以及他們的基本功能

      java.awt: 包含構(gòu)成抽象窗口工具集的多個類,用來構(gòu)建和管理應(yīng)用程序的圖形用戶界面

      java.lang: 提供java編成語言的程序設(shè)計的基礎(chǔ)類

      java.io:

      包含提供多種輸出輸入功能的類,java.net:

      包含執(zhí)行與網(wǎng)絡(luò)有關(guān)的類,如URL,SCOKET,SEVERSOCKET,java.applet: 包含java小應(yīng)用程序的類

      java.util:

      包含一些實用性的類

      什么是包裝類?Java中都有哪些包裝類

      在JDK中針對各種基本類型分別定義相應(yīng)的引用類型 ————–稱為封裝類 Boolean Byte Short Integer Long Float Double Character

      OOP(面向?qū)ο螅┱Z言的三大特征是? 封裝性,繼承性,多態(tài)性

      分別表述類的三大特性及其他們的功能

      封裝:隱藏類的實現(xiàn)細節(jié)、迫使用戶去使用一個接口去訪問數(shù)據(jù)、使代碼更好維護

      繼承:子類可以直接繼承使用父類的方法,程序員只需要做的是定義額外特征或規(guī)定將適用的變化

      多態(tài)性:同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力

      如何實現(xiàn)繼承?繼承的規(guī)則? public class A extends B{ }

      單繼承性

      構(gòu)造方法不能繼承

      super引用父類,調(diào)用父類的屬性,方法

      當(dāng)子類中出現(xiàn)與父類的方法名,返回類型,參數(shù)列表相同的方法時要覆蓋此方法 簡述this和super的功能和用法 this :

      能訪問除構(gòu)造方法以外所有的屬性、方法,通過this.來調(diào)用方法和屬性 不可以在靜態(tài)方法中使用,在調(diào)用其它構(gòu)造方法時,必須放在該構(gòu)造方法的第一行

      在構(gòu)造方法中使用this(參數(shù)列表),相當(dāng)于調(diào)用本類的其它構(gòu)造方法,它必須作為構(gòu)造方法的第一句

      super :訪問父類

      super.點取父類中被子類隱藏的方法和屬性,通過 super(參數(shù)列表)來調(diào)用父類的屬性和方法,在調(diào)用父類的構(gòu)造方法時必須放在子類構(gòu)造方法里的第一行;

      如何確定在多態(tài)的調(diào)用中,究竟是調(diào)用的那個方法? new的是哪一個類就是調(diào)用的哪個類的方法。

      請描述方法定義的完整的語法結(jié)構(gòu)

      權(quán)限修飾符 修飾符 返回類型 方法名(參數(shù))例外{

      方法體;}

      什么是重載?

      在一個類中出現(xiàn)方法名相同,但參數(shù)列表不同時,這種情況就是重載。

      簡述重載的規(guī)則 方法名稱必須相同;

      參數(shù)列表必須不同(個數(shù)不同,或類型不同,或參數(shù)排列順序不同); 與返回類型無關(guān);

      什么是方法的覆蓋?什么情況下出現(xiàn)? 方法覆蓋:

      子類可以修改從父類繼承過來的行為,也就是說子類可以創(chuàng)建一個與父類方法有不同功能的方法,但具有相同的:名稱、返回類型名和參數(shù)列表。

      在父子類的情況下出現(xiàn)時。

      方法覆蓋的規(guī)則?

      方法名要和父類中被覆蓋的方法名相同,返回類型相同,參數(shù)列表相同。訪問權(quán)限要大于等于被覆蓋方法的權(quán)限。例外列表要小于等于被覆蓋方法的例外列表。

      static修飾符的功能是?可以用在什么地方?怎么訪問? static 修飾符功能:

      共用一塊內(nèi)存區(qū)域,也就是用static修飾的變量或成員方法對所有類的實例都是相同的 靜態(tài)成員方法和靜態(tài)變量的優(yōu)點在于他們能在沒有創(chuàng)建類的任何一個實例的情況下被引用??梢杂迷诜椒ɑ?qū)傩陨?訪問方式:

      直接使用類名調(diào)用

      new 一個實例,用實例調(diào)用

      static的基本規(guī)則

      類中的靜態(tài)方法只可以調(diào)用靜態(tài)的屬性和方法,不允許調(diào)用非靜態(tài)的屬性和方法。靜態(tài)變量為類變量,可以用類名直接調(diào)用靜態(tài)的屬性和方法。靜態(tài)方法中不允許出現(xiàn)this和super 構(gòu)造方法不允許聲明static 非靜態(tài)變量為實例變量,通過實例調(diào)用 靜態(tài)方法不能被非靜態(tài)方法覆蓋

      final修飾符的功能是?可以用在什么地方? 功能:final標(biāo)記所有通用的功能,不能隨意更改

      可以用在類、屬性和方法上

      final的基本規(guī)則

      final修飾的類不能被繼承

      final修飾的成員變量只允許賦值一次,且只能通過構(gòu)造方法里賦值。final修飾的局部變量即為常量,只能賦值一次。final修飾的方法不允許被子類覆蓋。

      什么是抽象方法,什么是抽象類

      用abstract修飾的方法,只有方法的聲明,而沒有方法的實現(xiàn),就叫抽象方法。

      用abstract修飾的類,就叫抽象類。

      抽象類的規(guī)則

      抽象類內(nèi)部可以沒有抽象方法 必須用abstract修飾

      不能夠直接使用抽象類,必須通過子類繼承并且實現(xiàn) 抽象方法不允許被private修飾

      什么情況下使用抽象類

      當(dāng)一個類的一個或多個方法是抽象方法時;

      當(dāng)類是一個抽象類的子類,并且不能為任何抽象方法提供任何實現(xiàn)細節(jié)或方法體時; 當(dāng)一個類實現(xiàn)一個接口,并且不能為任何抽象方法提供實現(xiàn)細節(jié)或方法體時;

      equals方法和”= =”的功能和區(qū)別 功能:判斷對象是否相等

      區(qū)別:

      equals方法比較的是對象的值

      = =:比較的是對象值的內(nèi)存地址,對基本數(shù)據(jù)類型來說= =比較的是數(shù)值

      toString方法的功能和基本寫法 返回一個String類型

      public String toString(){

      return “”;

      }

      String的方法的功能和基本使用方法,請描述5個以上

      substring(參數(shù)1,參數(shù)2);功能:取字符串中參數(shù)1到參數(shù)2的的所有字符;“String”.subString(0,1);

      replace(參數(shù)1,參數(shù)2);功能:用參數(shù)1中的值替換字符串中所有參數(shù)2的值 “String”.replace(ing,tt);

      equals();功能:判斷兩個字符串是否相等 “String”.equals(“tt”);trim();功能:去掉字符串兩邊的空格 “String”.trim();

      indexof();功能:查找字符串中參數(shù)所在位置,并返回字符串第一個出該參數(shù)的下標(biāo)

      “String”.indexOf(“ing”);

      split();功能:根據(jù)參數(shù)分割該字符串 “String”.split(“-”);

      為什么使用StringBuffer類?有什么功能和優(yōu)點? –只創(chuàng)建一個對象

      –StringBuffer 對象的內(nèi)容是可以被修改的

      –除了字符的長度之外,還有容量的概念

      –通過動態(tài)改變?nèi)萘康拇笮?,加速字符管?/p>

      舉例說明如何使用StringBuffer StringBuffer sb = new StringBuffer();

      sb.append(“aaa”);

      如何使用Java讀寫系統(tǒng)屬性? 讀:

      Properties props = System.getProperties();

      Enumeration prop_names = props.propertyNames();

      while(prop_names.hasMoreElements()){

      String prop_name =(String)prop_names.nextElement();

      String property = props.getProperty(prop_name);

      System.out.println(“Property ‘” + prop_name + “‘ is ‘”+ property + “‘”);}

      寫:

      System.setProperties(props);

      簡述properties文件的結(jié)構(gòu)和基本用法

      結(jié)構(gòu):擴展名為properties的文件,內(nèi)容為key、value的映射,例如”a=2″

      用法:

      public class Test {

      public static void main(String args[]){ try {

      String name = “test.properties”;

      InputStream in = new BufferedInputStream(new FileInputStream(name));

      Properties p = new Properties();

      p.load(in);

      System.out.println(“a的值==” + p.getProperty(“a”));

      } catch(Exception err){

      err.printStackTrace();} } }

      什么是接口?接口的定義規(guī)則?

      接口是抽象方法和常量值的定義的集合。從本質(zhì)上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現(xiàn)。

      public interface Tt {

      public void outPut();

      public int tt();}

      接口的作用?為什么使用接口? 多重繼承

      封裝、隔離

      功能,實現(xiàn)的分離

      多態(tài)

      便于后期維護

      接口是可插入性的保證。

      什么是多重接口

      就是一個類實現(xiàn)多個接口

      描述接口的基本思想? 封裝 隔離

      接口及相關(guān)機制的最基本作用在于:通過接口可以實現(xiàn)不相關(guān)類的相同行為,而不需考慮這些類之間的層次關(guān)系。

      根據(jù)接口可以了解對象的交互界面,而不需了解對象所屬的類。

      面向?qū)ο蟪绦蛟O(shè)計講究”提高內(nèi)聚,降低耦合”。

      如何在代碼中使用接口?

      public class MyCast implements Tt{

      public void outPut(){}

      public int tt(){

      return 0;} }

      舉例說明如何把接口當(dāng)作類型使用 public interface Animal(){

      public void tt();}

      public class Dog implements Animal{

      public void tt(){} }

      Animal ani = new Dog();

      如何選擇接口和抽象類?為什么? 優(yōu)先選用接口,盡量少用抽象類

      在下列情況下選擇抽象類:需要定義子類的行為,又要為子類提供共性的功能。

      什么是異常,異常的分類?

      程序中導(dǎo)致程序中斷的一些情況叫做異常,一般程序員可以處理。

      異常分為運行時異常和非運行時異常(一般異常)

      運行時異常是指因設(shè)計或?qū)崿F(xiàn)方式不當(dāng)導(dǎo)致的問題。也可以說,是程序員的原因?qū)е碌?,本來可以避免發(fā)生的情況。例如:BufferOverflowException, ClassCastException,IndexOutOfBoundsException,ArithmeticException。出現(xiàn)這些異常的代碼不需要try塊包圍。

      非運行時異常是指除運行時異常以外所有的異常,出現(xiàn)這些異常的代碼必須用try塊包圍。例如:FileNotFoundException,EOFException,簡述處理異常的兩種方式?

      拋出(throws)和catch語句處理

      簡述try塊的功能和規(guī)則

      try塊內(nèi)部一般寫一些編程人員認為可能會出現(xiàn)異常的代碼,使程序運行時不會因為出現(xiàn)異常而中斷。

      簡述catch塊的功能和規(guī)則

      功能:可以截獲所聲明的異常,并在語句塊內(nèi)對其進行處理

      規(guī)則:catch(Exeption e){

      e.printStackTrace();

      }

      簡述finally塊的功能和規(guī)則

      finally塊一般寫一些不論是否發(fā)生異常都必須執(zhí)行一次的代碼

      例如關(guān)閉與數(shù)據(jù)庫的連接等

      簡述throw和throws的功能和使用方法 throw 指編程人員主動拋出一個異常

      throw new NullPointerExeption();

      throws指程序遇到異常情況自動的被動拋出一個異常

      public void test()throws Exeption{}

      異常的分類? 錯誤(Error): JVM 系統(tǒng)內(nèi)部錯誤、資源耗盡等嚴重情況,程序員不可控制

      例外(Exception):其它因編程錯誤或偶然的外在因素導(dǎo)致的一般性問題,程序可以控制

      什么是預(yù)定義異常

      java程序中預(yù)先定義好的異常叫做預(yù)定義異常

      簡述自定義異常的規(guī)則 寫一個類繼承Exception

      用戶自定義異常通常屬Exception范疇,依據(jù)慣例,應(yīng)以Exception結(jié)尾,應(yīng)該由人工創(chuàng)建并拋出。

      什么是斷言?

      用來證明和測試程序的假設(shè)。

      如何使用斷言?舉例說明

      一種是assert<<布爾表達式>>;另一種是assert<<布爾表達式>>:<<細節(jié)描述>>。

      assert a= =10 : “這里a等于10″;

      集合框架

      什么是集合?什么是元素? 可以包含其他對象的簡單對象就叫集合

      集合框架中所包含的對象就叫做元素

      描述出Java集合框架中集合的接口關(guān)系 Collection—-Set和List

      Set—-HashSet和SortedSet

      List—-ArrayList和LinkedList

      Map—-HashMap、SortedMap和TreeMap

      代碼示例:Collection接口的使用,包括如何定義、初始化、賦值、取值、修改值除值 Collection col = new ArrayList();

      String oldValue = “abcd”;

      String newValue = “1234″;

      //增加

      col.add(oldValue);

      Iterator it = col.iterator();

      while(it.hasNext()){

      //取值

      String str =(String)it.next();

      if(str.equals(oldValue)){

      //刪除

      col.remove(oldValue);//修改

      col.add(newValue);} }

      代碼示例:List接口的使用,包括如何定義、初始化、賦值、取值、修改值、刪值 List col = new ArrayList();

      String oldValue = “abcd”;

      String newValue = “1234″;

      col.add(oldValue);

      Iterator it = col.iterator();

      while(it.hasNext()){

      String str =(String)it.next();

      if(str.equals(oldValue)){

      col.remove(oldValue);

      col.add(newValue);} }

      代碼示例:Set接口的使用,包括如何定義、初始化、賦值、取值、修改值、刪值 Set col = new HashSet();

      String oldValue = “abcd”;

      String newValue = “1234″;col.add(oldValue);

      Iterator it = col.iterator();

      while(it.hasNext()){

      String str =(String)it.next();

      if(str.equals(oldValue)){

      col.remove(oldValue);

      col.add(newValue);} }

      代碼示例:Map接口的使用,包括如何定義、初始化、賦值、取值、修改值、刪 Map map = new HashMap();

      String oldValue = “abcd”;

      String newValue = “1234″;

      //增加

      map.put(“1″,oldValue);

      Set set = map.keySet();

      Iterator it = set.iterator();

      while(it.hasNext()){

      String key =(String)it.next();

      //取值

      String value = map.get(key);}

      //修改

      map.put(“1″,newValue);

      //刪除

      map.remove(“1″);}

      描述List接口、Set接口和Map接口的特點 List接口中的對象按一定順序排列,允許重復(fù)

      Set接口中的對象沒有順序,但是不允許重復(fù)

      Map接口中的對象是key、value的映射關(guān)系,key不允許重復(fù)

      如何給集合排序? 實現(xiàn)comparable接口

      IO 什么是流?可畫圖說明

      流是要傳輸?shù)臄?shù)據(jù)在源和目的地之間運行的軌跡。

      描述I/O流的基本接口和類的結(jié)構(gòu)

      代碼示例:使用URL流,讀取網(wǎng)頁代碼 import java.io.*;import java.net.URL;import java.net.URLConnection;public class ReadURL { public static void main(String[] args)throws Exception { URL url = new URL(“http://bbs.tarena.com.cn”);//建立封裝統(tǒng)一資源定位符的類 URLConnection uc = url.openConnection();//打開連接

      InputStreamReader isr = new InputStreamReader(uc.getInputStream());BufferedReader br = new BufferedReader(isr);

      //傳輸數(shù)據(jù) while(true){ String temp = br.readLine();if(temp==null){ break;} System.out.println(temp);} br.close();} }

      什么是Unicode?

      是一種字符的編碼方式,占16位字節(jié),Java 技術(shù)使用 Unicode 來表示字符串和字符。

      代碼示例:如何使用Reader和Writer來進行輸入輸出 //Writer寫入操作

      FileOutputStream fos=new FileOutputStream(“a.txt”);

      OutputStreamWriter osw=new OutputStreamWriter(fos);

      BufferedWriter bw=new BufferedWriter(osw);

      bw.write(“歡迎來到j(luò)ava快車”);

      bw.close();

      //Reader讀取操作

      FileInputStream fis=new FileInputStream(“a.txt”);

      InputStreamReader isr=new InputStreamReader(fis);

      BufferedReader br=new BufferedReader(isr);

      String str=br.readLine();

      System.out.println(str);

      什么叫保持?什么是可序列化?如何實現(xiàn)可序列化?

      將一個對象存放在某種類型的永久存儲器上(比如硬盤,光盤,軟盤等),稱為保持。標(biāo)識一個類可以被持久化,叫序列化,也叫串行化或持久化。表示這個類中的數(shù)據(jù)可以按流式輸出。

      實現(xiàn)可序列化的方法:實現(xiàn)java.io.Serializable接口。

      代碼示例:如何讀寫對象流 //讀

      try {

      String str = “123″;

      FileOutputStream f = new FileOutputStream(“test.txt”);

      ObjectOutputStream s = new ObjectOutputStream(f);

      s.writeObject(str);

      f.close();

      }catch(Exception e){

      e.printStackTrace();} //寫

      try {

      FileInputStream f = new FileInputStream(“test.txt”);

      ObjectInputStream s = new ObjectInputStream(f);

      str =(String)s.readObject();

      f.close();

      }catch(Exception e){

      e.printStackTrace();}

      簡述File類的基本功能

      處理文件和獲取文件信息;文件或文件夾的管理。

      概括一句話就是:除了讀寫文件內(nèi)容其他的都可以做。

      代碼示例:如何使用隨機文件讀寫類來讀寫文件內(nèi)容 RW表示文件時可讀寫的

      讀:

      try{

      RandomAccessFile f = new RandomAccessFile(“test.txt”, “rw”);

      long len = 0L;

      long allLen = f.length();

      int i = 0;

      while(len < allLen){

      String s = f.readLine();

      if(i > 0){

      col.add(s);} i++;

      //游標(biāo)

      len = f.getFilePointer();} }catch(Exception err){

      err.printStackTrace();}

      寫:

      try{

      RandomAccessFile f = new RandomAccessFile(“test.txt”, “rw”);

      StringBuffer buffer = new StringBuffer(“n”);

      Iterator it = col.iterator();

      while(it.hasNext()){

      buffer.append(it.next()+ “n”);

      }

      f.writeUTF(buffer.toString());

      }catch(Exception err){

      err.printStackTrace();}

      代碼示例:如何使用流的基本接口來讀寫文件內(nèi)容 try{

      DataInputStream in =

      new DataInputStream(new BufferedInputStream(new FileInputStream(“Test.java”)));

      String currentLine=null;

      while((currentLine = in.readLine())!= null){

      System.out.println(currentLine);}

      }catch(IOException e){

      System.err.println(“Error: ” + e);

      }

      多線程

      什么是線程? 輕量級的進程

      線程的三個部分是? 處理機

      代碼

      數(shù)據(jù)

      為什么使用多線程 使UI響應(yīng)更快

      利用多處理器系統(tǒng)

      簡化建模

      代碼示例:Java中實現(xiàn)多線程的兩種方式,包括如何定義多線程,如何使用多線程 實現(xiàn)Runnable接口

      class Thread1 implements Runnable{

      public void run(){

      //run里一般寫一個while(true)循環(huán)

      System.out.println(“Runnable“);

      } }

      public class Test{

      public static void main(String[] a){

      Thread1 r = new Thread1();

      Thread t1 = new Thread(r);

      Thread t2 = new Thread(r);

      t1.start();

      t2.start();

      } }

      繼承Thread

      class Thread2 extends Thread{

      public void run(){

      System.out.println(“extends“);} }

      public class Test{

      public static void main(String[] a){

      Thread t = new Thread2();

      t.start();

      }

      }

      如何實現(xiàn)線程的調(diào)度?如何暫停一個線程的運行 調(diào)度用wait和notify,—-

      sleep()

      什么是線程的優(yōu)先級

      判斷哪個線程先執(zhí)行的級別

      簡述sleep方法和wait方法的功能和區(qū)別 sleep是讓線程休眠一段時間

      wait是讓線程掛起

      什么是守候線程

      隱藏在后臺持續(xù)運行的線程

      什么是臨界資源

      指多個線程共享的資源

      什么是互斥鎖,Java中如何實現(xiàn)

      用來保證在任一時刻只能有一個線程來訪問臨界資源的那個標(biāo)記

      在Java中使用

      用在對象前面限制一段代碼的執(zhí)行

      用在方法聲明中,表示整個方法為同步方法。

      什么是死鎖?如何避免?

      如果程序中有多個線程競爭多個資源,就可能會產(chǎn)生死鎖。當(dāng)一個線程等待由另一個線程持有的鎖,而后者正在等待已被第一個線程持有的鎖時,就會發(fā)生死鎖。

      要避免死鎖,應(yīng)該確保在獲取多個鎖時,在所有的線程中都以相同的順序獲取鎖。盡量少用臨界資源。

      簡述wait和notify,notifyAll的使用

      被鎖定的對象可以調(diào)用wait()方法,這將導(dǎo)致當(dāng)前線程被阻塞并放棄該對象的互斥鎖,即解除了wait()方法的當(dāng)前對象的鎖定狀態(tài),其他的線程就有機會訪問該對象。

      notify使等待隊列上的一個線程離開阻塞狀態(tài)

      notifyAll使等待隊列上的所有線程離開阻塞狀態(tài)

      Socket編程

      什么是url?基本的格式是? 統(tǒng)一資源定位器

      Http://004km.cn:port

      簡述IP,Port,TCP的基本功能 IP代表網(wǎng)絡(luò)位置

      Port代表端口號

      TCP可保證不同廠家生產(chǎn)的計算機能在共同網(wǎng)絡(luò)環(huán)境下運行,解決異構(gòu)網(wǎng)通信問題,是目前網(wǎng)絡(luò)通信的基本協(xié)議

      簡述Java網(wǎng)絡(luò)模型的基本功能 描述服務(wù)端和客戶端的連接過程

      簡述Java網(wǎng)絡(luò)編程究竟做些什么?如何做? 1.建立連接

      2.準備輸出的數(shù)據(jù),流式輸出

      3.流式輸入,編程業(yè)務(wù)需要的格式

      4.關(guān)閉連接

      服務(wù)器分配一個端口號。如果客戶請求一個連接,服務(wù)器使用accept()方法打開socket連接。

      客戶在host的port端口建立連接。

      服務(wù)器和客戶使用InputStream和OutputStream進行通信。

      代碼示例:基于Socket編程 try {

      ServerSocket s = new ServerSocket(8888);

      while(true){

      Socket s1 = s.accept();OutputStream os = s1.getOutputStream();

      DataOutputStream dos = new DataOutputStream(os);

      dos.writeUTF(“Hello,” +s1.getInetAddress()+ “port#” + s1.getPort()+ “nbye!”);

      dos.close();

      s1.close();}

      }catch(IOException e){

      System.out.println(“程序運行出錯:” + e);}

      TCP和UDP區(qū)別

      TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)是傳輸層協(xié)議

      TCP是面向連接的可靠數(shù)據(jù)傳輸協(xié)議,能保證傳輸內(nèi)容的完整和準確;數(shù)據(jù)傳輸?shù)妮o助開銷大,效率低

      UDP: 是無連接的,不可靠地傳輸協(xié)議,不能保證傳輸內(nèi)容的完整和準確,對信息的適時要求比較高

      設(shè)計模式

      什么是設(shè)計模式?

      就是經(jīng)過實踐驗證的用來解決特定環(huán)境下特定問題的解決方案。

      設(shè)計模式用來干什么? 尋找合適的對象

      決定對象的粒度

      指定對象的接口

      描述對象的實現(xiàn)

      運用復(fù)用機制

      重復(fù)使用經(jīng)過實踐驗證的正確的,用來解決某一類問題的解決方案來達到減少工作量、提高正確率等目的什么是對象粒度

      對象中方法的大小就是粒度

      基本的Java編程設(shè)計應(yīng)遵循的規(guī)則? 面向接口編程,優(yōu)先使用對象組合設(shè)計模式的應(yīng)用范圍

      所能解決的特定的一類問題中

      簡述什么是單例模式,以及解決的問題,應(yīng)用的環(huán)境,解決的方案,應(yīng)用時應(yīng)注意什么? 解決的問題:在任何時間內(nèi)只有一個類實例存在的模式。

      應(yīng)用環(huán)境:需要有一個從中進行全局訪問和維護某種類型數(shù)據(jù)的區(qū)域的環(huán)境下使用單例模式。

      解決方案:保證一個類只有一個類實例存在。

      本質(zhì):控制實例的數(shù)量。

      注意:要合理的使用單例,避免單例成為瓶頸。

      代碼示例:單例模式的兩種實現(xiàn)方法,并說明優(yōu)缺點 public class Test{

      private static Test test = new Test();

      public Test(){

      }

      public static Test getInstance(){

      return test;} }

      public class Test{

      private static Test test = null;

      private Test(){

      }

      public static Test getInstance(){

      if(test==null){

      test = new Test();

      }

      return test;

      } }

      第一種方式:裝載類的時候就創(chuàng)建類的實例,用空間換時間。

      第二種方式:延遲裝載,不需每次都創(chuàng)建一個類實例,而只是在第一次使用時創(chuàng)建,有效的利用資源,用時間換資源。

      簡述什么是工廠模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì) 利用工廠來解決接口選擇的問題的模式。

      應(yīng)用環(huán)境:當(dāng)一個類無法預(yù)料要創(chuàng)建哪種類的對象或是一個類需要由子類來指定,創(chuàng)建的對象時,就需要用到工廠模式。

      解決方案:定義一個創(chuàng)建對象的類,在類的方法中決定具體實例化哪一個類。

      本質(zhì):就是根據(jù)不同的情況來選擇不同的實現(xiàn)類,重在選擇。

      代碼示例:工廠模式的實現(xiàn)方法 單獨是使用工廠:

      public class Factory{

      public static Sample creator(int which){

      if(which==1){

      return new SampleA();

      }else if(which==2)

      return new SampleB();

      }

      }

      }

      工廠+單例:

      public class MyFactory{

      public static MyFactory f = null;

      public MyFactory(){ }

      public static MyFactory getInstance(){

      if(f==null){

      f=new MyFactory();} }

      public DBDAO getDAO(){

      return new DBDAOImpl();} }

      簡述什么是值對象模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì) 用來把一組數(shù)據(jù)封裝成一個對象的模式

      解決問題:在遠程方法的調(diào)用次數(shù)增加的時候,相關(guān)的應(yīng)用程序性能將會有很大的下降

      解決方案:使用值對象的時候,可以通過僅僅一次方法調(diào)用來取得整個對象,而不是使用多次方法調(diào)用以得到對象中每個域的數(shù)值

      本質(zhì):封裝數(shù)據(jù)。

      代碼示例:值對象模式的實現(xiàn)方法 步驟:

      public class UserModel{

      private String userId;

      private String userName;

      public void setUserId(String id){

      this.userId = id;

      }

      public String getUserId(){

      return userId;

      }

      public void setUserName(String name){

      this.userName = name;

      }

      public String getUserName(){

      return userName;

      }

      }

      簡述什么是DAO模式,以及他解決的問題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì) 數(shù)據(jù)訪問對象

      解決問題:根據(jù)數(shù)據(jù)源不同,數(shù)據(jù)訪問也不同。根據(jù)存儲的類型(關(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、純文件等)和供應(yīng)商實現(xiàn)不同,持久性存儲(如數(shù)據(jù)庫)的訪問差別也很大。如何對存儲層以外的模塊屏蔽這些復(fù)雜性,以提供統(tǒng)一的調(diào)用存儲實現(xiàn)。程序的分布式問題

      解決方案:將數(shù)據(jù)訪問邏輯抽象為特殊的資源,也就是說將系統(tǒng)資源的接口從其底層訪問機制中隔離出來;通過將數(shù)據(jù)訪問的調(diào)用打包,數(shù)據(jù)訪問對象可以促進對于不同數(shù)據(jù)庫類型和模式的數(shù)據(jù)訪問。

      本質(zhì):分層,是系統(tǒng)組件和數(shù)據(jù)源中間的適配器。(一層屏蔽一種變化)

      代碼示例:DAO模式的實現(xiàn)方法

      什么是框架?框架的優(yōu)點?

      框架是能夠完成一定功能的半成品

      1.優(yōu)點:完成一定的功能、提供一個精良的應(yīng)用程序架構(gòu)

      2.框架都是以接口的形式出現(xiàn)

      3.應(yīng)該了解框架完成的功能、框架的API接口、框架的功能是怎么實現(xiàn)的什么是開放-封閉法則(OCP)可擴展但是不可以更改已有的模塊

      對擴展是開放的,對修改是封閉

      什么是替換法則(LSP)使用指向基類(超類)的引用的函數(shù),必須能夠在不知道具體派生類(子類)對象類型的情況下使用。

      如何綜合使用我們學(xué)過的設(shè)計模式來構(gòu)建合理的應(yīng)用程序結(jié)構(gòu)

      是采用接口進行隔離,然后同時暴露值對象和工廠類,如果是需要數(shù)據(jù)存儲的功能,又會通過DAO 模式去與數(shù)據(jù)存儲層交互。

      構(gòu)建常用的合理的Java應(yīng)用包結(jié)構(gòu) Ui(表現(xiàn)層)

      business–factory,ebi,ebo

      dao–factory,dao,impl

      awt、swing 什么是GUI中的容器?什么是GUI中的組件?

      容器:能包含其他container和其他component的component。

      組件:在設(shè)計上能實現(xiàn)一定功能的封裝體;

      簡述AWT中的Frame、Panel和組件的關(guān)系

      組件放在Panel上,而多個Panel可以疊加到Frame上,F(xiàn)rame一般只有一個,各個Panel可以互相在Frame上切換

      簡述如何使用一個組件

      初始化,加到容器中,注冊事件,實現(xiàn)相應(yīng)的事件

      Panel pan = new Panel();

      TextField td = new TextField();

      td.setText(“this is in a TextField.”);

      pan.add(td);

      描述一個GUI界面的基本構(gòu)成? Frame,Panel,組件

      Popmenu

      如何控制外觀,如顏色、字體等? 可使用setColor(),setFont()方法

      例如: Frame f = new Frame();

      Font font = new Font(“TimesRoman”, Font.PLAIN, 14);

      f.setColor(Color.red);

      f.setFont(f);

      什么是布局管理器?

      用來管理GUI界面中組件的分布情況,負責(zé)決定布局方針以及其容器的每一個子組件的大小

      描述每種布局管理器的基本特點

      FlowLayout 從左到右分布,排滿推到下一行

      BorderLayout 上下左右中分布

      CardLayout 卡片式分布

      GridLayout 網(wǎng)格式分布

      XYLayout 坐標(biāo)分布

      什么是JFC(Java基礎(chǔ)類)?

      是關(guān)于GUI組件和服務(wù)完整集合,主要包括5個API:

      AWT,JavaD,Accessibility,Drag&Drop,Swing

      提供了幫助開發(fā)人員設(shè)計復(fù)雜應(yīng)用程序的一整套應(yīng)用程序開發(fā)包;

      Swing和AWT的區(qū)別?

      Swing提供了更完整的組件,引入了許多新的特性和能力。Swing API是圍繞著實現(xiàn)AWT 各個部分的API 構(gòu)筑的。

      AWT 采用了與特定平臺相關(guān)的實現(xiàn),而絕大多數(shù)Swing 組件卻不是這樣做的,因此Swing 的外觀和感覺是可客戶化和可插的。

      什么是雙緩沖?

      在后臺進行界面的更新,然后在前臺進行界面交換

      功能:雙緩沖可以改善一個被頻繁改變的組件的外觀

      描述GUI的事件機制

      事件源:是一個事件的產(chǎn)生者,或產(chǎn)生事件的組件對象

      事件監(jiān)聽器:調(diào)用事件處理方法的對象

      事件處理器:就是一個接收事件、解釋事件并處理用戶交互的方法。

      描述Swing應(yīng)用程序的基本結(jié)構(gòu)? 組件定義

      初始化界面

      各種事件處理方法

      各種適配類

      描述表現(xiàn)層的基本功能? 展示數(shù)據(jù)

      人機交互

      收集參數(shù)、調(diào)用邏輯層api

      描述在開發(fā)Swing應(yīng)用程序中,一般都要寫那些代碼?都寫到什么地方? 一般要在類的初始化的時候給組件賦值,寫在jinit的方法里面

      一般要在按扭的事件處理中寫收集參數(shù),組織參數(shù),調(diào)用業(yè)務(wù)接口的方法

      對于GUI組件而言,最主要的方法是哪些? 初始化

      如何給組件初始化

      如何從組件中取值

      設(shè)計組件的屬性

      如何學(xué)習(xí)GUI組件的用法?

      主要學(xué)會組件的定義、取值、賦值的方法

      類比學(xué)習(xí)

      JavaScript

      什么是Javascript JavaScript是一種基于對象(Object)和事件驅(qū)動(Event Driven)并具有安全性能的腳本語言。

      Java和Javascript的區(qū)別

      1、基于對象和面向?qū)ο?/p>

      Java是一種真正的面向?qū)ο蟮恼Z言,即使是開發(fā)簡單的程序,必須設(shè)計對象。

      JavaScript是種腳本語言,它可以用來制作與網(wǎng)絡(luò)無關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對象(Object Based)和事件驅(qū)動(Event Driver)的編程語言。因而它本身提供了非常豐富的內(nèi)部對象供設(shè)計人員使用。

      2、解釋和編譯

      兩種語言在其瀏覽器中所執(zhí)行的方式不一樣。Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應(yīng)平臺 上的仿真器或解釋器,它可以通過編譯器或解釋器實現(xiàn)獨立于某個特定的平臺編譯代碼的束縛。

      JavaScript是一種解釋性編程語言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器 解釋執(zhí)行。

      3、強變量和弱變量

      兩種語言所采取的變量是不一樣的。

      Java采用強類型變量檢查,即所有變量在編譯之前必須作聲明。

      JavaScript中變量聲明,采用其弱類型。即變量在使用前不需作聲明,而是解釋器在運行時檢查其數(shù)據(jù)類型,4、代碼格式不一樣

      Java是一種與HTML無關(guān)的格式,必須通過像HTML中引用外媒體那么進行裝載,其代碼以字節(jié)代碼的形式保存在獨立的文檔中。

      JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態(tài)裝載。編寫HTML文檔就像編輯文本文件一樣方便。

      5、嵌入方式不一樣

      在HTML文檔中,兩種編程語言的標(biāo)識不同,JavaScript使用來標(biāo)識,而Java使用?來標(biāo)識。

      6、靜態(tài)聯(lián)編和動態(tài)聯(lián)編

      Java采用靜態(tài)聯(lián)編,即Java的對象引用必須在編譯時的進行,以使編譯器能夠?qū)崿F(xiàn)強類型檢查。

      JavaScript采用動態(tài)聯(lián)編,即JavaScript的對象引用在運行時進行檢查,如不經(jīng)編譯則就無法實現(xiàn)對象引用的檢查。

      Javascript的運行環(huán)境 具備javascript運行器的如何在web頁面加入Javascript,請寫出兩種方式并示例

      第五篇:一個程序員應(yīng)該具備的基礎(chǔ)知識和概念

      一個程序員應(yīng)該具備的基礎(chǔ)知識和概念

      1、計算機是有什么組成的,CPU是什么東西,其工作原理是什么。(對于這些以及下面將要提到的概念我不會告訴你什么答案,你可以看相應(yīng)的教材,關(guān)于教材我會在下一部分詳述,記住理解最重要?。?/p>

      2、機器語言和微指令集的概念。

      3、程序的概念。

      4、匯編語言是低級語言但不是機器語言。

      5、高級語言主要有那些?(C,C++,Basic,Pascal,F(xiàn)ortran,C#,Java等等;如果你是中國軟件業(yè)的英雄,你也寫一門語言,最好不用英語)

      6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫的)

      7、HTML、XML等是標(biāo)識性語言。

      8、Prolog是人工智能語言。

      9、操作系統(tǒng)OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實時OS,嵌入OS,編這些的絕對是高手)

      10、Windows編程說白了就是Windows API的調(diào)用。(中國的程序員很多只是會編windows程序,用的是VB,我的建議是這些程序員頂多只是低級編碼員,我稱其是coder)

      11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環(huán)境,不是編程語言。

      12、面向結(jié)構(gòu)的設(shè)計概念。

      13、面向?qū)ο蟮母拍?。(好好理解,兄弟,這個東西還是很重要的)

      14、軟件工程的概念和原理。(如果你想當(dāng)老總就需要好好研究了,系統(tǒng)分析員比編碼員要高一個等級,薪水也高喲)

      15、數(shù)據(jù)庫的概念。(要熟悉一些著名的數(shù)據(jù)庫系統(tǒng)和語言的名字,如Orcle,SQL,DB2,DyBase等)

      16、了解網(wǎng)絡(luò)概念。

      17、了解多媒體概念。

      18、熟悉和掌握數(shù)據(jù)結(jié)構(gòu)和基本算法。

      19、是不是要求太高了,別著急慢慢來,進步在不知不覺之中。(一旦開始學(xué)習(xí),一個月以后你就會有一個基本的概念;兩個月以后你就會感覺自己有了全面的基礎(chǔ)知識;當(dāng)你知道編程序是怎么回事時,說明你已經(jīng)入門了。也有很多人編了很多年程序還沒有入門呢,你不會希望自己步其后塵吧。要有信心和耐心。沉不住氣怎么能成大事??。?/p>

      教材推薦

      ――-推薦的教材主要還是針對概念來的,最好選用名校的教學(xué)用書。

      1、《計算機組成原理》(熟悉)

      2、《數(shù)據(jù)結(jié)構(gòu)》(掌握)

      3、《操作系統(tǒng)》(了解->熟悉)

      4、《The C language》(掌握)

      5、《編譯原理》(了解原理)

      6、《匯編語言》(了解)

      7、《計算機網(wǎng)絡(luò)》(了解)

      8、《軟件工程》(了解)

      9、《關(guān)系數(shù)據(jù)庫》(熟悉)

      10、《The C++Languege 》(掌握)

      11、《面向?qū)ο笤O(shè)計》(掌握;結(jié)合C++學(xué)習(xí))

      一些經(jīng)驗和體會

      1、真正的程序員用C++;(一位專家說的)

      2、動手去編程序;

      3、動腦去思考;

      4、要有良好的編程風(fēng)格;

      5、讀書,讀好書,盡量讀原版書?。ㄎ曳磸?fù)強調(diào)這一點,讀書要有選擇,堅持讀好書,名家出的經(jīng)典書,不要浪費實踐在一些粗制濫造的書上面;堅持博覽群書)

      6、有自己的學(xué)習(xí)計劃;

      7、總結(jié)自己的經(jīng)驗教訓(xùn);(準備一個筆記本,記錄錯誤和心得)

      8、不要怕學(xué)新東西;

      9、要有軟件工程的思想;

      10、善于發(fā)現(xiàn)問題,然后去尋找答案;

      11、向高手請教;(要虛心直到你成為高手)

      12、和同行交流;(不善于交流肯定不行)

      13、懂得軟件的實質(zhì),不要被千變?nèi)f化的表象所迷惑;

      14、真正要學(xué)習(xí)用的是編程語言和方法,不是什么庫,什么類,什么工具;(學(xué)用那些什么庫都比較簡單,但光會這些庫,我覺得還遠遠不夠)

      15、學(xué)習(xí)wiodows編程主要是學(xué)習(xí)windows OS和win32 API;

      16、有空了解一下嵌入式開發(fā);

      17、有空了解一下PDA軟件開發(fā);

      18、了解一下.NET框架和C#語言,也許它是你新的衣食父母;

      19、要有耐心,不要作浮躁的人; 20、對程序加注釋,并保留你的老程序;

      21、學(xué)到的東西越多,了解的越多,你就越接近專家;

      22、有空去逛逛CSDN,那里有你很多知己;

      23、要有信心成為一個優(yōu)秀的程序;

      一些好書的推薦

      1、《The C Programming language》(Keinighan & Dennis Ritchie 1988)

      2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)

      3、《Inside The C++ Object Model》(lippmans)

      4、《Effective C++》(同上)

      5、《More Effective C++》(同上)

      6、《Exceptional c++》

      7、《C++面向?qū)ο蟾咝Ь幊獭?/p>

      8、《設(shè)計模式》

      9、《Thinking In C++》

      10、《The Standard C++ Bible》(一般推薦)

      11、《The Art of Computer Programming 》

      12、《Programming Windows》(Charles Petzold)

      13、《VC++5.0技術(shù)內(nèi)幕》

      14、《MFC 深入淺出》

      15、《軟件需求》

      16、《Advanced Windows》

      17、《C++ primer》

      18、《win32程序員參考手冊》

      19、《用TCP/IP進行網(wǎng)際互連》

      20、《COM 本質(zhì)論》

      下載程序員的基礎(chǔ)知識word格式文檔
      下載程序員的基礎(chǔ)知識.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


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

      相關(guān)范文推薦

        程序員(范文模版)

        作業(yè):研究一個新或自己感興趣的職業(yè) v介紹:名稱定義 v典型生涯路徑:從新手到最高職位的生涯路徑 v趨勢:技術(shù)、組織結(jié)構(gòu)、培訓(xùn)、經(jīng)濟趨勢對職業(yè)的影響v薪酬:差別、地域差別v所......

        程序員

        7.5.3系統(tǒng)測試和調(diào)試 1.系統(tǒng)測試的意義及目的 系統(tǒng)測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。 測試的目的就是希望能以最少的人力和時......

        程序員

        程序員之死 程序員:舉世至主,萬元之源,眾物所幕,神祗皆掌,歲能長立,箜有己出。弈中悲苦,是自了得!幸事禍事飄忽于其思想,曉如今,心思想,新紀元,心結(jié)緣,把話晾。 世間萬物,出于思想,毀亦思想......

        程序員年終工作總結(jié)

        程序員年終工作總結(jié) 程序員年終工作總結(jié)1 來公司擔(dān)負法度模范員一職已一年多光陰,在這20xx年的光陰里,我學(xué)到了許多器械。每個人都是在總結(jié)中發(fā)展,在審視中完善本身。在這半年......

        程序員小品

        當(dāng) 蛤 蟆 愛 上 天 鵝 天源迪科電信事業(yè)部華中區(qū)2014屆實習(xí)生敬上 演員表: 男主角 小哈:胡傳文 女主角 小鵝:李慧梅 女主角媽媽:尚廣安 王小麗: 李銀銀 小帥:張賀東 旁白( ):王娜娜......

        程序員求職信合集[本站推薦]

        程序員求職信合集5篇時間一晃而過,我們將帶著新的期許,開啟新一輪的求職,求職信也應(yīng)跟上時間的腳步了哦。相信許多人會覺得求職信很難寫吧,下面是小編收集整理的程序員求職信10......

        程序員工作總結(jié)簡短

        程序員工作總結(jié)范文簡短3篇程序員工作總結(jié)范文簡短1我是一名程序員,在過去的一年里,軟件研發(fā)部團結(jié)協(xié)作,以及在公司這充滿奮斗的環(huán)境下,我以嚴肅認真的工作態(tài)度和百折不饒的精神......

        程序員惡性循環(huán)

        窮人的惡性循環(huán): 窮 -> 需要努力工作 -> 沒有時間去交際 -> 人脈越來越狹窄 -> 工作越來越難做 -> 越需要努力去工作 -> 越?jīng)]有時間去發(fā)展人脈 -> 越窮富人的良性循環(huán): 有錢 -......