當前位置:首頁 » 編程語言 » java程序的開發過程

java程序的開發過程

發布時間: 2023-09-11 13:47:07

Ⅰ 零基礎學習java編程需要知道的十二個步驟!


一、學習前的准備工作

java語言一般用於大型的伺服器程序開發,所有有必要了解如下內容:Unix開發環境Unix系統原理、Unix開發環境、Unix常用命令。熟練掌握Unix常用命令;熟練構建下的Java開發環境。

二、Java語言基礎的學習階段學習

任何一門語言都要打好基礎,曾經學過高級程序語言(C,C++等)來說,java語言基礎有自己的特點,但是基本規律都是相通的,如:演算法基礎、常用數據結構、企業編程規范。掌握常見的數據結構和實用演算法;培養良好的企業級編程習慣。

三、面向對象語言的共性

Java面向對象面向對象特性:封裝、繼承、多態等。掌握面向對象的基本原則以及在編程實踐中的意義;掌握Java面向對象編程基本實現原理。

四、JDK核心API語言核心包、異常處理、常用工具包、集合框架

熟練掌握JDK核心API編程技術;理解正滑悔API設計原則;具備熟練的閱讀API文檔的能力;JavaSE核心異常處理、多線程基礎、IO系統、網路編程、Swing組件、JVM性能調優(JVM內存結構剖析、GC分析及調優、JVM內存參數優化)、Java泛型、JDK新特性。熟練掌握JavaSE核心內容,特別是IO和多線程;初步具備面向對象設計和編程的能力;掌握基本的JVM優化策略。XMLXML語法、XML解析(SAX、DOM)、Dom4j組件、Digester組件。熟練掌握XML語法規則;理解DOM模型;熟悉Java對XML的各種解析方式。

五舉正、SQL語言SQL語句基礎和提高、SQL語句調優

熟練的掌握SQL語句;掌握一定的資料庫查詢技巧及SQL語句優化技巧。Oracle資料庫開發Oracle體系結構及系統管理、Oracle資料庫高級編程、資料庫設計基礎。掌握Oracle體系結構及核心編程技術。

六、連接資料庫:JDBCJDBC核心API(Connection、Statement、ResultSet)、JDBC優化技術(緩存技術、批處理技術、連接池技術)

理解JDBC作為規范的設計原則;熟練掌握JDBCAPI;具備使用JDBC對資料庫進行高效訪問的能力。

七、軟體工程基礎軟體過程和軟體活動

需求設計、概要設計、詳細設計基本原則和文檔規范;配置管理的基本概念和必要性;CVS基本操作;Ant簡介理解軟體過程的普遍概念和基本的軟體活動;理解迭代的意義;掌握Ant、CVS等常用配置管理及部署工具。

八、OOAD及設計模式面向對象基本設計原則、工廠模式、策略模式、適配器模式、代理模式等、門面模式

理解面向對象設計的一般原則;理解重用的意義;掌握常見的設計模式。

九、讓悶HTML/CSSHTML基本文檔結構、掌握CSS基礎語法、關於HTML文檔塊、鏈接、列表、表格、表單等

掌握

十、Ajax基礎、XHR對象、Ajax設計模式、JSON技術

掌握Ajax的基本通信原理;掌握基於XML和JSON的Ajax數據規則。

十一、JavaScript框架JQuery、JQuery插件、DWR

掌握JQuery核心API;了解JQuery基本設計原則;了解多種JQuery插件;掌握DWR的基本原理及應用技巧。

十二、ssh三大框架的學習

這是企業實際應用的框架模型:

1,Struts2.1.6Struts2核心控制流程、Ognl、Action、Interceptor、,Result、FreeMarker、Struts2標記庫、Struts2擴展、Struts2應用技巧(輸入驗證、消息國際化、文件上傳和下載、防止重復提交等)。熟練掌握Struts2核心要件,特別是Interceptor和Result;掌握基於模板技術的Struts2UI組件;掌握基於Ognl的數據共享方式、掌握Struts2各種定製及擴展方式;熟練掌握基於Struts2的Web開發技巧。

2,Hibernate3.2.1ORM概念、Hibernate核心API、Hibernate實體映射技術、Hibernate關系映射技巧、HQL查詢、OSCache及Hibernate緩存技術。重點掌握Hibernate多種關聯映射技巧及其實用背景,做到在合適的時候使用合適的關聯方式;掌握多種Hibernate查詢技巧及優化技術。

3,Spring2.5SpringIoc基礎、Ioc注入技巧、對象高級裝配(自動裝配、模板裝配、組件掃描特性、FactoryBean、對象生命周期)、SpringAOP原理、AspectJ、SpringJDBC支持、Spring事務及安全管理;Spring整合Hibernate、Spring整合Struts、SpringMVC簡介。深入理解Ioc和AOP的基本原理和實現方式;熟練掌握SpringIoc及AOP實現方式;熟練掌握Spring事務管理;熟練掌握Spring與其他組件的整合技術。




Ⅱ 誰能簡單闡述下java編譯執行的過程

Java虛擬機(JVM)是可運行Java代碼的假想計算機。

只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。

本文首先簡要介紹從Java文件的編譯到最終執行的過程,隨後對JVM規格描述作一說明。

一.Java源文件的編譯、下載、解釋和執行

Java應用程序的開發周期包括編譯、下載、解釋和執行幾個部分。

Java編譯程序將Java源程序翻譯為JVM可執行代碼?位元組碼。

這一編譯過程同C/C++的編譯有些不同。

當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬體平台運行而產生的。

因此,在編譯過程中,編譯程序通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序運行。

Java編譯器卻不將對變數和方法的引用編譯為數值引用,也不確定程序執行過程中的內存布局,而是將這些符號引用信息保留在位元組碼中,由解釋器在運行過程中創立內存布局,然後再通過查表來確定一個方法所在的地址。

這樣就有效的保證了Java的可移植性和安全性。

運行JVM位元組碼的工作是由解釋器來完成的。

解釋執行過程分三部進行:代碼的裝入、代碼的校驗和代碼的執行。

裝入代碼的工作由"類裝載器"(classloader)完成。

類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調用的類。

當類裝載器裝入一個類時,該類被放在自己的名字空間中。

除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其他類。

在本台計算機上的所有類都在同一地址空間內,而所有從外部引進的類,都有一個自己獨立的名字空間。

這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們與從外部引進的類不會相互影響。

當裝入了運行程序需要的所有類後,解釋器便可確定整個可執行程序的內存布局。

解釋器為符號引用同特定的地址空間建立對應關系及查詢表。

通過在這一階段確定代碼的內存布局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼對地址的非法訪問。

隨後,被裝入的代碼由位元組碼校驗器進行檢查。

校驗器可發現操作數棧溢出,非法數據類型轉化等多種錯誤。

通過校驗後,代碼便開始執行了。

Java位元組碼的執行有兩種方式:

1.即時編譯方式:解釋器先將位元組碼編譯成機器碼,然後再執行該機器碼。

2.解釋執行方式:解釋器通過每次解釋並執行一小段代碼來完成Java位元組碼程序的所有操作。

通常採用的是第二種方法。

由於JVM規格描述具有足夠的靈活性,這使得將位元組碼翻譯為機器代碼的工作

具有較高的效率。

對於那些對運行速度要求較高的應用程序,解釋器可將Java位元組碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。

二.JVM規格描述

JVM的設計目標是提供一個基於抽象規格描述的計算機模型,為解釋程序開發人員提很好的靈活性,同時也確保Java代碼可在符合該規范的任何系統上運行。

JVM對其實現的某些方面給出了具體的定義,特別是對Java可執行代碼,即位元組碼(Bytecode)的格式給出了明確的規格。

這一規格包括操作碼和操作數的語法和數值、標識符的數值表示方式、以及Java類文件中的Java對象、常量緩沖池在JVM的存儲映象。

這些定義為JVM解釋器開發人員提供了所需前散的信息和開發環境。

Java的設計者希望給開發人員以隨心所欲使用Java的自由。

JVM定義了控制Java代碼解釋執行纖悔碼和具體實現的五種規格,它們是:

JVM指令系統

JVM寄存器

JVM棧結構

JVM碎片回收堆

JVM存儲區

2.1JVM指令系統

JVM指令系統同其他計算機的指令系統極其相似。

Java指令也是由操作碼和操作數兩部分組成。

操作碼為8位二進制數,操作數進緊隨在操作碼的後面,其長度根據需要而不同。

操作毀哪碼用於指定一條指令操作的性質(在這里我們採用匯編符號的形式進行說明),如iload表示從存儲器中裝入一個整數,anewarray表示為一個新數組分配空間,iand表示兩個整數的"與",ret用於流程式控制制,表示從對某一方法的調用中返回。

當長度大於8位時,操作數被分為兩個以上位元組存放。

JVM採用了"bigendian"的編碼方式來處理這種情況,即高位bits存放在低位元組中。

這同Motorola及其他的RISCCPU採用的編碼方式是一致的,而與Intel採用的"littleendian"的編碼方式即低位bits存放在低位位元組的方法不同。

Java指令系統是以Java語言的實現為目的設計的,其中包含了用於調用方法和監視多先程系統的指令。

Java的8位操作碼的長度使得JVM最多有256種指令,目前已使用了160多種操作碼。

2.2JVM指令系統

所有的CPU均包含用於保存系統狀態和處理器所需信息的寄存器組。

如果虛擬機定義較多的寄存器,便可以從中得到更多的信息而不必對棧或內存進行訪問,這有利於提高運行速度。

然而,如果虛擬機中的寄存器比實際CPU的寄存器多,在實現虛擬機時就會佔用處理器大量的時間來用常規存儲器模擬寄存器,這反而會降低虛擬機的效率。

針對這種情況,JVM只設置了4個最為常用的寄存器。

它們是:

pc程序計數器

optop操作數棧頂指針

frame當前執行環境指針

vars指向當前執行環境中第一個局部變數的指針

所有寄存器均為32位。

pc用於記錄程序的執行。

optop,frame和vars用於記錄指向Java棧區的指針。

2.3JVM棧結構

作為基於棧結構的計算機,Java棧是JVM存儲信息的主要方法。

當JVM得到一個Java位元組碼應用程序後,便為該代碼中一個類的每一個方法創建一個棧框架,以保存該方法的狀態信息。

每個棧框架包括以下三類信息:

局部變數

執行環境

操作數棧

局部變數用於存儲一個類的方法中所用到的局部變數。

vars寄存器指向該變數表中的第一個局部變數。

執行環境用於保存解釋器對Java位元組碼進行解釋過程中所需的信息。

它們是:上次調用的方法、局部變數指針和操作數棧的棧頂和棧底指針。

執行環境是一個執行一個方法的控制中心。

例如:如果解釋器要執行iadd(整數加法),首先要從frame寄存器中找到當前執行環境,而後便從執行環境中找到操作數棧,從棧頂彈出兩個整數進行加法運算,最後將結果壓入棧頂。

操作數棧用於存儲運算所需操作數及運算的結果。

2.4JVM碎片回收堆

Java類的實例所需的存儲空間是在堆上分配的。

解釋器具體承擔為類實例分配空間的工作。

解釋器在為一個實例分配完存儲空間後,便開始記錄對該實例所佔用的內存區域的使用。

一旦對象使用完畢,便將其回收到堆中。

在Java語言中,除了new語句外沒有其他方法為一對象申請和釋放內存。

對內存進行釋放和回收的工作是由Java運行系統承擔的。

這允許Java運行系統的設計者自己決定碎片回收的方法。

在SUN公司開發的Java解釋器和HotJava環境中,碎片回收用後台線程的方式來執行。

這不但為運行系統提供了良好的性能,而且使程序設計人員擺脫了自己控制內存使用的風險。

2.5JVM存儲區

JVM有兩類存儲區:常量緩沖池和方法區。

常量緩沖池用於存儲類名稱、方法和欄位名稱以及串常量。

方法區則用於存儲Java方法的位元組碼。

對於這兩種存儲區域具體實現方式在JVM規格中沒有明確規定。

這使得Java應用程序的存儲布局必須在運行過程中確定,依賴於具體平台的實現方式。

JVM是為Java位元組碼定義的一種獨立於具體平台的規格描述,是Java平 *** 立性的基礎。

目前的JVM還存在一些限制和不足,有待於進一步的完善,但無論如何,JVM的思想是成功的。

對比分析:如果把Java原程序想像成我們的C++原程序,Java原程序編譯後生成的位元組碼就相當於C++原程序編譯後的80x86的機器碼(二進製程序文件),JVM虛擬機相當於80x86計算機系統,Java解釋器相當於80x86CPU。

在80x86CPU上運行的是機器碼,在Java解釋器上運行的是Java位元組碼。

Java解釋器相當於運行Java位元組碼的「CPU」,但該「CPU」不是通過硬體實現的,而是用軟體實現的。

Java解釋器實際上就是特定的平台下的一個應用程序。

只要實現了特定平台下的解釋器程序,Java位元組碼就能通過解釋器程序在該平台下運行,這是Java跨平台的根本。

當前,並不是在所有的平台下都有相應Java解釋器程序,這也是Java並不能在所有的平台下都能運行的原因,它只能在已實現了Java解釋器程序的平台下運行。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:234
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726