❶ spring batch為什麼能處理大數據
Spring Batch是一個輕量級的,完全面向Spring的批處理框架,可以應用於企業級大量的數據處理系統。Spring Batch以POJO和大家熟知的Spring框架為基礎,使開發者更容易的訪問和利用企業級服務。SpringBatch可以提供大量的,可重復的數據處理功能,包括日誌記錄/跟蹤,事務管理,作業處理統計工作重新啟動、跳過,和資源管理等重要功能。
業務方案:
1、批處理定期提交。
2、並行批處理:並行處理工作。
3、企業消息驅動處理
4、大規模的並行處理
5、手動或是有計劃的重啟
6、局部處理:跳過記錄(如:回滾)
技術目標:
1、利用Spring編程模型:使程序員專注於業務處理,讓Spring框架管理流程。
2、明確分離批處理的執行環境和應用。
3、提供核心的,共通的介面。
4、提供開箱即用(out of the box)的簡單的默認的核心執行介面。
5、提供Spring框架中配置、自定義、和擴展服務。
6、所有存在的核心服務可以很容的被替換和擴展,不影響基礎層。
7、提供一個簡單的部署模式,利用Maven構建獨立的Jar文件。
批處理的整個流程可以明顯的分為3個階段:
1、讀數據
2、業務處理
3、歸檔結果數據
SpringBatch為我們提供了什麼呢?
1、統一的讀寫介面
2、豐富的任務處理方式、
3、靈活的事務管理及並發處理
4、日誌、監控、任務重啟與跳過等特性
注意,Spring Batch未提供關於批處理任務調度的功能,因此如何周期性的調用批處理任務需要自己想辦法解決,就java來說,Quartz是一個不錯的解決方案,或者寫腳本處理之。
❷ Java培訓的主要內容是什麼
第一階段:JavaSE:Java基礎語法;面向對象編程思想;Java常用API
第二階段:資料庫(回MySQL/Oracle)與JDBC技術答:MySQL/Oracle;JDBC
第三階段:JavaWeb開發技術:JavaWeb前端;JavaWeb基礎;JavaWeb高級
第四階段:大型項目實戰-CMS系統:JavaScript增強;Struts2;Spring基礎和IoC(XML配置)
第五階段:大型項目實戰-企業ERP/進銷存項目:JPA/Hibernate;項目管理及用例分析;AJAX/jsON/jQuery
第六階段:大型項目實戰-CRM/客戶關系管理系統:JavaScript高級/jQueryEasyUI;SpringMVC;Mybatis
第七階段:大型項目實戰-B2C/商城項目:微信開發;HTML5/CSS3/BootStrap;Linux與阿里雲
❸ 北大青鳥java培訓:springbatch批處理框架的簡介
批處理任務是大多數IT項目的一個重要組成部分,批處理在業務系統中負責處理海量的數據,無須人工干預就能夠自動高效的進行復雜的數據分析和處理。
批處理會定期讀入批量數據,經過相應的業務處理進行歸檔的業務操作,批處理的特徵是自動執行,處理的數據量大,定時執行。
將整個批處理的流程按邏輯劃分可以分為讀數據,處理數據和寫數據。
以下是整理的springbatch框架的簡介知識,希望能幫助到大家。
springbatch對批處理本身的特性進行了抽象,將批處理作業抽象為job和jobstep,將批處理的處理過程分解為數據讀,數據處理和數據寫。
將異常處理機制分為跳過,重啟和重試。
將作業的分區分為多線程,並行遠程和分區。
springbatch不是一個調度框架,但需要調度框架來配合完成批處理任務,它只關注批處理相關的任務問題,但沒有提供相應的調度功能,如果需要使用調度功能,需要使用調度框架,這里介紹一個比較常用的調度框架quartz,可以配合springbatch完成批處理的任務調度。
springbatch的架構分為三層:基礎架構層,核心層和應用層。
應用層包含所有的批處理作業,核心層主要提供JobLauncher、Job和step,基礎架構層主要提供通用的讀(ItemReader)、寫(ItemWriter)和服務處理(如:RetryTemplate重試模板;RepeatTemplate:重復模板),Springbatch的三層架構體系使得Springbatch框架可以在不同的層級進行擴展,避免不同層級之間的相互影響。
job的介紹批處理的作業是由一組step組成,同時job本身也是配置文件的頂級元素。
每個作業都有自己的名字,可以定義step的執行順序,以及定義作業是否可以重啟。
job執行的時候會生成一個jobinstance(作業實例)和一個jobexecution(作業執行器)。
jobinstance包含執行job期間產生的數據以及job執行的狀態信息;1個job可以對應多個jobinstance,1個jobinstance可以對應多個jobexecution。
job的配置的主要屬性有id(作業的唯一標識)、job-repository(定義作業倉庫)、incrementer(作業參數遞增器)、restartable(作業是否重啟)、parent(指定該作業的父作業)、abstract(定義作業是否抽象)。
step的介紹step表示作業中一個完整的步驟,一個job可以由一個或者多個step組成,step主要負責批處理運行過程中的主要業務邏輯的實現。
安徽電腦培訓http://www.kmbdqn.cn/認為每次step執行的時候會生成一個或者多個jobexecution,每次任務執行失敗的時候,等到下次重新執行該任務的時候就會為該任務的step重新生成一個stepexecution。
❹ JAT是什麼東西
①JAT是一種靈活的Java基礎框架,可以很容易的擴展它來改善工程的啟動時間。JAT允許建立Web應用程序(如J2EE)和單獨的應用程序(如服務、批處理程序等)。JAT支持所有Java程序的主要基本功能,比如:▲ 強大的事務目標抽象;▲ 整合工具(提供對DBMS、LDAP的支持,對所有軟體產品都開放);▲ 認證和用戶特權管理;▲ 利用特權管理和頁面流控制實現MVC模式;▲ HTML結構設計(header、footer、menu等)管理;▲ HTML動態內容和工具(form、report,paging);▲ 日誌特性;▲ 在線幫助;▲ 管理和參數配置圖形界面。②Jat賈特人(印度西北部)。③jat亦被西方作為名字使用,如John,Joy等。4 用五筆可以打出「曉」字,因此被作為人的英文名字來使用,比如:白東曉 英文名 Jat.一些手機游戲的格式也採用jat格式,例如從移動mm下載的一部分游戲。
❺ JAVA 高手請進
這個是我原來的筆記整理,送你了!
貌似有點長,刪掉一些無關緊要的
第一課
HelloJava
1、Java開發工具JDK的安裝
2、 JDK的命令工具
JDK的最重要命令行工具:
java: 啟動JVM執行class
javac: Java編譯器
jar: Java打包工具
javadoc: Java文檔生成器
這些命令行必須要非常非常熟悉,對於每個參數都要很精通才行。對於這些命令的學習,JDK Documentation上有詳細的文檔。
二、 JDK Documentation
Documentation在JDK的下載頁面也有下載連接,建議同時下載Documentation。Documentation是最最重要的編程手冊,涵蓋了整個Java所有方面的內容的描述。可以這樣說,學習Java編程,大部分時間都是花在看這個Documentation上面的。我是隨身攜帶的,寫Java代碼的時候,隨時查看,須臾不離手。
四、 Java應用的運行環境
Java Learning Path(三)過程篇
學習Java的第一步是安裝好JDK,寫一個Hello World,? 其實JDK的學習沒有那幺簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何載入Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。
第二步是學習Java的語法。Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什幺新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什幺時候用,為什幺要用,怎幺用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。
第三步是學習Java的面向對象的編程語言的特性的地方。比如繼承,構造器,抽象類,介面,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復的揣摩,修改,嘗試,把那幾章內容反復的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那幺在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。
第四步就是開始熟悉Java的類庫。Java的基礎類庫其實就是JDK安裝目錄下面jrelibrt.jar這個包。學習基礎類庫就是學習rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,了解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。
對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什幺,最核心的幾個類分別是完成什幺功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反復強調,我給你們講這些包的不是要告訴你們類的方法是怎幺調用的,也不要求你們記住類的方法調用,而是要你們了解,Java給我們提供了哪些類,每個類是用在什幺場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。
第五步,通過上面的學習,如果學的比較扎實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其它一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其它會有用處的包是這些:
java.text.*;
java.net.*;
javax.naming.*;
這些包裡面真正用的比較多的類其實很少,只有幾個,所以不需要花很多時間。
第六步,Java Web 編程,Web編程的核心是HTTP協議,HTTP協議和Java無關,如果不熟悉HTTP協議的話,雖然也可以學好Servlet/JSP編程,但是達不到舉一反三,一通百通的境界。所以HTTP協議的學習是必備的。如果熟悉了HTTP協議的話,又有了Java編程的良好的基礎,學習Servlet/JSP簡直易如反掌,我學習Servlet/JSP就用了不到一周的時間,然後就開始用JSP來做項目了。
在Servlet/JSP的學習中,重頭仍然是Servlet Documentation。Servlet API最常用的類很少,花比較少的時間就可以掌握了。把這些類都看一遍,多寫幾個例子試試。Servlet/JSP編程本質就是在反復調用這些類來通過HTTP協議在Web Server和Brower之間交談。另外對JSP,還需要熟悉幾個常用JSP的標記,具體的寫法記不住的話,臨時查就是了。
此外Java Web編程學習的重點要放在Web Application的設計模式上,如何進行業務邏輯的分析,並且進行合理的設計,按照MVC設計模式的要求,運用Servlet和JSP分別完成不同的邏輯層,掌握如何在Servlet和JSP之間進行流程的控制和數據的共享,以及Web Application應該如何配置和部署。
第七步,J2EE編程
以上的學習過程如果是比較順利的話,進行到這一步,難度又陡然提高。因為上面的知識內容都是只涉及一個方面,而像EJB,JMS,JTA等核心的J2EE規范往往是幾種Java技術的綜合運用的結晶,所以掌握起來難度比較大。
首先一定要學習好JNDI,JNDI是App Server定位伺服器資源(EJB組件,Datasouce,JMS)查找方法,如果對JNDI不熟悉的話,EJB,JMS這些東西幾乎學不下去。JNDI其實就是javax.naming.*這個包,運用起來很簡單。難點在於伺服器資源文件的配置。對於伺服器資源文件的配置,就需要看看專門的文檔規范了,比如web.xml的寫法,ejb-jar.xml的寫法等等。針對每種不同的App Server,還有自己的服務資源配置文件,也是需要熟悉的。
然後可以學習JTA,主要是要理解JTA對於事務的控制的方法,以及該在什幺場合使用JTA。這里可以簡單的舉個例子,我們知道一般情況可以對於一個資料庫連接進行事務控制(conn.setAutoCommit(false),....,conn.commit()),做為一個原子操作,但是假設我的業務需求是要把對兩個不同資料庫的操作做為一個原子操作,你能做的到嗎?這時候只能用JTA了。假設操作過程是先往A資料庫插一條記錄,然後刪除B資料庫另一個記錄,我們自己寫代碼是控制不了把整個操作做為一個原子操作的。用JTA的話,由App Server來完成控制。
在學習EJB之前要學習對象序列化和RMI,RMI是EJB的基礎。接著學習JMS和EJB,對於EJB來說,最關鍵是要理解EJB是如何通過RMI來實現對遠端對象的調用的,以及在什幺情況下要用到EJB。
在學習完EJB,JMS這些東西之後,你可能會意識到要急不可待學習兩個領域的知識,一個是UML,另一個是Design Pattern。Java企業軟體的設計非常重視框架(Framework)的設計,一個好的軟體框架是軟體開發成功的必要條件。在這個時候,應該開始把學習的重點放在設計模式和框架的學習上,通過學習和實際的編程經驗來掌握EJB的設計模式和J2EE的核心模式。
J2EE規范裡面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外還有很多很多的企業技術,這里不一一進行介紹了。
另外還有一個最新領域Web Services。Web Services也完全沒有任何新東西,它像是一種粘合劑,可以把不同的服務統一起來提供一個統一的調用介面,作為使用者來說,我只要獲得服務提供者給我的WSDL(對服務的描述),就夠了,我完全不知道伺服器提供者提供的服務究竟是EJB組件,還是.Net組件,還是什幺CORBA組件,還是其它的什幺實現,我也不需要知道。Web Services最偉大的地方就在於通過統一的服務提供方式和調用方式,實現了整個Internet服務的共享,是一個非常令人激動的技術領域。Web Services好象目前還沒有什幺很好的書籍,但是可以通過在網路上面查資料的方式來學習。
所以我覺得其實不是特別需要常式的,自己寫的破壞常式就是最好的例子,如果你實在對自己寫的代碼不放心的話,我強烈推薦你看看JDK基礎類庫的Java源代碼。在JDK安裝目錄下面會有一個src.zip,解開來就可以完整的看到整個JDK基礎類庫,也就是rt.jar的Java源代碼,你可以參考一下Sun是怎幺寫Java程序的,規范是什幺樣子的。我自己在學習Java的類庫的時候,當有些地方理解的不是很清楚的時候,或者想更加清晰的理解運作的細節的時候,往往會打開相應的類的源代碼,通過看源代碼,所有的問題都會一掃而空。
2、Java環境變數配置
1. 預備知識1.1安裝JDK到http://java.sun.com 根據不同的操作系統,下載相應的J2SE JDK 版本 (寫這篇文章時最新的JDK 為1.5 update 7)。假定我們把JDK安裝到D:\JDK\1507 ,不安裝public JRE.
1.2 設置path在[我的電腦]上右擊,選擇[屬性].再選擇[高級]-[環境變數],在[系統變數]中添加一個新的變數JAVA_HOME=D:\JDK\1507,然後再編輯path變數,在原來的path前面添加[ %JAVA_HOME%\BIN; ](方框中的文字)。這樣就完成了JAVA的基本設置。(windows 98 下如何在autoexec.bat 中設置,請自己找資料)
1.3 演示程序
為了幫助理解,我寫了一個JavaBootTest.java 的小程序來顯示。
public class JavaBootTest {
public static void main(String[] args) {
System.out.println(" The Classpath are: ");
System.out.println(System.getProperty("java.class.path"));
//other program lines
}
}
用下面的兩條命令分別編譯和運行。
javac JavaBootTest.java
java JavaBootTest
2. JAVA程序運行時如何查找類文件======================================================================
根據JDK 文檔說明, JAVA 程序以以下3種順序查找運行的類文件。
1.Bootstrap classes (*)
2.Extension classes
3.Users classes
如何設置CLASSPATH,是初學者常提出的問題。網上有很多文章提到了許多如何設置的方法,但是都沒有講為什麼要這樣設置(令人感到悲哀的是:絕大部分的人的觀點是不正確的)。
為了幫助大家更好的學習JAVA的基本知識,同時也是鍛煉自己的Type水平,於是有了這篇文章的誕生。主要參考資料來自來自官方JDK文檔,希望對大家有用(所說的觀點針對1.4.2 and 5.0版本)。
------------------------------------------------------------------------------------------------------------------------------
1. 預備知識1.1安裝JDK到http://java.sun.com 根據不同的操作系統,下載相應的J2SE JDK 版本 (寫這篇文章時最新的JDK 為1.5 update 7)。假定我們把JDK安裝到D:\JDK\1507 ,不安裝public JRE.
1.2 設置path在[我的電腦]上右擊,選擇[屬性].再選擇[高級]-[環境變數],在[系統變數]中添加一個新的變數JAVA_HOME=D:\JDK\1507,然後再編輯path變數,在原來的path前面添加[ %JAVA_HOME%\BIN; ](方框中的文字)。這樣就完成了JAVA的基本設置。(windows 98 下如何在autoexec.bat 中設置,請自己找資料)
1.3 演示程序
為了幫助理解,我寫了一個JavaBootTest.java 的小程序來顯示。
public class JavaBootTest { public static void main(String[] args) { System.out.println(" The Classpath are: ");System.out.println(System.getProperty("java.class.path"));//other program lines }
用下面的兩條命令分別編譯和運行。
javac JavaBootTest.java java JavaBootTest
2. JAVA程序運行時如何查找類文件======================================================================根據JDK 文檔說明, JAVA 程序以以下3種順序查找運行的類文件。
1.Bootstrap classes (*)
2.Extension classes 3.Users classes
2.1 Bootstrap classes就是JAVA在啟動時載入的類文件,這些類文件主要是rt.jar 和 jre/lib 目錄下的一些類文件。Bootstrap過程中的class path是保存在 sun.boot.class.path 系統屬性中的。可以通過System.out.println(System.getProperty("sun.boot.class.path")); 來顯示。同時Bootstrap classes 可以通過 -Xbootclasspath 命令行參數來指定。
下面列出了系統中默認的Bootstrap classes:
<< >>
* Bootstrap bootstrap是皮鞋後部的一條小帶子或一個小環,它可以使你方便地把鞋子穿起來。在計算機中,是指使用一個很小的程序將某個特定的程序(通常是指操作系統)載入計算機中。
2.2 Extension classes (擴展類文件)
Extension classes 主要是指的jre/lib/ext 目錄下的類文件,這些文件必須在jar 文件或 zip 文件中。如果不同名字的jar 文件包含有相同的類文件,那麼哪一個類文件被載入是不確定的。
2.3 User classes (用戶自定義的類文件)
現在到了最重要的地方了,我們常說的設置CLASSPATH 其實就是指定 User classes.JAVA 按照以下四種順序查找User classes. 2.3.1. 默認的User classes . (dot) 就是指當前目錄。
2.3.2. 系統變數 CLASSPATH 所指定的類庫,該變數覆蓋(override)默認的User classes. 2.3.3. 用命令行參數 -cp 或 -classpath指定的類庫。這個時候覆蓋默認的User classes 和CLASSPATH變數。
2.3.4. 通過-jar 參數指定的jar文件。此時覆蓋上面的三種情況,如果使用這種情況,所有的類文件必須來自指定的jar 文件。
了解了java如何查找User classes,我們接下來將要學習如何設置 CLASSPATH變數。
3 如何正確設置CLASSPATH如果只是一般運用java,只是用到java的基本庫文件,練練手而已,則不需要設置CLASSPATH .但是在一般開發情況下,這是很少遇到的。所以我們要自己設置CLASSPATH .我們一般的方法就是按照2.3.2 來設置CLASSPATH 系統變數,像開始設置path一樣,我們可以添加一個CLASSPATH的系統變數。網上有些文章所提到的添加rt.jar 和 tools.jar 等等是不需要的,因為這些類庫是屬於Bootstrap classes的。我們只要定義User classes ,如果我們要編譯servlet 那麼只要servlet-api.jar 和 jsp-api.jar 就可以實現基本的需要了。
另外要注意的是2.3.2 override 2.3.1.我們設置CLASSPATH 時要將 .(dot)[表示當前目錄]放在CLASSPATH中,然後用 ;(semicolon)分隔開來。由於其他提供的類文件都是放在jar文件中,我們設置時一定要將完整的jar 文件包含在CLASSPATH 中,而不是將其目錄添加到CLASSPATH 中(很重要的一點,我以前就是理解錯誤了)。
這個時候又一個問題出現了,當需要添加的jar 文件過多時,管理java 類庫變得很麻煩。所以我認為在基礎學習時用命令行編譯調試,有利於JAVA的學習,但是到開發時則一定要用到 IDE 工具(現在比較流行的是eclipse 和 netbeans ,還有些人喜歡 jcreator) .在eclipse 中通過 [windows][Preferences][Java][Build Path]來指定。其中有兩部分Classpath Variables & User Libraries.如何設置在這里就不詳細說明了,自己試一下就可以了,比較簡單。在新建項目時,把自己定義的變數添加到Build Path 中就可以了。
3、HelloWorld的編寫
Public Welcome
{
Public Static Void main(String[] args)
{
System.out.println("Hello Java");
}
}
4、Javac Java工具的使用
5、HelloJava中存在的問題:(網路轉載)
* 錯誤1:
'javac' 不是內部或外部命令,也不是可運行的程序或批處理文件。
(javac: Command not found)
產生的原因是沒有設置好環境變數path。Win98下在autoexce.bat中加入
path=%path%;c:jdk1.2in,Win2000下則控制面板->系統->高級->環境變數->系統變
量...看到了?雙擊Path,在後面加上c:jdk1.2in。當然我們假設JDK安裝在了
c:jdk1.2目錄下(有點唐僧了?)...好像還要重啟系統才起作用...(//知道了!//西
紅柿)
好,再試試!javac HelloWorld
* 錯誤2:
HelloWorld is an invalid option or argument.
拜託,給點專業精神,java的源程序是一定要存成.java文件的,而且編譯時要寫全
.java呀。
OK, javac HelloWorld.java (這回總該成了吧?)
* 錯誤3:
HelloWorld.java:1: Public class helloworld must be defined in a file called
"HelloWorld.java".
public class helloworld{
^
這個問題嘛,是因為你的類的名字與文件的名字不一致。(誰說的,明明看到人家都有
這樣寫的 ;( ) OK,准確地說,一個Java源程序中可以定義多個類,但是,具有public
屬性的類只能有一個,而且要與文件名相一致。還有,main方法一定要放在這個public
的類之中,這樣才能java(運行)這個類。另外一點是Java語言裡面是嚴格區分大小寫
的,初學者要注意呀。像上例中 helloworld 與 HelloWorld 就認為是不一樣,因而...
oh... 好,改好了,嘻嘻... javac HelloWorld.java
...(咦,怎麼什麼也沒有呀?)//faint 這就是編譯通過了!看看是不是多了一個
HelloWorld.class ?
(hehe..按書上教的:) java HelloWorld (!! 這個我知道,不是java HelloWorld.class
喲)
* 錯誤4:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
呵呵,這個嘛,就是著名的類路徑(classpath)問題啦。實際上,類路徑是在編譯過程就
涉及的Java中的概念。classpath就是指明去哪裡找用到的類,就這么簡單。由於我們的
HelloWorld沒用到其它的(非java.lang包中的)類,所以編譯時沒遇到這個問題。運行
時呢,就要指明你的類在哪裡了。解決方法嘛,可以用下面的命令運行:
java -classpath . HelloWorld
「.」就代表當前目錄。當然這樣做有點麻煩(是「太麻煩」!),我們可以在環境變數
中設置默認的classpath。方法就照上述設置path那樣。將classpath設為:
classpath=.;c:jdk1.2libdt.jar;c:jdk1.2lib ools.jar 後面的兩個建議也設上
,以後開發用的著。
java -classpath . HelloWorld(再不出來我就不學java了)
* 錯誤5:
Exception in thread "main" java.lang.NoSuchMethodError: main
(//咣當)別,堅持住。看看你的代碼,問題出在main方法的定義上,寫對地方了嗎,
是這樣寫的嗎:
public static void main(String args[]) { //一個字都不要差,先別問為什麼了...
對,包括大小寫!
java -classpath . HelloWorld (聽天由命了!)
Hello World!
(faint!終於...)
歡迎來到Java世界!所以說,無法運行HelloWorld 真的並不是一個「最簡單的問題」。
附:HelloWorld.java
// HelloWorld.java
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!") ;
}
}
❻ 求用java寫的java分析器(java parser)
開始用純jdk,過一般時間用EditPlus等這樣的工具,以後推薦使用Eclipse,因為是開源,也就是免費的。
JDK
Borland 的JBuilder
JBuilder,JDeveloper,VisualAge for Java
jcreater.
常見的十五種Java開發工具的特點
1、JDK (Java Development Kit)Java開發工具集
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,
有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE
以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java
應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
2、Java Workshop
3、NetBeans 與Sun Java Studio 5
NetBeans是開放源碼的Java集成開發環境(IDE),適用於各種客戶機和Web應用。
Sun Java Studio是Sun公司最新發布的商用全功能Java IDE,支持Solaris、Linux和Win
dows平台,適於創建和部署2層Java Web應用和n層J2EE應用的企業開發人員使用。
NetBeans是業界第一款支持創新型Java開發的開放源碼IDE。開發人員可以利用業界
強大的開發工具來構建桌面、Web或移動應用。同時,通過NetBeans和開放的API的模塊
化結構,第三方能夠非常輕松地擴展或集成NetBeans平台。
NetBeans3.5.1主要針對一般Java軟體的開發者,而Java One Studio5則主要針對企
業做網路服務等應用的開發者。Sun不久還將推出Project Rave,其目標是幫助企業的開
發者進行軟體開發。NetBeans 3.5.1版本與其他開發工具相比,最大區別在於不僅能夠
開發各種台式機上的應用,而且可以用來開發網路服務方面的應用,可以開發基於J2ME
的移動設備上的應用等。在NetBeans 3.5.1基礎上,Sun開發出了Java
One Studio5,為用戶提供了一個更加先進的企業編程環境。在新的Java
One Studio5里有一個應用框架,開發者可以利用這些模塊快速開發自己在網路服務方面
的各種應用程序。
4、Borland 的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於服
務器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB
(Enterprise JavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJB Java類,Jbuilder同時還簡化了EJ
B的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布
應用程序所必需的介面定義語言Interface Definition Language)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與Inprise Application Server緊密集
成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發J2EE的電子商務
應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web 應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純J
ava語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持
各種JDK版本,包括J2ME/J2SE/J2EE。
JBuilder環境開發程序方便,它是純的Java 開發環境,適合企業的J2EE開發;缺點
是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較
吃內存,這時運行速度顯得較慢。
5、Oracle 的JDeveloper
Oracle9i JDeveloper(定為9.0版,最新為10g)為構建具有J2EE功能,XML和Web
services的復雜的,多層的Java應用程序提供了一個完全集成的開發環境。它為運用Ora
cle9i資料庫和應用伺服器的開發人員提供特殊的功能和增強性能,除此以外,它也有資
格成為用於多種用途Java開發的一個強大的工具。
Oracle9i JDeveloper的主要特點如下:
① 具有UML(Unified Modeling Language,一體化建模語言)建模功能。可以將業
務對象及e-business應用模型化。
② 配備有高速Java調試器(Debuger)、內置Profiling工具、提高代碼質量的工具
「CodeCoach」等。
③ 支持SOAP(Simple Object Access Protocol)「簡單對象訪問協議」、UDDI(U
niversal Description, Discovery and Integration)「統一描述、發現和集成協議」
、WSDL(Web Services Description Language)「WEB服務描述語言」等Web服務標准。
JDeveloper 不僅僅是很好的 Java 編程工具,而且是 Oracle Web 服務的延伸,支
持 Apache SOAP,以及 9iAS ,可擴充的環境和 XML 和 WSDL 語言緊密相關。Oracle9i
Jdeveloper完全利用Java編寫,能夠與以前的Oracle伺服器軟體以及其他廠商支持J2EE
的應用伺服器產品相兼容,而且在設計時著重針對Oracle9i,能夠無縫化跨平台之間的
應用開發,提供了業界第一個完整的、集成了J2EE和XML的開發環境,允許開發者快速開
發可以通過Web、無線設備及語音界面訪問的Web服務和交易應用,以往只能通過將傳統J
ava編程技巧與最新模塊化方式結合到一個單一集成的開發環境中之後才能完成J2EE應用
開發生命周期管理的事實,從根本上得到改變。缺點就是對於初學者來說,較復雜,也
比較難。
6、IBM的Visual Age for Java
Visual Age for Java是一個非常成熟的開發工具,它的特性以於IT開發者和業余的
Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS
連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean
創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的WebSphere Studio Advanced Edition及其包含的Visual
Age for Java Professional Edition軟體已全面轉向以Java為中心,這樣,Java開發人
員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理
、快速開發 JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站
點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速
移動代碼的選項。這就讓使用Studio的Web頁面設計人員和使用VisualAge的Java程序員
可以相互交換文件、協同工作。
Visual Age for Java支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而
修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與Visual Age緊
密結合的Websphere Studio本身並不提供源代碼和版本管理的支持,它只是包含了一個
內置文件鎖定系統,當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支
持諸如Microsoft Visual SourceSafe這樣的第三方源代碼控制系統。Visual Age for
Java完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代
碼就可以設計出一個典型的應用程序框架。Visual Age for Java作為IBM電子商務解決
方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合, 迅速完成從設
計、開發到部署應用的整個過程。
Visual Age for Java獨特的管理文件方式使其集成外部工具非常困難,你無法讓Vis
ual Age for Java與其他工具一起聯合開發應用。
7、BEA 的 WebLogic Workshop
BEA WebLogic Workshop是一個統一、簡化、可擴展的開發環境,使所有的開發人員
都能在 BEA WebLogic Enterprise Platform之上構建基於標準的企業級應用,從而提高
了開發部門的生產力水平,加快了價值的實現。
WebLogic Workshop除了提供便捷的Web服務之外,它能夠用於創建更多種類的應用
。作為整個BEA WebLogic Platform的開發環境。不管是創建門戶應用、編寫工作流、還
是創建Web應用,Workshop 8.1都可以幫助開發人員更快更好地完成。
WebLogic Workshop的主要特點如下:
① 使 J2EE 開發切實可行,提高開發效率
BEA WebLogic Workshop 使開發人員遠離 J2EE 內在的復雜性,集中精力專注業務
邏輯,無須操心單調乏味的基礎結構代碼。這種創新意味著,已被企業驗證的 J2EE 的
強大功能,最終被大多數不熟悉 Java 和 J2EE 的應用開發人員所掌握,從而使 IT 部
門的工作效率提高一個數量級。
可視化設計器以及直觀的概念,如事件、屬性和控制項等,實現了基於事件的開發。W
orkshop 簡化的程序設計模型,使開發人員不必掌握復雜的 J2EE API 和面向對象的程
序設計原理。所有開發人員,包括 J2EE 專家和具有可視化和過程化語言技能的應用開
發人員在內,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop
的可視化開發環境,創建帶有代碼注釋的標准 Java 文件,用來說明由運行時框架實施
的企業級需求。J2EE 和其他高級開發人員,藉助功能強大的代碼編輯功能,可以訪問
Java 源代碼,從而彌補了可視化設計器的不足。
② 構建企業級應用
通過在可伸縮、安全可靠的企業級架構上實施各種應用,BEA WebLogic
Workshop 大大降低了開發風險。而且,所有應用的創建都使用標準的 J2EE 組件,既保
護了您的技術投資,又保持了最大的靈活性。
BEA WebLogic Workshop 運行框架,是統一整個架構的匯聚層,使單一、簡化的程序設
計模型擴展到所有的 BEA WebLogic Enterprise Platform 應用類型。通過解釋設計時
創建的注釋代碼,運行時框架可以實現必要的 J2EE 組件,並且提取出與 J2EE 應用開
發有關的所有底層細節。
③ 降低 IT 復雜性
BEA WebLogic Workshop 提供各種 Java 控制項,使得與 IT 資源的連接更輕而易舉
。另外,在構建任何 BEA WebLogic Platform 的應用中,Java 控制項不僅可擴展而且完
全相同。這種強大、有效的方法能夠:降低 IT 技術的復雜性,優化信息的可用性,推
動包含"最佳業務方案"的可重用服務的開發,使開發人員能以更低的成本、更短的時間
實現更大的產出。
利用 BEA WebLogic Workshop,任何開發人員都能以最大的生產效率,構建各種
Web 服務、Web 應用、門戶和集成項目。BEA WebLogic Workshop是BEA的產品戰略核心
,它幫助客戶接觸和利用面向服務架構(SOA)的強大功能。BEA Weblogic Workshop
8.1極大簡化了當前實際企業集成環境中企業級應用和服務的構建,並成為全面支持關鍵
企業級應用(如非同步、真正松耦合和粗粒度消息傳送等)的自然選擇。它的缺點就是過於
復雜,對於初學者來說,理解起來較為困難。
8、WebGain 的Visual Cafe for Java
Visual Cafe 是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和M
icrosoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的
Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。
在修改後進行編譯基繼續進行調試時,Visual Cafe會自動將文件存檔,使用Visual
Cafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制
方式比正常的JDK小Visual Cafe為所指定的關系自動生成或更新必要的Java代碼。利用V
isual Cafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而
不必再編寫源代碼。Visual Cafe還提供了一個擴充的源代碼開發工具集。
Visual Cafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視
圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對
源代碼的改變自動更新可視化視圖。
Visual Cafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工
具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要
一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開
始創建自己的應用。Visual Cafe提供了非常全面的用戶指南,它對最開始的安裝到創建
第一個Java應用和Applet都提供了全面的幫助,Visual Cafe將自動生成所指明關系的必
要Java代碼。Visual Cafe可以在Windows 95和Windows NT平台下運行,Symantec公司為
Java開發工作提供一個在Macintosh操作系統下可以運行的RAD工具。Visual Cafe編譯器
速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難
。
9、Macromedia的JRUN
Macromedia公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由Jav
a Servlets和JavaServer Pages編寫的伺服器端Java應用。JRun是第一個完全支持JSP
1.0 規格書的商業化產品,全球有超過80,000名開發人員使用JRun在他們已有的Web服務
器上添加伺服器端Java的功能。其中Web伺服器包括了Microsoft IIS,Netscape
Enterprise Server,Apache等。
JRun是開發實施伺服器端Java的先進引擎。如果我們希望在我們的Web應用中添加服
務器端Java功能,那麼JRun將成為我們的正確選擇。
JRun目前有3個版本,它是第一個支持Java Server Pages(JSP)規格書1.0的商業化
產品。JSP是一種強大的伺服器端技術,它是用於創建復雜Web應用的一整套快速應用開
發系統。JRun可以使我們開始開發並測試Java應用。它最多接受5個並發的連接並且包括
全部Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web
servers和計算機平台。 JRun Pro能夠在生產環境下承受大訪問量的負載,幫助我們實
施應用、服務或Web站點(包括內聯網)。JRun Pro 支持無限量並發式連接運行多個Jav
a虛擬機,包括多個並發的Java虛擬機(JVM)。提供一個遠程管理applet以及一個遠程
可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外
,還可以運行無限量的,並發的JVM。
JRun依靠其內置的JRun Web Server可以單獨運行。使用伺服器端Java,用戶可以開
發出復雜的商業應用系統。最重要的一點是,由於servlets的平台獨立性,以及更加簡
單的開發、更快速的實施、更經濟的維護成本,它是CGI(Common Gateway
Interface)或Perl scripts的極佳的替代產品。缺點就是對於初學者來說,較復雜,也
比較難。
10、JCreator
JCreator 是一個Java程序開發工具,也是一個Java集成開發環境(IDE)。無論你
是要開發Java應用程序或者網頁上的Applet元件都難不倒它。在功能上與Sun公司所公布
的JDK等文字模式開發工具相較之下來得容易,還允許使用者自訂義操作窗口界面及無限
Undo/Redo等功能。
JCreator為用戶提供了相當強大的功能,例如項目管理功能,項目模板功能,可個
性化設置語法高亮屬性、行數、類瀏覽器、標簽文檔、多功能編繹器,向導功能以及完
全可自定義的用戶界面。通過JCreator,我們不用激活主文檔而直接編繹或運行我們的J
AVA程序。
JCreator能自動找到包含主函數的文件或包含Applet的Html文件,然後它會運行適
當的工具。在JCreator中,我們可以通過一個批處理同時編繹多個項目。JCreator的設
計接近Windows界面風格,用戶對它的界面比較熟悉。其最大特點是與我們機器中所裝的
JDK完美結合,是其它任何一款IDE所不能比擬的。它是一種初學者很容易上手的java開
發工具,缺點是只能進行簡單的程序開發,不能進行企業J2EE的開發應用。
11、Eclipse
Eclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美
元的源代碼組建了Eclipse聯盟,並由該聯盟負責這種工具的後續開發。集成開發環境(I
DE)經常將其應用范圍限定在「開發、構建和調試」的周期之中。為了幫助集成開發環境
(IDE)克服目前的局限性,業界廠商合作創建了Eclipse平台。Eclipse允許在同一IDE中
集成來自不同供應商的工具,並實現了工具之間的互操作性,從而顯著改變了項目工作
流程,使開發者可以專注在實際的嵌入式目標上。
Eclipse框架的這種靈活性來源於其擴展點。它們是在XML中定義的已知介面,並充
當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字元串,到一個Jav
a類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse
插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的介面外,插件不知道它
們通過擴展點提供的服務將如何被使用。
利用Eclipse,我們可以將高級設計(也許是採用UML)與低級開發工具(如應用調試器
等)結合在一起。如果這些互相補充的獨立工具採用Eclipse擴展點彼此連接,那麼當我
們用調試器逐一檢查應用時,UML對話框可以突出顯示我們正在關注的器件。事實上,由
於Eclipse並不了解開發語言,所以無論Java語言調試器、C/C++調試器還是匯編調試器
都是有效的,並可以在相同的框架內同時瞄準不同的進程或節點。
Eclipse的最大特點是它能接受由Java開發者自己編寫的開放源代碼插件,這類似於
微軟公司的Visual Studio和Sun微系統公司的NetBeans平台。Eclipse為工具開發商提供
了更好的靈活性,使他們能更好地控制自己的軟體技術。Eclipse聯盟已經宣布將在2004
年中期發布其3.0版軟體。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多
,實際上實用它java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比
較困難。
13、Ant
Another Neat Tool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於
(Unix)C中的make ,但沒有make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟
件時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)
的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)
。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;
然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同
了。與基於shell命令的擴展模式不同,Ant用Java的類來擴展。(用戶)不必編寫shell
命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現
了一個實現了特定Task介面的對象來運行。
Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選task與Ant
的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身
就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除
了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些
。Ant是Apache提供給Java開發人員的構建工具,它可以在Windows OS和Unix OS下運行
,它不僅開放源碼並且還是一個非常好用的工具。Ant是Apache Jakarta中一個很好用的
Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant
是專用於Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現
了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程
序開發。
14、IntelliJ
Intellij IDEA是一款綜合的Java 編程環境,被許多開發人員和行業專家譽為市場
上最好的IDE。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持J2
EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創新的GUI設計器。IDEA把Java開發人
員從一些耗時的常規工作中解放出來,顯著地提高了開發效率。具有運行更快速,生成
更好的代碼;持續的重新設計和日常編碼變得更加簡易,與其它工具的完美集成;很高
的性價比等特點。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及G
UI設計器。
IntelliJ IDEA能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,並且
與Java結合得相當好。不同的工具窗口圍繞在主編程窗口周圍,當滑鼠點到時即可打開
,無用時也可輕松關閉,使用戶得到了最大化的有效屏幕范圍。以技術為導向的IDEA集
成了調試器,支持本地和遠程的調試,即使我們需要修改一些設置上的東西使我們的工
作順利進展。另外,它還提供了通常的監視,分步調試以及手動設置斷點功能,在這種
斷點模式下,我們可以自動地在斷點之外設置現場訪問,甚至可以瀏覽不同的變數的值
。IDE支持多重的JVM設置,幾個編譯程序和Ant建造系統,並且,它使得設置多重的自定
義的類途徑變得簡單。
IntelliJ Idea是一個相對較新的Java IDE。它是Java開發環境中最為有用的一個。
高度優化的IntelleJ Idea使普通任務變得相當容易,Idea支持很多整合功能,更重要的
使它們設計的好容易使用。Idea支持XML中的代碼實現,Idea同時還會校正XML,Idea支
持JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能),同時
支持JSP調試;支持EJB,盡管它不包括對個別應用伺服器的特殊支持。Idea支持Ant建立
工具,不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快
捷鍵。在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。Intel
liJ IDEA 被稱為是最好的JAVA IDE開發平台,這套軟體就是以其聰明的即時分析和方便
的 refactoring 功能深獲大家所喜愛。缺點是較復雜,對初學者來說,理解起來比較困
難。
❼ 一個高級java工程師需要具備什麼能力和技術
宏觀方面
一、 JAVA。
要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為JAVA(高級)
工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您
對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,通過JAVA的API都可以實現了,就不必自己費太多的腦經 了。
二、 設計模式。
其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個「好」字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代
碼往往要藉助一些設計模式。當然長期的代碼經驗積累,只要您用心,會使您形成自己代碼風格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。
但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?
三、 XML。
現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數據轉換、做系統的配置、甚至可保存您的系統業務數據。因此您必須了解
XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔當系統配置
信息的作用,您需要用這些API解析這些配置信息,開發完美的項目。
四、 精通使用一種或兩種框架。
「框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基於框架的開
發使你可以省出很多的開發成本」。這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發一個項目時思路會開闊一些,比如您
會想到把SQL語句與您的JAVA代碼分開,再比如您會考慮把您的業務邏輯配置到XML或者資料庫中,這樣整個項目就很容易擴張了。
五、 熟悉主流資料庫。其實真正比較大的項目都是有人專門做資料庫的,但往往很多項目要求作為(高級)工程師的您也參與資料庫的設計以及SQL的編寫。所以為了
更好的為國家做貢獻,建議您還是多了解一些主流資料庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發器。如果您不是「科班」出
身,您還需要補充一些資料庫原理方面的知識。
六、 精通一種或兩種WEBServer。
因為作為JAVA工程師,特別時
想成為高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它
的資源,這往往可以節省很多時間和精力。
七、 UML。
您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決於您有多大決心想成為高級工程師和項目經理。在比較正規的開發團隊
中,UML是討論項目的交流工具,您要想做一個軟體工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但
卻很重要。
八、 站在高度分析問題:
這不是一個知識點,也不是通過書本就能學得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟體工程師,而
不是一個一般的軟體工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的項目。在最好在項目之初先在
您的腦海里對項目有個大致的分析、設計,然後和他們進行比較,找找差別,想想缺點。
九、 工具。
您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對
ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鍾了,那些JSP頁面讓初級程序員去寫吧
微觀方面
1.Core Java部分
這是最基礎的,對於一個java高級開發/設計人員,你需要對這一部分達到精通的水平,重點內容如下:
a.面向對象編程思想(封裝繼承多態介面)
b.字元串處理
c.java.lang包,java.util包等常用包
d.java異常處理
2.Java高級部分
a.Java I/O流
b.Java多線程技術
c.Java網路編程
d.Java Swing
後兩項可以了解即可,如果項目需要可以深入研究
3.前端基本技能
* HTML + CSS網頁開發
* JavaScript
* Jquery
* 瀏覽器兼容性 CSS hack(了解)
4.熟練使用JSP + Servlet進行開發
5.MVC設計模式,原理,以及相關框架,如Struts
6.SSH框架
7.緩存技術 session & cookie
8.熟練使用一種以上Java開發工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟練使用XML
JDOM w3c.dom SAX
10.Java設計模式
工廠模式,單例模式 ==
11.Java反射機制
反射的各種用法
12.了解或熟悉 C, C++, .NET
13.熟悉JDK的配置,環境變數
14.資料庫oracle必學,其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲過程,觸發器,游標,包,常用函數 ==
15.資料庫原理
事務的原理,鎖機制,表連接,復雜查詢語句(工作經驗),性能調優,鎖表以及解決方案==
16.JDBC,連接池
17.Ajax,反向Ajax
18.HTTP協議,request 和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用過Linux/Unix系統,可以編寫shell腳本,可以在Linux上部署項目
20.了解windows系統批處理腳本bat
21.了解HTML5,最好學習過
22.熟悉一種JS框架,如Prototype
23.J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一門腳本語言,如python ,ruby
26.了解php/ asp
27.了解ftp協議及原理
28.熟練使用Junit測試,熟悉Mockito等測試工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序演算法,如冒泡排序,快速排序等,最好自己研究過一些的演算法。
31.了解Flex(不學也沒關系)
32.了解敏捷開發模式
33.工作流workflow至少用過一種,如OSworkflow,了解原理
34.使用過VPN了解其原理
35.熟悉jstl表達式和el表達式
36.熟悉webservice,WSDL,SOAP
37.圖片處理,如圖片上傳,預覽,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技術,JSON+AJAX
40.分頁技術,最好自己實現過不僅僅是用過要知道原理
41.Java Mail
42.Java讀寫txt,excel,JXL技術
43.JVM原理,JVM內存管理,GC,Java堆棧池
44.熟練使用下面的工具:
office辦公軟體,word,excel,ppt等
plsql,sqldevelop 資料庫開發工具
outlook大公司都用
ue編輯器
瀏覽器控制台,調試
SHH/PUTTY 遠程
45.UML建模工具Rational Rose等
46. 使用log4j
47.使用過開放Api如網路,騰訊街景,新浪微博等
48.頁面靜態化技術(偽靜態頁面)
49.報表技術,使用過報表製作工具,如水晶易表。
50.定時任務,如Spring batch ,學會自定義batch任務(不適用第三方工具)
51.了解uuid
52.b/s 和 c/s架構
53.正則表達式
54.了解jndi jms
55.ERP
56.UNICODE編碼,亂碼解決
57.開源網路編輯器,如ckEditor
58.二進制原理
59.使用過,了解過開源論壇框架,如discuzz
60.GWT,Closure框架
61.了解大數據,雲計算
62.搜索引擎搜索技術
63.軟體工程,項目管理
❽ 學習Java的最佳路線
說到學習Java,我們今天就來說說Java開發需要學習的內容,說說java學習路線,說說Java學習的課程內容。
Java學習大致分為四大階段,具體內容如下:
第一階段——Java基礎
Java的學習內容從計算機基本概念,DOS命令開始,為你入門編程語言掃盲,什麼是程序,如何配置Java開發環境,Java編程的過程是怎樣的,Java有什麼物特點,程序是如何運行的,這些你都可以在這里得到答案。
Java編程的基礎語法,共分為10個知識點,我們將學習變數,基本數據類型,進制,轉義字元,運算符,分支語句和循環語句等,以達到訓練基礎語法和邏輯能力的目的。還有對數組、面向對象和異常處理等。
第二階段——JavaWeb
Web前端開發基礎和框架、Servlet和JSP在Web後端的應用、Web後端開發相關專題、MVC和分層架構以及項目開發流程及CASE工具的使用等。
第三階段——Java框架
框架是程序中另一種存儲數據的方式,比直接使用數組來存儲更加的靈活,在項目中應用十分廣泛。同時,框架整合開發(SSH/SSS)、RESTful架構和移動端介面設計、第三方介面和在線支付功能、網站安全和Spring Security應用實戰、復雜用戶交互處理和Spring Web Flow的應用、MyBatis的應用和SSM整合,我們將深入研究其中涉及到的數據結構和演算法,對學員的技術深度有了一個質的提升。
第四階段——Java+雲數據
億級並發架構演進、Linux基礎、搭建tomcat環境以實戰演練,企業真實項目供學員應用學習,進行知識體系的「二次學習」。
其實學習Java技術,大可參考此學習路線,該學習路線對從零基礎小白到Java初級開發工程師,Java高級開發工程師,後面的Java大神級開發工程師都有一個明確清晰的指導。
❾ Storm與Spark,Hadoop相比是否有優勢
Storm優勢就在於Storm是實時的連續性的分布式的計算框架,一旦運行起來,除非你將它殺掉,否則它一直處理計算或等待計算的狀態.Spark和hadoop都做不到.
當然它們各自都有其應用場景,各有各的優勢.可以配合使用.
下面我轉一份別人的資料,講的很清楚.
Storm與Spark、Hadoop這三種框架,各有各的優點,每個框架都有自己的最佳應用場景。
所以,在不同的應用場景下,應該選擇不同的框架。
Storm是最佳的流式計算框架,Storm由Java和Clojure寫成,Storm的優點是全內存計算,所以它的定位是分布式實時計算系統,按照Storm作者的說法,Storm對於實時計算的意義類似於Hadoop對於批處理的意義。
Storm的適用場景:
1)流數據處理
Storm可以用來處理源源不斷流進來的消息,處理之後將結果寫入到某個存儲中去。
2)分布式RPC。由於Storm的處理組件是分布式的,而且處理延遲極低,所以可以作為一個通用的分布式RPC框架來使用。
SparkSpark是一個基於內存計算的開源集群計算系統,目的是更快速的進行數據分析。Spark由加州伯克利大學AMP實驗室Matei為主的小團隊使用Scala開發開發,類似於Hadoop MapRece的通用並行計算框架,Spark基於Map Rece演算法實現的分布式計算,擁有Hadoop MapRece所具有的優點,但不同於MapRece的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的Map Rece的演算法。
Spark的適用場景:
1)多次操作特定數據集的應用場合
Spark是基於內存的迭代計算框架,適用於需要多次操作特定數據集的應用場合。需要反復操作的次數越多,所需讀取的數據量越大,受益越大,數據量小但是計算密集度較大的場合,受益就相對較小。
2)粗粒度更新狀態的應用
由於RDD的特性,Spark不適用那種非同步細粒度更新狀態的應用,例如Web服務的存儲或者是增量的Web爬蟲和索引。就是對於那種增量修改的應用模型不適合。
總的來說Spark的適用面比較廣泛且比較通用。
Hadoop是實現了MapRece的思想,將數據切片計算來處理大量的離線數據數據。Hadoop處理的數據必須是已經存放在HDFS上或者類似HBase的資料庫中,所以Hadoop實現的時候是通過移動計算到這些存放數據的機器上來提高效率。
Hadoop的適用場景:
1)海量數據的離線分析處理
2)大規模Web信息搜索
3)數據密集型並行計算
簡單來說:
Hadoop適合於離線的批量數據處理適用於對實時性要求極低的場景
Storm適合於實時流數據處理,實時性方面做得極好
Spark是內存分布式計算框架,試圖吞並Hadoop的Map-Rece批處理框架和Storm的流處理框架,但是Spark已經做得很不錯了,批處理方面性能優於Map-Rece,但是流處理目前還是弱於Storm,產品仍在改進之中
❿ Java架構師需要具備哪些能力
具備 8 年以上軟體行業工作經驗;
具備 4 年以上 C/S 或 B/S 體系結構軟體產品開發及架構和設計經驗;
具備 3 年以上的代碼編寫工作經驗
具備豐富的大中型開發項目的總體規劃、方案設計及技術隊伍管理經驗
對相關的技術標准有深刻的認識,對軟體工程標准規范有良好的把握
對 .Net/JAVA 技術及整個解決方案有深刻的理解及熟練的應用,並且精通WebService/J2EE 架構和設計模式,並在此基礎上設計產品框架
具有面向對象分析、設計、開發能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner 等工具進行設計開發;
精通大型資料庫如 Oracle、Sql Server 等的開發;
Java架構師要求是很高的,除了要精通JAVA方面知識以外,還要掌握計算機所有軟體方面,以及部分硬體方面的知識。
程序設計方面:JAVA、JAVA Application、JAVA EE(例如:EJB、RMI、JMS、WebService)、開源、設計模式、JavaScript、C/C++、.NET方面、VBA 。
資料庫方面:SQL、ORACLE、MySQL、索引、分區、分片、主從、存儲過程 。
網路及瀏覽器:TCP/IP協議、HTTP協議、FTP、HTML、XML、瀏覽器 。
操作系統:Linux系統、Shell/批處理、文件系統(各種)、SSH 。
中間件:Tomcat、Apache、Nginx、lighthttpd、JBoss、WebSphere、Weblogic、IIS。
技術和思想:各種演算法、搜索、緩存、多線程、UML、OO、SOA、AOP、REST、存儲、雲計算等。
業務方面:論壇、博客、社交、電子商務、應用程序等 。
其它方面:計算機基礎知識、計算機硬體方面 。
個人軟素質:經驗、問題分析、大局觀、心態等 。
企業需求: