Ⅰ 作為一個java程序員, 應該掌握哪些知識, 目前, 比較流行的java開發框架有哪些,
java基礎,三大主流資料庫mysql,orcale,sql server;然後是j2ee的相關知識,也就是java開發框架。
Spring Framework 【Java 開源JEE框架】
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。
Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的
Inversion of
Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。
Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了
Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者
JDBC事務提供一個一致的編程模型。Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務
--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。
Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。【SpringIDE:Eclipse平台下一個輔助開發插件】.
WebWork 【Java開源Web開發框架】
WebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE
Web框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是Rickard
Oberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。
Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。
Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL – the
Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。
WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成
Action(業務層Action類),
session(會話)application(應用程序)范圍的映射,request請求參數映射。WebWork2支持多視圖表示,視圖部分可以使用
JSP, Velocity, FreeMarker,
JasperReports,XML等。在WebWork2.2中添加了對AJAX的支持,這支持是構建在DWR與Dojo這兩個框架的基礎之上.
【EclipseWork:用於WebWork輔助開發的一個Eclipse插件】
Struts 【Java開源Web開發框架】
Struts是一個基於Sun
J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message
resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】
Hibernate 【Java開源持久層框架】
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。
Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:【Hibernate
Synchronizer】【MiddlegenIDE】
Quartz 【Java開源調度框架】
Quartz是OpenSymphony開源組織在Job
scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。Jobs可以做成標準的Java組件或
EJBs。Quartz的最新版本為Quartz 1.5.0。
Velocity 【Java開源模板引擎】
Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template
language)來引用由java代碼定義的對象。當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。
Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine
web開發架構提供模板服務(template
service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。【VeloEclipse
:Velocity在Eclipse平台下的一個輔助開發插件】
IBATIS 【Java開源持久層框架】
使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM
而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL
語句。相對Hibernate等 「全自動」ORM機制而言,ibatis
以SQL開發的工作量和資料庫移植性上的讓步,為系統設計提供了更大的自由空間。作為「全自動」ORM 實現的一種有益補充,ibatis 的出現顯
得別具意義。
Compiere ERP&CRM 【Java開源ERP與CRM系統】
Compiere
ERP&CRM為全球范圍內的中小型企業提供綜合型解決方案,覆蓋從客戶管理、供應鏈到財務管理的全部領域,支持多組織、多幣種、多會計模式、多成本計算、多語種、多稅制等國際化特性。易於安裝、易於實施、易於使用。只需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關系、供應商關系、員工關系、經營業績分析等強大功能了。
Roller Weblogger 【Java開源Blog博客】
這個weblogging
設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS
syndication,blogroll管理和提供一個XML-RPC 介面。
Eclipse 【Java開源IDE】
Eclipse平台是IBM向開發源碼社區捐贈的開發框架,它之所以出名並不是因為IBM宣稱投入開發的資金總數
—4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體系結構。
XPlanner 【Java開源項目管理】
XPlanner 一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、user
stories等,XPlanner都提供了相對應的的管理工具,XPlanner支持XP開發流程,並解決利用XP思想來開發項目所碰到的問題。
XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtual note cards),iterations、user
stories與工作記錄的追蹤,未完成stories將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支持。
HSQLDB 【Java開源開源資料庫】
HSQLDB(Hypersonic SQL)是純Java開發的關系型資料庫,並提供JDBC驅動存取數據。支持ANSI-92 標准
SQL語法。而且他占的空間很小。大約只有160K,擁有快速的資料庫引擎。
Liferay 【Java開源門戶系統】
代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特別是其前台界面部分使用Struts
框架技術,基於XML的portlet配置文件可以自由地動態擴展,使用了Web Services來支持一些遠程信息的獲取,使用 Apahce
Lucene實現全文檢索功能。
主要特點:
提供單一登陸介面,多認證模式(LDAP或 SQL);
管理員能通過用戶界面輕松管理用戶,組,角色;
用戶能可以根據需要定製個性化的portal layout;
能夠在主流的J2EE應用伺服器上運行,如JBoss+Jetty/Tomcat,JOnAS;
支 持主流的資料庫,如PostgreSQL,MySQL;
使用了第三放的開源項目,如Hibernate, Lucene, Struts;
支持包括中文在內的多種語言;
採用最先進的技術 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java開源門戶系統】
Jetspeed是一個開放源代碼的企業信息門戶(EIP)的實現, 使用的技術是Java和XML. 用戶可以使用瀏覽器,
支持WAP協議的手機或者其它的設備訪問Jetspeed架設的信息門戶獲取信息. Jetspeed扮演著信息集中器的角色,
它能夠把信息集中起來並且很容易地提供給用戶.
Jetspeed具有如下的特徵:
即將成為標准化的Java Portlet API
基於模板的布局, 包括JSP和Velocity
通過開放的內容同步技術支持遠程XML 內容交換
定製默認的主頁
使用資料庫進行用戶認證
內存緩存技術, 加快頁面的響應
通 過Rich Site Summary技術, 支持同步內容
和Cocoon, WebMacro, Velocity集成.
Wireless Markup Language (WML) 支持
使用XML格式的配置文件注冊portlet.
完整的 Web Application Archive (WAR) 支持
Web應用程序開發的基礎設施
可以在本地緩 存遠程內容
與Avantgo同步
可移植到所有支持JDK1.2和Servlet 2.2的平台
與 Turbine模塊和服務集成
可以根據用戶, 安裝媒體類型和語言的不同設定, 產生不同的個性化服務
持續化服 務使得所由的portlet能夠容易的存儲每個用戶的狀態, 頁面和portlet
使用皮膚技術使得用戶可以選擇portlet的顏 色和顯示屬性
自定義功能是的管理員可以選擇portlet以及定義個人頁面的布局
在資料庫中存儲PSML
通 過Jetspeed的安全portlets管理用戶, 組,角色和許可權
基於角色對訪問portlet進行控制
JOnAS 【Java開源應用伺服器】
JOnAS是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet
2.3和JSP 1.2規范。JOnAS伺服器依賴或實現以下的Java API:JCA、JDBC、JTA
、JMS、JMX、JNDI、JAAS、JavaMail 。
JFox3.0 【Java開源應用伺服器】
JFox 是 Open Source Java EE Application Server,致力於提供輕量級的Java
EE應用伺服器,從3.0開始,JFox提供了一個支持模塊化的MVC框架,以簡化EJB以及Web應用的開發!
如果您正在尋找一個簡單、輕量、高效、完善的Java EE開發平台,那麼JFox正是您需要的。
JFox 3.0 擁有以下特性:
重 新設計的 IoC 微內核,融入 OSGi 模塊化思想
設計成嵌入式架構,能夠和任何 Java Web Server集成部署
支 持 EJB3,JPA規范,支持容器內和容器外兩種方式運行EJB和JPA組件
支持 EJB 發布成Web Service
采 用 JOTM(http://jotm.objectweb.org/)提供事務處理,支持兩階段提交 (2PC)
採用 XAPool(http://forge.objectweb.org/projects/xapool/) 提供 XA
DataSource,支持智能連接池管理
內置 MVC 框架,實現自動Form
Mapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker頁面引擎,並支持直接在
Action中注入EJB
支持多應用模塊部署,讓中大型應用充分享受模塊化開發帶來的優勢
提供 Manager 管理模塊,可以查看和管理各種運行時參數
提供根據 JFox 特色重寫的 Petstore 應用模塊
EasyJWeb 【Java開源Web開發框架】
EasyJWeb是基於java技術,應用於WEB應用程序快速開發的MVC框架,框架設計構思來源於國內眾多項目實踐,框架充分借簽了當前主要流行的開源Web框架(Struts、JSF、Tapestry
、Webwork),吸取了其優點及精華,利用Velocity作為模板頁面引擎,是一個實現了頁面及代碼完全分離的MVC開發框架。是一個能實現中小型
Web應用系統快速開發的簡易Web框架。
通過EasyJWeb
Tools提供的配套開發工具,可以實現基於EasyJWeb框架的Web應用快速開發,包括常用應用軟體的代碼自生成、資料庫添刪改查(CRUD)代碼生成、自動頁面模版生成、配置文件管理等。
框架特點:
零配文件置支持。以前我們每接觸一個框架,開始總都要被
他的配置文件折騰一番。EasyJWeb實現零配置支持,可以不寫一句配置文件就在框架基礎上構建你的運用。(適合小型網站系統)。
簡 易的模板頁面設計支持:放棄使用jsp,使用簡單Velocity腳本語言作為頁面模板。
頁面程序完全分離:實現顯示頁面與程序邏輯 的完全分離,克服了傳統jsp頁面難於維護的問題。
基於頁面組件的框架。靈活的頁面組件配置,可以直接通過配置文件設置欄位級的事件 組件。
快速開發支持:通過EasyJWeb
Tools,可以自動生成應用軟體模板代碼,定製並管理自己的J2EE代碼模板,代碼生成模板支持最流行的實用Java開發框架(如hibernate、
Spring等)實現快速開發。
Tapestry 【Java開源Web開發框架】
Tapestry是一個開源的基於servlet的應用程序框架,它使用組件對象模型來創建動態的,交互的web應用。一個組件就是任意一個帶有
jwcid屬性的html標記。其中jwc的意思是Java Web
Component。Tapestry使得java代碼與html完全分離,利用這個框架開發大型應用變得輕而易舉。並且開發的應用很容易維護和升級。
Tapestry支持本地化,其錯誤報告也很詳細。Tapestry主要利用javabean和xml技術進行開發。【Spindle:Tapestry
輔助開發Eclipse插件】.
FreeMarker 【Java開源模板引擎】
FreeMarker允許Java
servlet保持圖形設計同應用程序邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的數據動態地生成
HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速度。
【FreeMarker Eclipse Plugin與FreeMarker IDE:Eclipse平台下的輔助開發工具】
Lucene 【Java開源搜索引擎】
Apache
Lucene是一個基於Java全文搜索引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自已需要自訂其功能。
iText 【Java開源PDF類庫】
iText是一個能夠快速產生PDF文件的java類庫。iText的java類對於那些要產生包含文本,表格,圖形的只讀文檔是很有用的。它的類庫尤其與java
Servlet有很好的給合。使用iText與PDF能夠使你正確的控制Servlet的輸出。
Groovy 【Java開源動態語言】
Groovy是一種基於JVM的敏捷開發語言,它結合了Python、Ruby和 Smalltalk的許多強大的特性。
Groovy已在WebWork2中的應用。它可以被編譯為標準的Java Bytecode。
OpenCms 【Java開源CMS系統】
OpenCms是一個J2EE的產品,它是用 Java寫成的。它和Tomcat捆綁在一起。但是也能夠使用ATG
Dynamo、WebLogic和WebSphere。OpenCms支持多種RDBMS來保存內容,包括Oracle、SQL
Server、Sybase和mySQL。新版本提供了一個新的模板引擎,JSP支持,一種新的連接管理系統,提高了穩定性。
JUnit 【Java開源測試工具】
JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing
framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。
BlueJ 【Java開源IDE】
BlueJ是一個專門為入門級教學設計的JavaTM 開發環境。它是由澳大利亞墨爾本Monash大學BlueJ小組設計並開發的。
XWiki 【Java開源Wiki系統】
XWiki是一個強大的Java開源的Wiki引擎。它支持一些受歡迎的特性如:
內 容管理(瀏覽/編輯/預覽/保存),
支持附件,
版本控制,
全文本搜索,
權 限管理
使用Hibernate進行數據存儲,
RSS輸出與顯示外部的RSS feeds,
多 語言支持,
提供XML/RPC的API,
WYSIWYG HTML編輯器,
導出為PDF
Groovy 腳本支持等等....。
EJBCA 【Java開源網路伺服器端組件】
EJBCA是一個全功能的CA系統軟體,它基於J2EE技術,並提供了一個強大的、高性能並基於組件的CA。EJBCA兼具靈活性和平台獨立性,能夠獨立使用,也能和任何J2EE應用程序集成。
JXTA 【Java開源其它項目】
Sun微系統公司公開了旨在建立P2P(Peer to
Peer)通用技術基礎的JXTA計劃。JXTA技術是網路編程和計算的平台,用以解決現代分布計算尤其是點對點(P2P)計算中出現的問題。
JXTA將建立核心的網路計算技術,提供支持在任何平台、任何地方以及任何時間實現P2P計算的一整套簡單、小巧和靈活的機制。JXTA首先將歸納目前
P2P的功能特別,而後建立核心的技術來表達目前的P2P計算的局限性。其重點是創建基本的機制,而具體的策略選擇權則交給應用的開發者。JXTA將充分利用XML、Java等開放技術,使得UNIX操作系統更強大和靈活,比如利用管道(Pipes)傳輸Shell命令實現復雜的計算任務。JXTA支持
P2P應用的基本功能來建立一個P2P系統,還將努力證實這些可以成為建立更高層功能的基礎構造模塊。JXTA架構可以分為三個層面:JXTA核心層、
JXTA業務層和JXTA應用層。
DWR 【Java開源AJAX框架】
DWR(Direct Web
Remoting)是一個WEB遠程調用框架.利用這個框架可以讓AJAX開發變得很簡單.利用DWR可以在客戶端利用JavaScript直接調用服務端的Java方法並返回值給JavaScript就好像直接本地客戶端調用一樣(DWR根據Java類來動態生成JavaScrip代碼).它的最新版本
DWR0.6添加許多特性如:支持Dom Trees的自動配置,支持Spring(JavaScript遠程調用spring
bean),更好瀏覽器支持,還支持一個可選的commons-logging日記操作.
ZK 【Java開源AJAX框架】
ZK是一個Ajax Java Web框架,利用少量代碼就能夠開發出擁有Rich
UI的Web應用。ZK提供基於XUL的標記語言和事件驅動的組件,可以讓你像開發桌面應用程序一樣簡單。支持EL表達式和腳本語言包括:JavaScript、Ruby和Groovy等。支持Annotation及數據綁定。集成Google
Maps、FCKeditor、DOJO以及Timeline。
Ⅱ Java學習路線應該如何安排
我學習Java 已經快四年了,在 Java 學習這條路上也踩過無數次的坑,恰巧有小夥伴問我 Java 學習的路線,我想著趁這次機會分享自己學 Java 的路線,希望給小夥伴們一點幫助,避開路上的一些坑
小夥伴們有興趣想了解內容和更多相關學習資料的請點贊收藏+評論轉發+關注我,後面會有很多干貨。我有一些面試題、架構、設計類資料可以說是程序員面試必備!
所有資料都整理到網盤了,需要的話歡迎下載!私信我回復【111】即可免費獲取
首先,我先分享下自己對不同學習方式的理解,小夥伴們可以根據自己情況選擇。
看視頻系統學習,比如培訓機構的課程、MOOC的課程等。看視頻的好處就是有老師帶著,易於理解和掌握,非常適合初學者。
看書學習,如《Redis設計與實現》、《 Java 並發編程的藝術》,便於了解技術脈絡和深入學習知識點。
看博客和源碼精進學習。博客的好處是有些知識點會以很通俗的方式講解出來,我們很好理解。
第一階段: Java 基礎
最開始要學習的是 Java 基礎,學習了這部分,就會對 Java 語言有一個初步的了解。其實大部分語言的基礎知識都是大同小異,如果之前已經學習過其他語言如C、C++,那學習這部分會更快。
這部分主要學習的內容有:基本程序結構,類與對象,介面,泛型,反射,集合,異常與調試, Java 網路編程, Java I/O和多線程。
學 Java 基礎,推薦大家看尚矽谷宋紅康老師的 Java 教程,宋老師的課程更適合零基礎學員,從 Java 語言起源開始,循序漸進,知識點剖析細致。
除此之外,還可以閱讀《 Java 核心技術 卷I》,這本書偏向實用,廣度和深度都恰到好處。其中,第7-9章講述了 Java 的GUI編程, Java 的GUI開發使用並不多,這部分可以先跳過。
網上也有一些不錯的文檔教程網站,可以輔助學習:
菜鳥教程 Java :Java 教程 | 菜鳥教程
當學完了這部分,就可以做個圖書管理系統、學生管理系統這樣的小項目了。還記得庫森在大二學完這部分,就跟著教程學做了個貪吃蛇游戲,還是蠻有成就感的。
當然,時間有限的小夥伴,可以不用做這塊的項目,直接做 Java Web 項目就好了。
第二階段:資料庫
MySQL 和 Oracle 都是廣受企業歡迎的資料庫,其中 MySQL 是目前應用最廣泛的開源關系資料庫,對於新手或者校招的小夥伴,我們目前只學習 MySQL 就可以了。
這部分主要學習的內容有:資料庫的CRUD操作、JDBC API、資料庫特性和資料庫連接池。
其中,資料庫連接池是為了避免頻繁地創建和銷毀 JDBC 連接,常見連接池包括 C3P0,Druid 和 HikariCP,目前使用最廣泛的是HikariCP。
書籍方面,推薦入門的小夥伴看《MySQL必知必會》,是一本小冊子,這本書實踐性很強,基本沒有什麼理論的堆砌,非常適合入門。
如果想要深入學習,可以看《高性能 MySQL》,這本書是MySQL領域的經典之作,不過就是太厚了,面試重點看索引部分就可以了。
除此之外,如果要深入學習MySQL的使用和原理,可以看極客時間的專欄《MySQL實戰45講》,阿里資深技術專家講解的課程,有很多生產經常遇到的問題,非常有深度。
第三階段: Java Web
學習 Java Web,我們不僅需要掌握後端 Java 技術,還需要學習些前端知識。
前端有三大基礎技術 Html、CSS和 Java Script,初學的話,學習這些就可以了。如果想做出更好的互動式效果,可以再學習Vue和React等前端技術。
後端 Java 技術包括 Servlet、Filter、Listener、Session、Cookie、JSP、EL 表達式和 JSTL 等。
其中,像 JSP 這樣比較老的技術,目前在各大互聯網公司基本不再使用,已經被 Freemark、Thymeleaf 這樣的模板引擎所替代,我們只需要了解基本使用即可。
入門 Java Web,推薦尚矽谷的 Java Web 教程,教程不僅包括前端三大技術,還有後端 Java 技術,最後還會帶大家做一個書城項目。
第四階段:主流框架
這部分我們要學習的主流框架主要有 Spring、Spring MVC 和 MyBatis,俗稱 SSM 框架。
曾經的 SSH 框架,即 Struts2、Spring、Hibernate 框架,已經逐漸被 SSM 替代,現在可以不用再學 Struts2 和 Hibernate 框架了。
Ⅲ java中的單例模式的代碼怎麼寫
單例模式(Singleton) ,屬於最常見的設計模式之一,大部分系統都會用到,目的是為了維護系統中唯一的一個實例。
可分為eager模式,示例代碼如下:
Java代碼
1.class EagerSingleton{
2. private static final EagerSingleton m_instance = new EagerSingleton();
3. private EagerSingleton(){}
4. public static EagerSingleton getInstance(){
5. return m_instance;
6. }
7.}
class EagerSingleton{
private static final EagerSingleton m_instance = new EagerSingleton();
private EagerSingleton(){}
public static EagerSingleton getInstance(){
return m_instance;
}
}
和 lazy模式,示例代碼如下:
Java代碼
1.class LazySingleton{
2. private static LazySingleton m_instance = null;
3. private LazySingleton(){}
4. public synchronized static getInstance(){
5. if(m_instance == null){
6. m_instance = new LazySingleton();
7. }
8. return m_instance;
9. }
10.}
class LazySingleton{
private static LazySingleton m_instance = null;
private LazySingleton(){}
public synchronized static getInstance(){
if(m_instance == null){
m_instance = new LazySingleton();
}
return m_instance;
}
}
java源碼中,Runtime.getRuntime()就是單例的一個例子。
單例模式的精神就是整個系統中維護一個實例,推廣開來,如果在一個系統中需要維護多個示例,那麼就產生了多例模式(multiton)。
多例模式(Multiton) ,通過聚集對象了保留自身的多個示例,根據客戶端的參數返回所需要的實例。
示例代碼如下:
Java代碼
1.class Multiton{
2. private final int INSTANCE_SIZE = 10;
3. private static Map instances = new HashMap(INSTANCE_SIZE);
4. private String name;
5. private Multiton(){}
6. private Multiton(String name){
7. this.name = name;
8. }
9. public synchronized static getInstance(String name){
10. if(instances.containsKey(name)){
11. return instances.get(name);
12. }
13. else{
14. ins = new Multiton(name);
15. instances.put(name, ins);
16. return ins;
17. }
18. }
19.}
class Multiton{
private final int INSTANCE_SIZE = 10;
private static Map instances = new HashMap(INSTANCE_SIZE);
private String name;
private Multiton(){}
private Multiton(String name){
this.name = name;
}
public synchronized static getInstance(String name){
if(instances.containsKey(name)){
return instances.get(name);
}
else{
ins = new Multiton(name);
instances.put(name, ins);
return ins;
}
}
}
[nextpage]
一個實用的例子就是KeyGenerator, 示例代碼如下:
Java代碼
1.class KeyGenerator{
2. private final int POOL_SIZE = 20;
3. private static Map instances = new HashMap(16);
4. private KeyInfo keyinfo;
5. private KeyGenerator(){}
6. private KeyGenerator(String keyName){
7. this.keyinfo = new KeyInfo(POOL_SIZE, keyName);
8. }
9. public synchronized static getInstance(String keyName){
10. if(instances.containsKey(keyName)){
11. return (KeyGenerator)instances.get(keyName);
12. }
13. else{
14. keyGen = new KeyGenerator(keyName);
15. instances.put(name, keyGen);
16. return keyGen;
17. }
18. }
19. public synzhronized int getNextKey(){
20. return keyinfo.getNextKey();
21. }
22. }
class KeyGenerator{
private final int POOL_SIZE = 20;
private static Map instances = new HashMap(16);
private KeyInfo keyinfo;
private KeyGenerator(){}
private KeyGenerator(String keyName){
this.keyinfo = new KeyInfo(POOL_SIZE, keyName);
}
public synchronized static getInstance(String keyName){
if(instances.containsKey(keyName)){
return (KeyGenerator)instances.get(keyName);
}
else{
keyGen = new KeyGenerator(keyName);
instances.put(name, keyGen);
return keyGen;
}
}
public synzhronized int getNextKey(){
return keyinfo.getNextKey();
}
}
Ⅳ 如何在github上尋找java開源項目我說的是那種業務系統
開源免費的都是通用型非商業化的項目,比如辦公流程審批的,工具性的。針對特定行業的軟體是不可能出現開源的。
Ⅳ Java開源框架是什麼
Java開源項目
Spring Framework 【Java開源 J2EE框架】
Spring 是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的 Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了 Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。 Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的 aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。【SpringIDE:Eclipse平台下一個輔助開發插件】.
WebWork 【Java開源 Web框架】
WebWork 是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是Rickard Oberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。 Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。 Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成 Action(業務層Action類), session(會話)application(應用程序)范圍的映射,request請求參數映射。WebWork2支持多視圖表示,視圖部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了對AJAX的支持,這支持是構建在DWR與Dojo這兩個框架的基礎之上.【EclipseWork:用於WebWork輔助開發的一個Eclipse插件】
Struts 【Java開源 Web框架】
Struts 是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】
Hibernate 【Java開源 持久層框架】
Hibernate 是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz 【Java開源 Job調度】
Quartz 是OpenSymphony開源組織在Job scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。Jobs可以做成標準的Java組件或 EJBs。Quartz的最新版本為Quartz 1.5.0。
Velocity 【Java開源 模板引擎】
Velocity 是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。 【VeloEclipse :Velocity在Eclipse平台下的一個輔助開發插件】
IBATIS 【Java開源 持久層框架】
使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 「全自動」ORM機制而言,ibatis 以SQL開發的工作量和資料庫移植性上的讓步,為系統設計提供了更大的自由空間。作為「全自動」ORM 實現的一種有益補充,ibatis 的出現顯 得別具意義。
Compiere ERP&CRM 【Java開源ERP與CRM系統】
Compiere ERP&CRM為全球范圍內的中小型企業提供綜合型解決方案,覆蓋從客戶管理、供應鏈到財務管理的全部領域,支持多組織、多幣種、多會計模式、多成本計算、多語種、多稅制等國際化特性。易於安裝、易於實施、易於使用。只需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關系、供應商關系、員工關系、經營業績分析等強大功能了。
Roller Weblogger 【Java開源 Blog博客】
這個weblogging 設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS syndication,blogroll管理和提供一個XML-RPC 介面。
Eclipse 【Java開源 開發工具】
Eclipse平台是IBM向開放源碼社區捐贈的開發框架,它之所以出名並不是因為IBM宣稱投入開發的資金總數 —4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體系結構。
NetBeans 【Java開源 開發工具】
NetBeans IDE 是一個為軟體開發者提供的自由、開源的集成開發環境。您可以從中獲得您所需要的所有工具,用 Java、C/C++ 甚至是 Ruby 來創建專業的桌面應用程序、企業應用程序、web 和移動應用程序。此 IDE 可以在多種平台上運行,包括 Windows、Linux、Mac OS X 以及 Solaris;它易於安裝且非常方便使用。
XPlanner 【Java開源 項目管理】
XPlanner 一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、user stories等,XPlanner都提供了相對應的的管理工具,XPlanner支持XP開發流程,並解決利用XP思想來開發項目所碰到的問題。 XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtual note cards),iterations、user stories與工作記錄的追蹤,未完成stories將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支持。
HSQLDB 【Java開源 DBMS資料庫】
HSQLDB(Hypersonic SQL)是純Java開發的關系型資料庫,並提供JDBC驅動存取數據。支持ANSI-92 標准 SQL語法。而且他占的空間很小。大約只有160K,擁有快速的資料庫引擎。
Liferay 【Java開源 Portal門戶】
代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特別是其前台界面部分使用Struts 框架技術,基於XML的portlet配置文件可以自由地動態擴展,使用了Web Services來支持一些遠程信息的獲取,使用 Apahce Lucene實現全文檢索功能。
JetSpeed 【Java開源 Portal門戶】
Jetspeed 是一個開放源代碼的企業信息門戶(EIP)的實現,使用的技術是Java和XML。用戶可以使用瀏覽器,支持WAP協議的手機或者其它的設備訪問Jetspeed架設的信息門戶獲取信息。Jetspeed扮演著信息集中器的角色,它能夠把信息集中起來並且很容易地提供給用戶。
JOnAS 【Java開源 J2EE伺服器】
JOnAS 是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet 2.3和JSP 1.2規范。JOnAS伺服器依賴或實現以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
JFox3.0 【Java開源 J2EE伺服器】
JFox 是 Open Source Java EE Application Server,致力於提供輕量級的Java EE應用伺服器,從3.0開始,JFox提供了一個支持模塊化的MVC框架,以簡化EJB以及Web應用的開發! 如果您正在尋找一個簡單、輕量、高效、完善的Java EE開發平台,那麼JFox正是您需要的。
Ⅵ eclipse怎麼查看java源代碼
在Eclipse中查看JDK類庫的源代碼
設置:
1.點 「window」-> "Preferences" -> "Java" -> "Installed JRES"
Ⅶ 關於java
Java的Sun Microsystems的Java編程語言介紹了1995年5月(以下簡稱為Java語言)和Java平台的總稱的。 HotJava瀏覽器(Java實現支持Java小程序)Java的魅力:跨平台,動態的Web,Internet計算。從那時起,Java被廣泛接受和推廣網路的快速發展,常用的瀏覽器現在支持Java applets。另一方面,Java技術是不斷更新的。
Java平台的Java虛擬機(Java虛擬機)和Java應用程序編程介面(應用程序編程介面,或API)構成。獨立的操作系統提供一個標准介面,可分為用於Java應用程序的Java應用程序編程介面的基本部分和擴展。 Java應用程序可以運行在Java平台上安裝的硬體或操作系統平台。現在Java平台已經嵌入在幾乎所有的操作系統。因此,Java程序可以只編譯一次,並可以運行在不同的系統。 Java應用編程介面已經發展從1.1倍版本到1.2版本。 Java平台基於Java1.4,最近版本為Java1.7。
Java是分為三個系統JavaSE中(Java2平台標准版(32位x86)的Java平台,標准版),JavaEE伺服器(Java 2平台企業版Java平台,企業版),和JavaME(Java 2平台Micro版平台的Java微型版)。
2009年的甲骨文(Oracle)宣布收購的太陽。
[編輯本段] JAVA的名字起源
一天,幾個Java組的成員正在討論如何命名這個新的語言,他們是爪哇(Java)的咖啡館喝著咖啡,稱為Java這項建議已得到別人的想法,Java名稱的傳播。沒有去看看原來的Sun Java徽標認為,現在看,這不就是一杯熱氣騰騰的咖啡嗎?
[編輯本段] Java語言特性
Java是一個簡單的,面向對象的,分布式的,解釋了安全,可靠的結構中立的,可移植的,高性能的多線程的動態語言。
當SUN的Java語言於1995年推出後,眼中的世界是神奇的語言吸引。 Java中到底有什麼神奇的?
Java語言其實出生於1991年,最初稱為OAK語言,SUN公司為一些消費性電子產品和通用設計環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,可以說是未知的,它幾乎夭折,並在網路出現之前,OAK。然而,互聯網的出現改變了OAK的命運。
的Java來臨之前,在互聯網上的信息內容都是一些無聊的剛性HTML文件。這是針對那些痴迷的WEB瀏覽器的人簡直是無法忍受的。他們迫切希望看到的網路互動內容開發創建一個類,不需要考慮硬體和軟體平台,可以執行應用程序的WEB是非常可取的,當然,這些程序也有一個很大的安全。對於用戶來說,這樣的要求,傳統的編程語言是無能為力的。 SUN的工程師敏銳地認識到,從1994年起,他們開始OAK在WEB和HotJava的第一個版本所採用的技術。 SUN 1995年正式推出的Java的名義,幾乎所有的Web開發人員心中感嘆:哦,這正是我想要的!因此,Java已經成為一顆耀眼的明星,丑小鴨變成白天鵝的整個事情。
[編輯本段] Java的主要特點
Java語言是簡單的。 Java語言的語法與C語言和C + +語言很接近大多數程序員很容易學習和使用Java。另一方面,Java已經丟棄了C + +中很少使用,這是很難理解的,令人困惑的功能,比如操作符重載,多繼承,自動投。特別是,Java語言不使用指針,並提供了自動的廢料收集,這樣程序員就不必擔心內存管理。
2,Java語言是一種面向對象的。 Java語言的類,介面和繼承原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多重繼承,並支持實施機制之間的類和介面(關鍵字實現)。 Java語言全面支持動態綁定,而C + +虛函數使用動態綁定。總之,Java語言是一種純粹的面向對象編程語言。
3,Java語言是分布式的。 Java語言支持開發互聯網應用,在基本的Java應用程序編程介面,它提供了網路應用編程的類庫,包括URL,URL連接,套接字,ServerSocket的網路應用程序編程介面(java.net)。 Java的RMI(遠程方法激活)機制是開發分布式應用程序的重要手段。
4,Java語言是健壯的。 Java的強類型,異常處理,自動垃圾收集的Java程序健壯性的重要保證。指針下降的Java明智的選擇。 Java的安全檢查機制使得Java更強的魯棒性。
5,Java語言是安全的。 Java是經常被用來在網路環境中,Java提供了一個安全機制,以防止惡意代碼的攻擊。除了許多Java語言的安全功能,通過網路下載Java類的安全機制(類載入器)分配一個不同的名稱空間,以防止其他本地類相同的名稱,位元組代碼檢查,並提供安全管理機制(類SecurityManager的)允許Java應用程序設置安全哨兵。
6,Java語言是體系結構中立的。 Java程序(後綴為java文件)被編譯Java平台的體系結構中立的位元組碼格式的(類文件後綴),然後你就可以在Java平台上運行的任何系統。這種方法適用於異構的網路環境和軟體分發。
7,Java語言是可移植的。這種可移植性體系結構中立此外,Java有嚴格的規定,每個基本數據類型的長度。 Java系統本身具有很強的可移植性,Java編譯器是用Java實現的,Java的運行時環境中實現ANSI C.
8,Java語言的解釋。正如前面提到的在Java平台上被編譯成位元組碼格式,然後可以運行在任何系統中的Java平台,Java程序。在運行時,Java平台,Java解釋器解釋執行這些位元組碼類實施過程中需要載入到操作系統環境的耦合階段。
9,Java是一種高性能。與解釋型的腳本語言相比,Java是確實是一個高性能。事實上,Java的運行速度,搭配-IN-TIME(JIT)編譯器技術的發展,越來越多的接近C + +。
10,Java語言是多線程的。線程是Java語言中的一種特殊的對象,它必須創建Thread類的子類(星期日)。通常有兩種方法創建一個線程:首先,使用形式的幾何結構,主題(可運行)構造函數將一個實現Runnable介面的對象包裝成一個線程,第二子類派生從Thread類並重寫run方法中,創建使用子類對象的線程。值得注意的是Thread類實現Runnable介面,因此,任何一個線程都有它的run方法,run方法包含的線程中運行的代碼。的線程的活動來控制由一組方法。 Java語言支持同時執行多個線程之間的同步機制的多線程(關鍵字為synchronized)。
11,Java語言是動態的。 Java語言的設計目標之一的是,適於在環境中的動態變化。類的Java程序需要動態載入的經營環境,但也通過網路來載入所需的類。這也有利於軟體的升級。此外,Java類的運行時類型檢查的運行時表示。
Java語言的優秀功能,使Java應用程序具有無與倫比的耐用性和可靠性,這也降低了應用系統的維護成本。 Java嵌入式對象技術和Java平台API的支持可以縮短應用開發時間並降低成本。 Java編譯,到處運行的特性使得它能夠提供一個開放的架構可在任何地方,和低成本的方式來傳遞信息之間的多平台。特別是Java企業應用編程介面(Java企業API)為企業計算及電子商務應用提供相關的技術和豐富的類庫。 [編輯本段] Java的相關技術
JDBC(Java資料庫連接)提供了一個統一的介面來連接各種關系資料庫,可提供統一的訪問各種關系資料庫,它由一組用JAVA語言編寫的類和介面。 JDBC標準的API,JDBC為工具/資料庫開發人員,你可以構建更高級的工具和介面,資料庫開發人員用純Java API來編寫資料庫應用程序,是一個商標名稱。
2,EJB(企業JavaBeans)可以讓開發人員能夠輕松地創建,部署和管理跨平台的基於組件的企業應用程序。
3,用於開發分布式Java應用程序的Java的Java遠程方法調用(RMI)。 Java對象,可以遠程Java虛擬機調用。在這種方式中,遠程方法激活可以發生在對等的兩端,也可以發生在客戶端和伺服器之間,只要這兩個應用程序都是用Java編寫的。
4,Java的Java介面定義語言IDL()提供CORBA(公共對象請求代理體系結構)的無縫互操作性。這使得Java可以集成異構的業務信息資源。
5,JNDI(Java命名和目錄介面)提供了一個統一的Java平台無縫連接。這個介面屏蔽了企業網路中使用的各種命名和目錄服務。
6,JMAPI(Java管理API)提供了一套豐富的對象和方法的異構網路系統,網路和服務管理的發展。
7,JMS(Java消息服務),提供企業簡訊服務,如可靠的消息隊列,發布和訂閱通信,以及推 - 拉(推/拉)技術。
8,JTS(Java事務服務)提供開放的標准訪問事務資源,包括事務處理應用程序,事務處理,管理和監測這些事務處理資源。
關注JavaBean,它是一個開放的標準的組件體系結構,它是獨立於平台,但使用Java語言的Java技術,。一個JavaBean,以滿足JavaBeans規范的Java類通常定義了一個現實世界的事物或概念。一個JavaBean屬性,方法和事件的主要特點。通常情況下,在一個開發環境,支持JavaBeans規范(如Sun的Java Studio和IBM的VisualAge for Java)中,您可以直觀地操作的JavaBean,也可以使用JavaBean構建一個新的JavaBean。 JavaBean的優勢在於Java的可攜性。現在,EJB(企業JavaBeans)的JavaBean概念擴展到Java伺服器端組件體系結構,這個模型支持多層的分布式對象應用程序。除了到JavaBean,一個典型的組件體系結構DCOM和CORBA,在這些組件的體系結構的深入討論超出了本書的范圍。
Java的
計算機科學課程列表
JNI(Java本地介面)Java本機介面。
[編輯本段]
[Java開源J2EE框架Spring框架的Java開源項目]
Spring是一個解決方案,許多在J2EE開發功能強大的框架中的常見問題。 Spring提供了一個統一的管理業務對象的方法,並鼓勵他們養成良好的生活習慣注入介面編程,而不是編程的類型。 Spring框架的基礎是基於使用JavaBean屬性控制反轉容器。然而,這是完整的圖片只是其中的一部分:Spring IoC容器作為一個完成的建築關注所有架構層的完整解決方案是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大地提高了工作效率,並減少了出錯的可能性。 Spring的數據訪問架構還集成了Hibernate和其他O / R映射解決方案。 Spring還提供了一個唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。 Spring AOP框架提供了一個標準的Java語言,聲明式事務管理和其它企業服務 - 如果你需要 - 還能實現自己的方面的POJO。這個框架足夠強大,以使應用程序能夠拋開EJB的復雜性,同時享受關鍵服務和傳統EJB。 Spring還提供了集成和IoC容器強大而靈活的MVC Web框架。 [SpringIDE:Eclipse平台支持開發的一個插件。
WebWork的組件化和代碼重用【Java開源的Web框架]開發
WebWork是由OpenSymphony組織專門拉出MVC模式J2EE Web框架。 WebWork的最新版本是2.1,現在WebWork2.x的前身,里卡德奧伯格開發的WebWork的WebWork的已經被分成兩個項目Xwork1和webwork2的。 Xwork簡潔,靈活功能強大,它是一個標準的Command模式,並且完全從web層脫離出來。 XWork之上提供了很多核心功能:前端攔截器(Interceptor)運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL - 對象圖形標記語言)的IoC(控制反轉控制反轉)容器。在建立XWork的頂部webwork2的處理HTTP的響應和請求。 webwork2的使用的ServletDispatcher HTTP請求轉化為行動(業務層Action類)的映射會話(session)的應用范圍(應用程序),請求的請求參數映射。 webwork2的支持多視圖的視圖部分可以使用JSP,速度,FreeMarker的的,JasperReports,XML。在WebWork2.2增加了對AJAX的支持,這種支持是建立的基礎上的DWR與Dojo框架【EclipseWork:用於WebWork的一個Eclipse插件,幫助開發人員
的Struts【Java開源的Web框架]
Struts是一個基於J2EE平台的MVC框架,主要是採用Servlet和JSP技術。 Struts應用程序開發人員可以完全滿足需求,易於使用,靈活快速亂舞在過去的一年。 Struts的的Servlet,JSP,自定義標簽和信息資源(信息資源)整合到一個統一的框架,開發人員可以使用它的發展不再需要自己編碼實現全套MVC模式,極大的節約的時間,讓是Struts是一個非常不錯的應用框架。 StrutsIDE:對Struts協助開發一個Eclipse插件]
休眠[開放源碼的Java持久化框架]
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行非常輕量級的對象編程思維對象的封裝性,使任意的Java程序員可以使用它來操縱資料庫的。 Hibernate可以應用任何場合使用JDBC,無論是客戶端程序在Java實用程序也可以使用一個Servlet / JSP的Web應用程序中,最具革命性的,Hibernate可以取代CMP EJB的J2EE架構的應用程序來完成數據持久化的重要任務。 Hibernate在Eclipse平台的輔助開發工具:【使用Hibernate Synchronizer】【MiddlegenIDE
石英[Java的開源作業調度】
Quartz是OpenSymphony的開源組織在該領域的工作安排的一個開源項目,它可以與J2EE,J2SE應用程序相結合也可以單獨使用。 Quartz可以用來創建簡單或運行十,百,甚至是數以十萬計的就業機會,每天的日程是如此復雜。 Jobs可以做成標準的Java組件或EJBs。石英石英1.5.0的最新版本。
速度【Java開源模板引擎
Velocity是一個基於java的模板引擎(模板引擎)。它允許任何人僅僅簡單的使用模板語言模板語言來引用由java代碼定義的對象。速度應用於web開發時,界面設計和java程序開發人員同步開發遵循MVC架構的網站,也就是說,頁面設計人員可以專注於顯示的頁面,java程序開發人員關注業務邏輯編碼。速度java代碼從網頁中分離出來,便於長期維護的網站,同時也為我們在JSP和PHP提供了另一種解決方案。 Velocity的能力遠超過網路網站的發展在這方面,例如,它可以產生SQL和PostScript的,XML模板(模板),它也可以被用來作為一個獨立的工具,以產生源代碼和報告,或者作為其他系統的集成組零件。速度還提供了模板服務的汽輪機的web開發框架(模板服務)。速度+渦輪機提供一個模板服務,允許Web應用程序開發一個真正的MVC模型。 【VeloEclipse:發展速度的輔助插件Eclipse平台]
IBATIS [開放源碼的Java持久化框架
使用的iBatis提供的ORM機制,在人事方面,實現了業務邏輯,面對純Java對象,這一層通過Hibernate ORM而言基本相同的具體的數據操作,Hibernate會自動生成SQL語句,ibatis的要求開發者編寫具體的SQL語句。相對Hibernate的「全自動」ORM機制,ibatis的SQL開發的工作量和資料庫移植性上的讓步,系統設計提供了更大的自由空間。實現的有益補充,作為「全自動」ORM ibatis的外觀顯得特別有意義。
Compiere的ERP&CRM【Java開源的ERP和CRM系統
Compiere的ERP&CRM提供全面的解決方案,為全球小型和中小型企業,涵蓋所有領域,從客戶管理,供應鏈,財務,管理,支持多組織,多幣種,多會計模式,多成本,多語種,多稅收國際化的特徵。易於安裝,易於實施,易於使用。只需要幾個小時,你可以用采購 - 采購 - 發票 - 付款報價 - 訂單 - 發票 - 收款,產品定價,資產管理,客戶關系,供應商關系,員工關系,的運作分析功能強大的結果。
滾子Weblogger【Java開源Blog博客]
網路博客更復雜的設計,源代碼是一個很好的學習材料。它應該支持網路博客的功能,如:評論功能,所見即所得的HTML編輯器,引用,提供了頁面模板,RSS聚合的blogroll,管理,並提供了一個XML-RPC介面。
Eclipse的Java的開放源代碼開發工具]
Eclipse平台的開發框架,IBM捐贈給開放源代碼社區,不是因為它是著名的IBM聲稱-4千萬美元投資的發展,總數的資金,但如此巨大的投資,因為結果:一個成熟的,精心設計的,可擴展的體系結構。
的NetBeans【Java開源開發工具]
NetBeans IDE是一個軟體開發提供了免費,開源的集成開發環境。你可以得到所有的工具,你需要使用Java,C / C + +甚至是Ruby來創建專業的桌面應用程序,企業應用程序,web和移動應用程序。 IDE可以在多種平台上運行,包括Windows,Linux和Mac OS X中,和Solaris,這是非常易於安裝和易於使用的。
XPlanner【Java開源的項目管理
XPlanner一個基於Web的XP團隊計劃和跟蹤工具。 XP獨特的開發概念,如迭代,用戶故事,,XPlanner提供了相應的管理工具,XPlanner支持XP開發流程,並解決遇到的問題的使用XP想法的開發項目。 XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(虛擬筆記卡)迭代的用戶故事和工作記錄的追蹤,未完成的故事會自動迭代,工作時間追蹤,生成團隊效率,個人考勤表,SOAP界面支持。
HSQLDB【Java開源DBMS資料庫
HSQLDB(高超聲速SQL)是一個純Java的關系資料庫的開發,並提供了一個JDBC驅動程序來訪問數據。支持ANSI-92標准SQL語法。而且他占的空間小。大約只有160K,快速的資料庫引擎。
Liferay的【Java的開源門戶和
代表一個完整的J2EE應用程序,使用Web,EJB以及JMS等技術,特別是在前面部分使用Struts框架技術的介面,XML-基於portlet配置文件可以自由動態擴展,使用Web服務來支持一些遠程訪問的信息,Apahce Lucene的全文搜索功能。
Jetspeed的?【Java開源的門戶門戶]
Jetspeed是一個開放源代碼的企業信息門戶(EIP)的實現,使用的技術是Java和XML。信息門戶的用戶可以使用瀏覽器,支持WAP協議的手機或其他設備訪問Jetspeed的架設。 Jetspeed的所扮演的角色的信息集中器,它可以把信息一起,很容易地提供給用戶。
的JOnAS【Java開源的J2EE伺服器]
的JOnAS是一個開放源代碼的J2EE實現的ObjectWeb協會開發。集成Tomcat或Jetty成為它的Web容器,以確保符合Servlet 2.3和JSP 1.2規范。 JOnAS伺服器的依賴,實現以下的Java API:JCA,JDBC,JTA,JMS,JMX,JNDI,JAAS,JavaMail的。
JFox3.0【Java開源的J2EE伺服器使用
JFox是一個開源的Java EE應用伺服器,致力於提供一個輕量級的Java EE應用伺服器,從3.0開始,JFox提供了一個支持模塊化MVC框架,以簡化EJB和Web應用程序的開發!如果您正在尋找一個簡單,重量輕,高效,全面的Java EE開發平台,JFox正是你需要的。
[編輯本段] Java的IDE
當今最流行的Eclipse,Myeclipse中,Jbuilder2008,Jdeveloper的,Netbeans的。 [編輯本段] Java「一書
Java編程思想(第4版)
:(美)埃克爾,陳薅怦翻譯
JAVA編程思想(第四版)出版社:機械工業出版社
出版日期:2007-6-1詞:版次:1頁數:880印刷時間:2007/06/01開本:印象:紙張:膠版紙ISBN:9,787,111,213,826包裝:平裝
關於作者
Bruce Eckel的是MindView公司的總裁,該公司提供的軟體,其客戶的咨詢和培訓。他的C + +標准委員會的投票成員之一,擁有應用物理學學士和計算機工程碩士學位。除了這本書外,他是一個「C + +編程思想」的人合作撰寫的「C + +編程思想,第2卷」(兩本書的英文影印版和中國版引入了由機械工業出版社出版)及其他著作。他已發表了150多篇論文,還經常參加世界各地的研討會並發表演講。
[編輯本段] Java版本歷史
Java語言誕生於1995年,
日,1996年,第一個JDK-JDK1.0出生的
1996年4月,10個最重要的操作系統供應商確認其產品中嵌入JAVA技術
1996年9月,約83,000 Web應用程序的JAVA技術,使
1997年2月18日一天,JDK1.1版本
1997年的JavaOne大會,參與者超過百萬人,創下了類似的全球規模的會議記錄
1997年,JavaDeveloperConnection社區成員超過10萬
1998年,JDK1.1被下載超過200萬次
在1998年,JAVA2企業平台發布
1999年,Sun發布了Java J2EE三個版本:標准版(J2SE),企業版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3發布 /> 2000年5月29日,JDK1.4 2001年,諾基亞公司宣布,2003年將銷售100萬的Java功能的手機
2月2001年9月24日,2010年,J2EE1.3
2002年, 26日,J2SE1.4,因為Java的計算能力已顯著增加
9月30日,2004 18:00 PM,J2SE1.5發布,成為Java語言的發展歷史的又一個里程碑。要顯示版本的重要性,J2SE1.5更名為Java SE 5.0的
2005年JavaOne大會上,Sun公司公開Java SE 6中。在這一點上,各種版本的Java已經被重新命名為取消一個數字「2」:J2EE更名為Java EE,J2SE更名為更名為Java SE,J2ME的Java ME
2006年12月,Sun發布了JRE6目前JDK7.0 0.0
在研究和開發,有測試版的的 https://jdk7。 dev.java.net / 可下載
[編輯本段] Java的互聯網
我們知道,以前的WWW不僅可以發送文字和圖片,Java的互動式頁的的出現是一個偉大的革命。
的Java,設計不是互聯網,萬維網,它也可以被用來編寫獨立的應用程序。 Java是一種面向對象的語言,Java語言是C + +語言,所以我們必須掌握C + +編程語言,再學習Java語言是很容易的! Java程序需要編譯,它被放置在互聯網伺服器上,當用戶對伺服器的訪問,Java程序被下載到本地用戶的機器,解釋的瀏覽器中運行。實際上有兩種Java程序的Java應用程序是一個完整的程序,如Web瀏覽器。另一個Java應用程序運行在一個Web瀏覽器程序。
Java程序其瀏覽器Hotjava中,提供了一種方法,可以讓你的瀏覽器中運行的程序。您可以直接從您的瀏覽器來播放聲音,你可以播放動畫,Java的也可以告訴你如何處理與一個新的類型的文件瀏覽器的頁面。當我們能夠在2400波特線來傳輸視頻圖像,Hotjava中能夠顯示視頻。
[編輯本段] Java和電子商務
,電子商務是當今的一個熱門話題,傳統的編程語言,但是,不能做電子商務系統,電子商務程序代碼的基本要求:安全,可靠,做生意的世界各地,在不同的平台上運行的客戶機的要求。 Java的強大的安全性,平台無關的,獨立的硬體結構,用簡單的語言,面向對象,並在網路編程語言中占據無可比擬的優勢,成為電子商務系統的首選語言。
[編輯本段] Java的8個基本數據類型和它們的包裝類
int基本數據類型的包裝類的原始類型的份額
短短2個位元組的整數中的位元組數4個位元組
長8個位元組
浮子的4個位元組
雙人大床8個位元組
位元組位元組1個位元組
CHAR字元2個位元組
布爾布爾測試編譯環境
[編輯本段]第一個JAVA程序的HelloWorld
/ /文件名的HelloWorld.java
/ /聲明公共類一類
的HelloWorld { / /聲明一個方法
公共靜態無效的主要(字串[] args){/ /程序入口
/ /輸出
(「世界你好!); BR />}
}
/ /例子
包的文本;
類測試(
公共靜態無效的主要(字串[] args){...... />短D = 12,/ /短整型的
System.out.println(D); / / D
長,C = 144L; / /長整數添加L
系統通過out.println(C)/ /輸出
詮釋Z = 15; / /整數
System.out.println(Z)/ /輸出
字元E ='I 「/ /字元」
System.out.println(五);/ /輸出è
}
)
[編輯本段] Java新手入門是非常重要的一個一些基本的概念
[1] [2] [3]最後一類:為防止他人從你的類派生出新的類,它是不可擴展的。
動態調用比靜態調用花費的時間要長。
抽象類:規定一個或多個抽象方法的類本身必須定義為abstract。
案件:公共抽象的字元串getDescripition
Java的每一個類都是從Object類擴展。和
平等和對象類的toString方法。
等於用於測試一個對象是否與另一個對象是相等的。
的toString返回一個字元串,幾乎每一個類的對象將覆蓋此方法,以便返回當前狀態的正確表示。
(toString方法是一個很重要的方法)
泛型編程:所有的值?任何類型可以是同一對象類的變數,而不是。
數組列表:ArrayList的動態數組列表,是一個類庫,定義在java.uitl包可自動調節數組的大小。
類的類對象類的getClass方法返回一個類型的實例的類,它包含的主要方法的類會被載入在程序啟動時,虛擬機是所有他需要的類,每一個載入的類載入必須載入它需要的類。
Ⅷ 如何查看javaJDK中底層源碼
在初次使用java時,往往我們對最基本的java類會忽略對其內部基本的實現的了解,也往往不屑於了解其內部實現機制,以為它們本來就是這樣子。而其實貫穿java的整個過程,所有上層的使用,都是源於對底層的擴展,所以要真正去了解這門語言,就必須得從其底層開始認真去了解它。而要深入了解,就需要更多去關注其內部的實現是怎樣子的。
在使用IDE的過程中,我們經常會需要能在IDE中就可以便捷的去查看java的源碼,但若沒有做相關設置,一般在IDE是查看不了java源碼的,此次提供在eclipse中設置查看java源碼的方式。
設置步驟如下:
1.點 「window」-> "Preferences" -> "Java" -> "Installed JRES"
2.此時"Installed JRES"右邊是列表窗格,列出了系統中的 JRE 環境,選擇你的JRE,然後點邊上的 "Edit...", 會出現一個窗口(Edit JRE)
3.選中rt.jar文件的這一項:「c:program filesjavajre_1.8lib
t.jar」
點 左邊的「+」 號展開它,
4.展開後,可以看到「Source Attachment:(none)」,點這一項,點右邊的按鈕「Source Attachment...」, 選擇你的JDK目錄下的 「src.zip」文件(該文件在JDK安裝目錄的根目錄下)
5.一路點"ok",設置完成
設置完成後,按住ctrl鍵再用滑鼠單擊某一個jdk方法名或類名,便能看到該方法的源代碼了。此外按F3也能實現。
PS:rt.jar包含了jdk的基礎類庫,也就是你在java
doc裡面看到的所有的類的class文件;src.zip文件裡面放著的正是基本類所對應的源文件(即*.java格式的文件);同理,我們可以去網上下載各個JAVA開源框架所對應的源代碼包,比如spring-src.zip,然後再按照上面的設置步驟設置,就可以查看到對應的JAVA框架源代碼了。
轉自:網頁鏈接
Ⅸ 什麼是java源代碼 怎麼查看
不知道你說的是瀏覽器的還是什麼的,
如果是瀏覽器的那麼簡單找到工具-查看源代碼,你就能看見代碼了,
還有一個就是被編譯成class文件的java用反編譯工具可以看到源代碼,
如果以上都不是你想要的答案,那麼你所說的代碼就是程序員寫好的代碼文件
Ⅹ java源代碼寫到哪裡
我來回答,Javascript是一種由Netscape的LiveScript發展而來的腳本語言,主要目的是為了解決伺服器終端語言,比如Perl,遺留的速度問題。當時服務端需要對數據進行驗證,由於網路速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。於是Netscape的瀏覽器Navigator加入了Javascript,提供了數據驗證的基本功能。
歷史
在1992年,Nombas開始開發一種嵌入式腳本語言,叫做C-minus-minus(Cmm)。[待續...
能夠具有交互性,能夠包含更多活躍的元素,就有必要在網頁中嵌入其它的技術。如:Javascript、VBScript、Document Object Model(文件目標模塊)、Layers和 Cascading Style Sheets(CSS),這里主要講Javascript。那麼Javascript是什麼東東?Javascript就是適應動態網頁製作的需要而誕生的一種新的編程語言,如今越來越廣泛地使用於Internet網頁製作上。 Javascript是由 Netscape公司開發的一種腳本語言(scripting language),或者稱為描述語言。在HTML基礎上,使用Javascript可以開發互動式Web網頁。Javascript的出現使得網頁和用戶之間實現了一種實時性的、動態的、交互性的關系,使網頁包含更多活躍的元素和更加精彩的內容。 運行用Javascript編寫的程序需要能支持Javascript語言的瀏覽器。Netscape公司 Navigator 3.0以上版本的瀏覽器都能支持 Javascript程序,微軟公司 Internet Explorer 3.0以上版本的瀏覽器基本上支持Javascript。微軟公司還有自己開發的Javascript,稱為JScript。 Javascript和Jscript基本上是相同的,只是在一些細節上有出入。 Javascript短小精悍, 又是在客戶機上執行的,大大提高了網頁的瀏覽速度和交互能力。 同時它又是專門為製作Web網頁而量身定做的一種簡單的編程語言。
雖然,在Dreamweaver的Behaviors可以為我們方便地使用Javascript程序而不用編寫代碼,但我們自己了解了Javascript的編程方法後,將能更加方便靈活地應用,也使Javascript的代碼更簡練。本專題通過對一系列典型程序的剖析,使你快速地掌握Javascript的編程技巧,設計出質量上乘的動態網頁打下堅實的基礎。在此之前,我們先了解一些Javascript 的基本概念。
JavaScript 有什麼特點
JavaScript 使網頁增加互動性。JavaScript 使有規律地重復的HTML文段簡化,減少下載時間。JavaScript 能及時響應用戶的操作,對提交表單做即時的檢查,無需浪費時間交由 CGI 驗證。JavaScript 的特點是無窮無盡的,只要你有創意。
Java 與 JavaScript 有什麼不同
很多人看到 Java 和 JavaScript 都有「Java」四個字,就以為它們是同一樣東西,連我自己當初也是這樣。其實它們是完完全全不同的兩種東西。Java,全稱應該是 Java Applet,是嵌在網頁中,而又有自己獨立的運行窗口的小程序。Java Applet 是預先編譯好的,一個 Applet 文件(.class)用 Notepad 打開閱讀,根本不能理解。Java Applet 的功能很強大,可以訪問 http、ftp等協議,甚至可以在電腦上種病毒(已有先例了)。相比之下,JavaScript 的能力就比較小了。JavaScript 是一種「腳本」(「Script」),它直接把代碼寫到 HTML 文檔中,瀏覽器讀取它們的時候才進行編譯、執行,所以能查看 HTML 源文件就能查看JavaScript 源代碼。JavaScript 沒有獨立的運行窗口,瀏覽器當前窗口就是它的運行窗口。它們的相同點,我想只有同是以 Java 作編程語言一點了。
開發 JavaScript 該用什麼軟體
一個 JavaScript 程序其實是一個文檔,一個文本文件。它是嵌入到 HTML 文檔中的。所以,任何可以編寫 HTML 文檔的軟體都可以用來開發 JavaScript。在此我推薦大家用 FrontPage 2000 附帶的 Microsoft 腳本編輯器(在 FrontPage 菜單 | 工具 | 宏 | Microsoft 腳本編輯器)。它是個像 Visual Basic / C++ 一樣的程序開發器,能對正在輸入的語句作出簡要提示。配合 FrontPage 2000,使工作量大大減少。
一、Javascript在網頁的用法
Javascript加入網頁有兩種方法:
1、直接加入HTML文檔
這是最常用的方法,大部分含有Javascript的網頁都採用這種方法,如:
<script language="Javascript">
<!--
document.writeln("這是Javascript!採用直接插入的方法!");
//-Javascript結束-->
</script>
在這個例子中,我們可看到一個新的標簽: <script>……</script>,而<script language="Javascript」> 用來告訴瀏覽器這是用Javascript編寫的程序,需要調動相應的解釋程序進行解釋。
HTML的注釋標簽<!--和-->:用來去掉瀏覽器所不能識別的Javascript源代碼的,這對不支持 Javascript 語言的瀏覽器來說是很有用的。
//-Javascript結束:雙斜杠表示 Javascript的注釋部分,即從//開始到行尾的字元都被忽略。 至於程序中所用到的document.write()函數則表示將括弧中的文字輸出到窗口中去, 這在後面將會詳細介紹。 另外一點需要注意的是,<script>……</script>的位置並不是固定的,可以包含在<head>......</head> 或<body>.....</body>中的任何地方。
2、引用方式 如果已經存在一個Javascript源文件(以js為擴展名),則可以採用這種引用的方式,以提高程序代碼的利用率。其基本格式如下:
<script src=url language="Javascript"></script>
其中的Url就是程序文件的地址。同樣的,這樣的語句可以放在HTML文檔頭部或主體的任何部分。 如果要實現「直接插入方式」中所舉例子的效果,可以首先創建一個Javascript源代碼文件「Script.js」,其內容如下:
document.writeln("這是Javascript!採用直接插入的方法!");
在網頁中可以這樣調用程序:<script src="Script.js" language="Javascript"></script> 。
二、Javascript基本概念
在這里只作簡單介紹,在以後的例子中結程序再作具體解釋其作用。
1、運算符
運算符就是完成操和的一系列符號,它有七類:
賦值運算符、算術運算符、比較運算符、邏輯運算符、條件運算、位操作運算符和字元串運算符。
2、表達式
運算符和操作數的組合稱為表達式,通常分為四類:賦值表達式、算術表達式、布爾表達式和字元串表達式。
3、語句
Javascript程序是由若干語句組成的,語句是編寫程序的指令。Javascript提供了完整的基本編程語句,它們是:
賦值語句、switch選擇語句、while循環語句、for循環語句、do while循環語句、break循環中止語句和continue循環中斷語句。
4、函數
函數是命名的語句段,這個語句段可以被當作一個整體來引用不著和執行。使用函數要注意以下幾點:
1)函數由關鍵字function定義;
2)函數必須先定義後使用,否則將出錯;
3)函數名是調用函數時引用的名稱,它對大小寫是敏感的,調用函數時不可寫錯函數名;
4)參數表示傳遞給函數使用或操作的值,它可以是常量,也可以是變數;
5)return語句用於返回表達式的值,也可以沒有。
5、對象
Javascript的一個重要功能就是基於對象的功能,通過基於對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發。
一組包含數據的屬性和對屬性中包含數據進行操作的方法,稱為對象。比如要設定網頁的背景顏色,所針對的對象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍色。
6、事件
用戶與網頁交互時產生的操作,稱為事件。絕大部分事都由用戶的動作所引發,如:用戶按滑鼠的按鈕,就產生onclick事件,若滑鼠的指針的鏈接上移動,就產生onmouseover事件等等。在Javascript中,事件往往與事件處理程序配套使用。
學習Javascript比較快速有效的方法是先熟悉一些基本概念,然後找幾個別人設計好的程序認真仔細地分析一遍,再稍作改動,再看看能否達到預期目的,不斷地舉一反三,既可以加深對一些參數、設計方法的理解,又可以快速地提高自己的水平。另外,再提醒一下:Javascript對大小寫是敏感的,特別是一些對象、方法、屬性的大小寫一定要一致,要養成一種良好的習慣,否則在調試程序時可要累死你了。
7、變數
如 var myVariable = "some value"; 9415希望對你有幫助!