Java初学者
想要掌握一門編程語言,很多人首選都會是java,我也不例外。從多個方面考慮,java都是項實用性很強的編程語言。 
 首先,java是面向對象的語言,可移植性特別高。百度上是這樣介紹的:“java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此java語言具有功能強大和簡單易用兩個特征。java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等” 
 編程環境 
 JDK(Java Development Kit)稱為Java開發包或Java開發工具,是一個編寫Java的Applet小程序和應用程序的程序開發環境。JDK是整個Java的核心,包括了Java運行環境(Java Runtime Envirnment),一些Java工具和Java的核心類庫(Java API)。不論什么Java應用服務器實質都是內置了某個版本的JDK。主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如,IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK 。 
 另外,可以把Java API類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(JAVA Runtime Environment),JRE是支持Java程序運行的標準環境 。 
 JRE是個運行環境,JDK是個開發環境。因此寫Java程序的時候需要JDK,而運行Java程序的時候就需要JRE。而JDK里面已經包含了JRE,因此只要安裝了JDK,就可以編輯Java程序,也可以正常運行Java程序。但由于JDK包含了許多與運行無關的內容,占用的空間較大,因此運行普通的Java程序無須安裝JDK,而只需要安裝JRE即可 。
編程工具 
 Eclipse:一個開放源代碼的、基于Java的可擴展開發平臺 。 
 NetBeans:開放源碼的Java集成開發環境,適用于各種客戶機和Web應用。 
 IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好的功能。 
 MyEclipse:由Genuitec公司開發的一款商業化軟件,是應用比較廣泛的Java應用程序集成開發環境 。 
 EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”后,可直接使用EditPlus編譯執行Java程序 。
語言特點 
 編輯 
 1.簡單性 
 Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。 
 2.面向對象 
 Java是一個面向對象的語言。對程序員來說,這意味著要注意應中的數據和操縱數據的方法(method),而不是嚴格地用過程來思考。在一個面向對象的系統中,類(class)是數據和操作數據的方法的集合。數據和方法一起描述對象(object)的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。 
 Java還包括一個類的擴展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產生圖形用戶接口部件的類(java.awt包),這里awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網絡功能的類(java.net包)。 
 3.分布性 
 Java設計成支持在網絡上應用,它是分布式語言。Java既支持各種層次的網絡連接,又以Socket類支持可靠的流(stream)網絡連接,所以用戶可以產生分布式的客戶機和服務器。 
 網絡變成軟件應用的分布運載工具。Java程序只要編寫一次,就可到處運行。 
 4.編譯和解釋性 
 **Java編譯程序生成字節碼(byte-code),而不是通常的機器碼。**Java字節碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平臺。Java程序可以在任何實現了Java解釋程序和運行系統(run-time system)的系統上運行。 
 在一個解釋性的環境中,程序開發的標準“鏈接”階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發過程。 
 5.穩健性 
 Java原來是用作編寫消費類家用電子產品軟件的語言,所以它是被設計成寫高可靠和穩健軟件的。Java消除了某些編程錯誤,使得用它寫可靠軟件相當容易。 
 Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。這些嚴格的要求保證編譯程序能捕捉調用錯誤,這就導致更可靠的程序。 
 可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數據的可能性。類似地,Java自動的“無用單元收集”預防存儲漏泄和其它有關動態存儲分配和解除分配的有害錯誤。Java解釋程序也執行許多運行時的檢查,諸如驗證所有數組和串訪問是否在界限之內。 
 異常處理是Java中使得程序更穩健的另一個特征。異常是某種類似于錯誤的異常條件出現的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務。 
 6.安全性 
 Java的存儲分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內幕和偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。 
 Java運行系統使用字節碼驗證過程來保證裝載到網絡上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預防惡意的小應用程序用它自己的版本來代替標準Java類。 
 7.可移植性 
 Java使得語言聲明不依賴于實現的方面。例如,Java顯式說明每個基本數據類型的大小和它的運算行為(這些數據類型由Java語法描述)。 
 Java環境本身對新的硬件平臺和操作系統是可移植的。Java編譯程序也用Java編寫,而Java運行系統用ANSIC語言編寫。 
 8.高性能 
 Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者制作了“及時”編譯程序,它能在運行時把Java字節碼翻譯成特定CPU(中央處理器)的機器代碼,也就是實現全編譯了。 
 Java字節碼格式設計時考慮到這些“及時”編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。 
 9.多線索性 
 Java是多線索語言,它提供支持多線索的執行(也稱為輕便過程),能處理不同任務,使具有線索的程序設計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法。 
 Java的線索支持也包括一組同步原語。這些原語是基于監督程序和條件變量風范,由C.A.R.Haore開發的廣泛使用的同步化方案。用關鍵詞synchronized,程序員可以說明某些方法在一個類中不能并發地運行。這些方法在監督程序控制之下,確保變量維持在一個一致的狀態。 
 10.動態性 
 Java語言設計成適應于變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網絡獲取的。
工作原理 
 由四方面組成: 
 (1)Java編程語言 
 (2)Java類文件格式 
 (3)Java虛擬機 
 (4)Java應用程序接口 
 當編輯并運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然后再通過運行與操作系統平臺環境相對應的Java虛擬機來運行class文件,執行編譯產生的字節碼,調用class文件中實現的方法來滿足程序的Java API調用 。 
 語言基礎 
 編輯 
 基本數據結構 
 在Java中有8種數據類型來存儲數值、字符和布爾值。 
 整數類型 
 整數型用來存儲整數數值,即沒有小數部分的數值??梢允钦龜?#xff0c;也可以是負數。整數數據在Java程序中有3種表示形式,分別為十進制、八進制和十六進制。 
 整型數據根據它所占內容大小的不同可分為4種類型。 
 
字符類型 
 字符類型用于存儲單個字符,占用16位(兩個字節)的內存空間。在定義字符型變量時,要以單引號表示。使用char關鍵字可定義字符變量。 
  
 布爾類型 
 布爾類型又稱邏輯類型,通過關鍵字boolean來定義布爾類型變量,只有只有true和false兩個取值,分別代表布爾邏輯中的“真”和“假”。布爾類型通常被用在流程控制中作為判斷條件。
關鍵字 
  
  
 
運算符 
 運算符是一些特殊的符號,主要用于數學函數、一些類型的賦值語句和邏輯比較方面。 
 賦值運算符 
 賦值運算符以符號“=”表示,它是一個二元運算符(對兩個操作數作處理),其功能是將右方操作數所含的值賦給左方的操作數。 
 例如: 
 int a = 100; 
 算術運算符 
 運算符 說明 
 + 加 
 - 減 
 * 乘 
 / 除 
 % 取余數 
 自增和自減運算符 
 自增和自減是單目運算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個整型或浮點型變量。自增、自減運算符的作用是使變量的值增1或減1。放在操作元前面的自增、自減運算符,會先將變量的值加1或減1,然后再使該變量參與表達式的運算。放在操作元后面的自增、自減運算符,會先使變量參與表達式的運算,然后再將該變量的值加1或減1。 
 例如: 
 假設a=5 
 b=++a;//先將a的值加1,然后賦值給b,此時a的值為6,b的值為6 
 b=a++;//先將a的值賦值給b,再將a的值加1,此時a的值為6,b的值為5 
 比較運算符 
 比較運算符屬于二元運算符,用于程序中的變量之間,變量和自變量之間以及其他類型的信息之間的比較。比較運算符的運算結果是boolean型。當運算符對應的關系成立時,運算的結果為true,否則為false。比較運算符共有6個,通常作為判斷的依據用于條件語句中。 
    
 運算符 說明 
 
邏輯運算符 
 
/*一個簡單的Java應用程序,顯示內容:Hello World! 
 文件名為Hello.java*/
main方法,正如注釋所說,這是程序開始執行的第一行。對于一個Java應用程序來說,main方法是必需的,Java解釋器在沒有生成任何對象的情況下,以main作為入口來執行程序。每個類中可以定義多個方法,但main方法只能有一個。關鍵字public表示訪問權限,指明所有的類都可以使用這一方法。本例中,main必須被定義為public類型,因為當程序開始執行時它需要被它的類之外的代碼調用。關鍵字static指明該方法是一個靜態類方法。關鍵字void指明main()方法不返回任何值。main方法圓括號中定義的String args[]是傳送給main方法的參數,參數名為args,它是類String的一個對象。方法的參數用“類名參數名”來指定,多個參數間用逗號分隔。該行的最后一個字符是“{”,它表示了main程序體的開始,一個方法中包含的所有代碼都將包括在這對花括號中間。另外,main僅是解釋器開始工作的地方,一個復雜的程序可能包含幾十個類,但這些類僅需要一個main方法。 
 語言標準 
 1997年11月17日,國際標準化組織(ISO)同意采納Sun公司的專利技術——Java作為ISO標準。JAVA作為一個技術標準供公眾無償使用。根據ISO的批準,Sun公司將可提交JAVA的標準化平臺規范。 
 發布時間 名稱 
 2000年11月15 ISO/TS 10303-27:2000 
 2006年5月15 ISO/IEC 19777-2:2006 
 2014年7月15 ISO/IEC TR 13066-6:2014 
 2015年8月15 ISO 20210:2015 
 語言規范 
 JCP(Java Community Process)是一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新Java技術規范、參考實現(RI)、技術兼容包(TCK)。 
 JCP維護的規范包括Java ME、Java SE、Java EE、XML、OSS、JAIN等。組織成員可以提交JSR(Java Specification Requests),通過特定程序以后,進入到下一版本的規范里面。 
 JSR是早期提議和最終發布的Java平臺規范的具體描述。通常,一個新的JSR的提出是為了增加或者規范Java平臺的功能。某個具體的JSR由專家組共同來制定,工作由組長協調。例如,CLDC1.0(Connected Limited Device Configuration,JSR30)由Sun公司的Antero Taivalsaari擔任組長,同時專家組的成員還包括Siemens、Motorola、Nokia、Symbian等。Java ME平臺規范是在JSR68中定義的,規范組長是Sun公司的Jon Courtney。 
 JSR完成后,相關的規范及JavaAPI會在JCP的官方網站發布。設備制造商可以在自己的產品中實現某個JSR,如MIDP2.0(JSRll8)。但是這些都必須要通過TCK(Technology Compatibility Kit)測試以確保技術兼容性。 
 按照技術類別可以分成以下幾類: 
 1、J2EE平臺規范 
 2、J2SE平臺規范 
 3、J2ME平臺規范 
 4、運營支持系統規范(OSS) 
 5、綜合網絡的Java 應用(JAIN) 
 6、XML 操作規范 
 技術應用 
 1、Android應用 
 許多的 Android應用都是Java程序員開發者開發。雖然 Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA游戲,這就使很多非編程人員都認識了JAVA。 
 2、在金融業應用的服務器程序 
 Java在金融服務業的應用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全[39] 。大型跨國投資銀行用Java來編寫前臺和后臺的電子交易系統,結算和確認系統,數據處理項目以及其他項目。大多數情況下,Java被用在服務器端開發,但多數沒有任何前端,它們通常是從一個服務器(上一級)接收數據,處理后發向另一個處理系統(下一級處理)。 
 3、網站 
 Java 在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。即使是簡單的 servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。 
 4、嵌入式領域 
 Java在嵌入式領域發展空間很大。在這個平臺上,只需130KB就能夠使用Java技術(在智能卡或者傳感器上)。 
 5、大數據技術 
 Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。 
 6、高頻交易的空間 
 Java平臺提高了這個平臺的特性和即使編譯,他同時也能夠像 C++ 一樣傳遞數據。正是由于這個原因,Java成為的程序員編寫交易平臺的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。 
 7、科學應用 
 Java在科學應用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的并發性更好。 
 **學習指南 
 考試** 
 Sun公司的Java認證共有以下四種:Java程序員(SCJP)、Java開發員(SCJP)、Java Web組件的開發(SCWD)和Java2企業級設計師企業級技術(SCJA)。中國開展較為普遍的Java認證考試為前兩種,其中,Java程序員的認證考試以Sun公司指定的JavaSL-275為教材,考試號為310-025。Java開發員的認證考試以Sun指定的JavaSL-285為教材,機考部分的考試號為310-027。 
 Sun Certified Java Programmer(SCJP) 
 Java 程序員認證,測試Java 程序設計的要領和能力,內容側重于Java 的語法及JDK(Java Development Kit)。 
 Sun Certified Java Developer(SCJD) 
 Java 開發員認證,進一步測試用Java 開發應用程序的能力。必須先完成一個程序設計的項目后,再回答與此項目相關的幾個問題。 
 Sun Certified Web Component Developer for Java 2Platform Enterprise Edition(SCWD) 
 Web 組件開發員認證,測試技術人員對Java Servlets 和JSP(Java Server Page)的程序開發技巧。 
 Sun Certified Enterprise Architect for J2EE Technology(SCAJ) 
 Java2 企業級設計師認證是Java 最高級的認證,測試對J2EE 架構及其他系統整合的相關技術經驗及能力。 
 Sun公司定制的Java程序員課程的標準課件的培訓期為5天(30個學時)。培訓期間,講師使用Sun公司指定教材,全面系統地講述課程的內容,并根據各知識點所需要掌握的深度,有層次、有重點、有目的地指導學員的學習。同時,對各種題型的分析和講解更能幫助學員直觀、準確地了解java認證考試。 
 教材 
 《Java從入門到精通(第3版)》:從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發需要掌握的知識 。 
 《Java編程語言(第3版)》:該書向熟悉基本編程概念的人講述Java編程語言。該書解釋了Java語言,但不是晦澀的正式介紹,也沒有覆蓋Java語言的所有方面 。 
 《瘋狂Java講義》:該書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特征、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數據庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網絡通信編程和Java反射機制] 。 
 《Java編程思想(第4版)》:以JDK5.0為基礎,在第3版的基礎上,添加了新的語言特性,并且對第3版的結構進行了調整,使得所有章節的安排更加遵照循序漸進的特點,同時每一章的內容在分量上也都更加均衡,這使讀者能夠更加容易地閱讀本書并充分了解每章所講述的內容 。 
 《Java經典實例(第2版)》:本書囊括了許多有用的信息。然而,由于所涉及的主題廣泛,不可能對所有主題都進行詳盡地闡述。因此,本書還提供了相關的web站點與參考書籍。這也是為了本書的目標讀者:想學習更多Java的人 。 
 《Java語言程序設計》:該書是清華大學出版社《普通高校本科計算機專業特色教材精選》叢書之一,也是普通高等教育“十一五” 國家級規劃教材。該教材以培養應用型計算機人才為目標,立足課程改革和教材創新,在總結作者多年來從事Java語言教學工作經驗的基礎上形成了教材的核心內容。本教材可為普通高等院校計算機專業學生學習使用,也適用于自學。
總結
 
                            
                        - 上一篇: 高人写的浙大简史(转)
- 下一篇: SQL利用Case When Then多
