『壹』 j2ee具體包括哪些東西
一、准備篇
1 什麼是J2EE?它和普通的java有什麼不同?
答:J2EE全稱為Java2 Platform, Enterprise Edition。
「J2EE平台本質上是一個分布式的伺服器應用程序設計環境——一個Java環境,它提供了:
·宿主應用的一個運行基礎框架環境。
·一套用來創建應用的Java擴展API。」(引自《J2EE伺服器端高級編程》)
2 J2EE好學嗎?
答:J2EE是很多技術的集合體,並且還在成長中。
你會遇到很多專有名詞:比如(X)HTML,Servlet/JSP,JDBC,JMS,JNDI,EJB,XML,Web Service……。
尤其是XML和Web Service正在快速成長。幸運的是,你不需要等到學會所有技術後再開始編程。
大體上J2EE可以分成3個主要應用:Servlet/JSP,EJB,XML/Web Service 和一些支撐技術例如JDBC和JNDI。
你可以一個一個的學。
3 J2EE有什麼用?
答:用來建設大型的分布式企業級應用程序。或者用更時髦的名詞說就是「電子商務」應用程序。
這些企業可能大到擁有中心資料庫伺服器,Web伺服器集群和遍布全國的辦公終端,也可能小到只不過想做一個網站。
4 學J2EE有前途嗎?
答:在這一市場目前只有一種技術可以和J2EE競爭,那就是Microsoft的.NET。
相對來說.NET要「新」一些而J2EE要「老」一些。
但是.NET只能用於Windows平台(Microsoft聲稱要開發C#在Linux上的虛擬機但是尚未兌現該諾言),
考慮到Linux的發展勢頭,你可以相信.NET不會一統天下。
5 據說J2EE的性能不如.NET好,是真的嗎?
答:在Sun公司提供的樣常式序Pet Store上,Microsoft聲稱不如相同的.NET程序好。
而Sun公司反駁說這一程序不能真正體現J2EE的性能,並且指責Microsoft在資料庫上做了優化。
作者沒有學習過.NET因而不能妄下斷言。
無論如何,大型分布式程序中的性能瓶頸通常首先來則譽自於錯誤的設計。
6 聽你說了這么多,我想學著玩玩。
答:除非你想靠它當飯吃或者作為技術儲備,否則請不要浪費你的時間。
Flash要好玩得多。計算機游戲就更加好玩了。
7 學習J2EE該怎麼開始?
答:首先,下載一個J2EE伺服器。其次,去java.sun.com下載J2EE的API。第三,找一本好的參考書。最後,找一個順手的IDE。
J2EE伺服器。你可以用Sun的J2EE SDK(免費),或者Weblogic(性能最好,但是太大,而且作者不推薦盜版行為),或者JBoss(免費,就是文檔太少),或者JRun(開發版免費,作者用這個)。參考書作者感覺Wrox的《彎猜J2EE伺服器端高級編程》不錯,但是太老(作者手頭的是2001年中文版)。你還需要去下載一些最新的技術資料(當然肯定是英文的)。
IDE如果你的機器配置夠好(內存至少512M以上,256M或以下請勿考慮),可以用IBM的WSAD,不然就繼續用Eclipse或者其他。
你也可以經常去水木清華的Java版逛逛,但是在發貼前先看看精華區里有沒有你要的答案。
8 我下了一個J2EE伺服器但是不會配置。
答:請認真閱讀隨機指導文檔,不同的伺服器的配置都不一樣,作者愛莫能助。
9 我發現你沒有提到Tomcat。
答:Tomcat只是一個Web伺服器,更准確地說主要只是一個Web Container。
如果你想要學習EJB的話,Tomcat無法滿足你的需要。
二、 Servlet/JSP篇
10 什麼是Servlet?
答:一個Servlet是一個Java類。它處理Http(s)請求並作出響孫鬧段應,包括返回一個HTML頁面或轉交給其他URL處理。
Servlet必須運行在一個Web Container例如Tomcat中。
Servlet必須是javax.servlet.http.Http Servlet的子類,
你可以繼承doGet()或者doPost()方法,兩者分別對應於Http(s)中的Get請求和Post請求。
11 我怎麼獲得Http請求里的參數?
答:HttpRequest的getParameter()方法。例如:String paramValue = request.getParameter("paramName");
12 我怎麼返回結果?
答:你可以利用相關API打開一個輸出流,並向流中直接寫入一個HTML頁面。
但是作者完全不贊成這樣做。一方面這樣做會很羅嗦。
另一方面從Model-View-Controller模式(在《J2EE核心模式》中被歸為Front Controller模式)的觀點來看,
你應當提供一些HTML或者JSP作為視圖(view),而Servlet則根據請求參數決定轉到哪一個視圖。
你可以利用response.sendRedirect(...)方法或request.getDispatcher(...).forward()方法來實現。
13 sendRedirect()和forward()有什麼不同?
答:sendRedirect()是向瀏覽器發送一個redirect通知,瀏覽器重定向到新的URL。
而forward是在伺服器端直接轉到新的URL,對於瀏覽器是透明的。
前者瀏覽器的地址欄顯示的是新的URL,後者瀏覽器的地址欄顯示的是Servlet的URL。
因而當目標URL會自動刷新時,兩者會造成一些差別。
14 我寫了一個Servlet程序,怎麼運行它?
答:開發J2EE程序有一個部署(deploy)的概念,實際上是開發——部署——運行的三部曲。
大多數伺服器支持Hot deploy。你只需要在相應的Application目錄(具體路徑依賴於伺服器)下面
建立一個符合WAR或EAR格式(參見16,17)的目錄,啟動伺服器,就可以通過瀏覽器訪問了。
特別的,你的Servlet的class文件應當放在/WEB-INF/classes目錄中。
注意J2EE SDK不支持Hot deploy,你需要通過它的deploy tool來部署。
Tomcat只支持WAR格式。
15 EAR和WAR有什麼不同?
答:EAR是一個完整的J2EE應用程序,包括Web部分和EJB部分。
WAR只是其中的Web部分。
16 EAR格式是怎樣的?
答:一個EAR可以包含任意多個WAR或EJB JAR,並且包含一個META-INF的目錄。
在/META-INF中包含了一個application.xml,其中描述了這個EAR包含哪些模塊,以及安全性配置。
細節請看參考書。
17 WAR格式是怎樣的?
答:一個WAR包含一個WEB-INF的目錄,這個目錄下包含classes目錄,lib目錄和web.xml。
/WEB-INF/classes存放按package組織的class文件,/WEB-INF/lib目錄存放jar文件,
web.xml描述了很多東西,請讀參考書。
18 我的普通HTML文件應當放在哪裡?
答:放在除了/WEB-INF以外的其他地方。
19 我訪問不到servlet,甚至連HTML文件都訪問不到!
答:第一你沒啟動伺服器。第二你敲錯了埠。第三你沒有正確配置context-path。
第四你的伺服器不支持auto reload或者你關閉了這一選項,你得重啟伺服器。
第五確認你沒有把HTML放在/WEB-INF目錄下,那是訪問不到的。
20 我能訪問HTML但是訪問不到servlet。
答:請檢查你的web.xml文件。確保你正確定義了<servlet>和<servlet-mapping>元素。
前者標識了一個servlet,後者將一個相對於context-path的URL映射到一個servlet。
在Tomcat中你可以通過/context-path/servlet/package/servletname的形式訪問servlet,
但是這只是Tomcat的便捷訪問方式,並不是正式規范。
細節請看參考書。
21 什麼是JSP?它和Servlet有什麼區別?
答:你可以將JSP當做一個可擴充的HTML來對待。
雖然在本質上JSP文件會被伺服器自動翻譯為相應的Servlet來執行。
可以說Servlet是面向Java程序員而JSP是面向HTML程序員的,除此之外兩者功能完全等價。
『貳』 一個高級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方向而言(另外還有C++、C#等多種):
Unix/Linux操作系統
Unix開發環境
Unix操作系統概述、Unix文件系統、Unix的Kernel和Shell、遠程登錄的原理、用戶管理命令、基本文件和目錄操作命令、Unix操作系統的特殊字元、使用vi命令編輯文本文件、使用FTP進行文件傳輸、初始化文件及環境變數的配置、Shell腳本及crontab命令。
熟練掌握Sun Solaris Unix系統基本操作命令,能夠勝任Unix/Linux系統下的Java程序開發和管理工作。
Java SE開發
Java語言基礎
Java SE 6.0核心語念稿尺法歸納講解,包括Java語言的特點、環境的配置、開發基本命令、類的定義技巧、方法調用過程、對象生成原理與內存分布、標識符、關鍵字和數據類型、運算符和表達式、Java商業運算要點、流程式控制制語句、Java數組和鏈表等演算法和數據結構;同時掌握Eclipse開發工具的使用。
熟練掌握Java核心語法
Java面向對象編程
囊括了Java面向對象的精髓,包括面向對象三大特性——封裝、繼承與多態,各種修飾符在面向對象思想下的綜合運用,抽象類的特點和使用技巧,面向介面編程的思想和實踐,內部類的應用,JDK核心類包括Object、String、Date和Calendar等類的使用和設計思想,正則表達式,自動封箱和解箱,Java異常處理,Java集合框架,泛型的語法和使用等。
熟練掌握Java面向對象思想
Java高級應用
主要研究:中高級軟體工程師仔高的必修利器——Java反射編程,Java圖形開發組件的開發步驟和應用技巧,事件模型的設計理念和應用,Java多線程編程,Java的I/O流,Java網路編程等。
熟練掌握Java高級編程,這部分是作為高級程序員必須掌握的技術
XML語法與解析
XML(eXtensible Markup Language)的中文名稱是可擴展標記語言,是樹形的概念層次結構,簡而言之它就是一種保存結構化數據的格式。XML作為一種面向內容的描述語言,通過基於樹形數據結構的層次化概念分類體系模型,在很大程度上彌補了HTML作為網路標准語言在概念層次關系的語義表達上的不足。
主要學習內容:XML的意義、語法結構、XML良構的規范;DTD的意義和語法、使用名稱空間的技巧;Schema的意義、語法,使用Java API解析XML;基於Java DOM和SAX的XML處理技術。
掌握目前最通用的網路數據格式,並能熟練在商業開發中應用
資料庫編程
Oracle SQL
Oracle公司的Oracle資料庫產品是當今的高端企業級應用的主流產品。我們主要學習:Oracle 10g資料庫原理,SQL語句(DDL、DML、TCL、DCL)的語法,項目中經典SQL語句重現,Oracle資料庫函數包括字元函數、數值函數、日期函數、數據類型轉換函數以及組函數,資料庫的設計,表連接包括等值連接、非等值連接、自連接和外連接,SQL子查詢,Oracle序列對象在項目中的運用,索引及視圖,系統表的應用技巧,Oracle SQL的錯誤排查及調優解決方案。
掌握Oracle資料庫設計、操作和開發
MySQL資料庫
MySQL5.0資料庫的管理和開發要領,掌握MySQL和Oracle資料庫的異同點。
掌握MySql資料庫的設計、操作和開發
JDBC編程
JDBC為敬余Java開發者使用資料庫提供了統一的編程介面,使得開發人員可以使用純Java的方式來連接資料庫,並進行操作。學習的主要內容有:JDBC的編程步驟,重要的編程介面,JDBC異常處理,JDBC中使用事務,Batch Updates批量更新,Blob/Clob等新數據類型,JNDI,DataSource,資料庫連接池的管理等。逐步掌握基於JDBC的Oracle,SQLServer,DB2,MySQL等資料庫連接技術。
熟練掌握Java語言對各種資料庫的連接技術
系統分析與設計
軟體開發流程及UML
學習軟體開發過程包括瀑布模型、統一開發過程(USDP),CMMI5級軟體設計規范,掌握統一建模語言UML,掌握軟體的靜態建模和動態建模。掌握面向對象中對象的關系。
掌握軟體開發流程及UML
設計原則與模式
原則和模式是分析設計人員與程序員在開發過程中經驗的總結,學習模式就是獲取經驗。
掌握面向對象的設計原則:「開—閉」原則(OCP)、里氏代換原則(LSP)、依賴倒轉原則(DIP)、介面隔離原則(ISP)、組合/聚合復用原則(CARP)、迪米特法則(LoD)。
掌握主流的設計模式:工廠模式(Factory)、單例模式(Singleton)、觀察者模式(Observer)、組合模式(Composite)、狀態模式(State)等,以及重要的架構模式:Dao模式、MVC模式。
掌握面向對象的設計原則和模式。區別於激情代碼,重點在於知道軟體為什麼要這么做,保證代碼質量,保證科學的開發流程。按照CMM3的標准來設計軟體和管理開發過程。
Web開發基礎
HTML
基於瀏覽器的語言HTML:
了解HTML基本文檔結構、常用的meta,掌握HTML列表和表格基本操作,了解HTTP GET和POST請求及響應的協議格式,掌握表單的基本原理,掌握GET和POST提交方式及其區別,熟練掌握常用表單元素。
掌握企業級應用客戶端頁面技術
CSS
CSS意為層疊樣式表(Cascading Style Sheets)用於定義HTML元素的位置和樣式。CSS樣式定義通常存儲在單獨的文件中, 可以極大提高工作效率。掌握CSS基本語法和CSS選擇器,掌握CSS定位技術,了解CSS內外邊距、邊框等特性。
掌握企業級應用客戶端頁面樣式技術
JavaScript
基於瀏覽器的動態腳本技術JavaScript:
JavaScript 被設計用來向 HTML頁面添加交互行為,是一種被瀏覽器解釋執行的腳本語言。我們可以應用JavaScript來響應事件, 實現復雜交互,驗證數據, 提高系統健壯性,獲取和改變HTML元素及CSS屬性,動態改變頁面外觀,逐步向RIA(Rich Internet Applications)邁進。
掌握JavaScript基本數據類型及其運算,熟練使用數組、日期等,掌握基本的對於頁面元素的操作,掌握Prototype.js的基本方法,掌握HTML DOM模型,Window對象,操作Cookie,定時器等。
掌握企業級應用客戶端動態腳本技術
Java Web開發
Servlet編程
學習要點:Web伺服器的安裝和配置,編寫及部署Servlet,讀取請求信息,生成響應信息,維護客戶狀態,過濾請求和響應,監聽器的應用,對持久層資源的訪問,使用包裝器攔截響應,Session與Cookie技術,Servlet互操作,訪問應用上下文,MVC架構模式的思想和運用。
JSP編程
JSP是在Java伺服器端運行的頁面,JSP本身就是一個基於文本的文檔,他不僅可以包含靜態的HTML內容,也可以包含動態的Java代碼,伺服器容器可以將JSP轉換成Servlet發布,並接受請求,提供響應。
學習內容:JSP的特點、運行原理及執行過程,JSP的腳本元素,JSP指令的分類及詳解,JSP中中常用的動作,JavaBean組件在JSP中的應用,JSP內置對象詳解,JSP異常處理及提高程序健壯性要領,重定向與轉發的本質區別,URL回寫,自定義標簽要領,EL表達式,JSTL核心標簽庫,字元集的處理和國際化。
Web系統架構
著重掌握B/S架構、B/S/A/D架構下的程序設計與開發,深入理解Web MVC架構模式,完成Web應用的調試和部署,動態發布Web應用。
Ajax編程
Ajax(Asynchronous JavaScript and XML)由 HTML、JavaScript技術、DHTML和DOM組成,這一傑出的方式可以將笨拙的Web界面轉化成交互性優越的Ajax應用程序。
主要內容:Ajax技術構成及核心編程,發送請求及處理響應,Ajax數據傳輸格式(純文本、XML及JSON),XMLHttpRequest詳解,Ajax庫及框架介紹。
『伍』 java 初級、中級、高級工程師有什麼區別
初級水平(認知理解技術為主):
項目實戰方面:
1.能夠熟練使用三大框架或者springboot進行基本的業務開發,熟悉MVC架構
2.能寫工作流,熟悉常用的設計模式
java部分:
1.能熟練應用封裝,繼承,多態這三大特性。能熟練使用list,set等collection介面,及map介面。
2.對java的較為復雜的技術能夠靈活使用如:多線程,反射,io流,網路編程和資料庫編程
3.sql能夠熟練掌握,如子查詢,mybatis的復雜查詢
中級水平(利用技術解決復雜業務和理解技術的原理為主):
1.對常用的框架的原理有較清晰的理解,能夠掌握其設計思想和所用到的設計模式。
2.能獨立的完成項目的某些模塊的任務
3.能夠進行性能優化,代碼規范,編程習慣良好無冗餘代碼
4.對緩存,事務管理,日誌,分布式等復雜技術有著深入理解
高級水平(技術領導):
1.能對需求進行架構設計,選擇框架以適應最合適的業務,作為某個項目的領導,帶領團隊完成項目。
2.有自己的開源項目,可以寫出自己的組件,對開源的框架能夠進行二次編寫,java核心技術有著非常深入的理解
架構師
能管理多個高級工程師及以下級別,提升工作效率
其發展戰略可以參考下圖:
1、Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多 繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
2、Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅 的思維方式進行復雜的編程。
3、Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態 性等特點。
4、Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。 2018年9 月25日,Java11(18.9 LTS)正式發布,支持期限至2026年9月。
『陸』 什麼是腳本語言
腳本語言的定義腳本語言(Script languages,scripting programming languages,scripting languages)是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。此命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括操作系統層,如計算機游戲,網路應用程序,字處理文檔,網路軟體等。在許多方面,高級編程語言和腳本語言之間互相交叉,二者之間沒有明確的界限。一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組序列。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經超過簡單的用戶命令序列的指令,還可以編寫更復雜的程序。簡介腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。[1]它的命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批量處理語言或工作控制語言。[2]一個腳本通常是解釋運行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。[3](概述圖片來源:[4])特點1、腳本語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等編程語言之間。HTML通常用於格式化和鏈接文本。而編程語言通常用於向機器發出一系列復雜的指令。2、腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相像一些,其也涉及到變數。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些.3、與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。註:腳本語言一般都有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。Python、JAVASCRIPT,ASP,PHP,PERL,Nuva都是腳本語言。C/C++編譯、鏈接後,可形成獨立執行的exe文件。4、腳本語言是一種解釋性的語言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在,腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。5、腳本語言一般都是以文本形式存在,類似於一種命令。舉個例子說:如果建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件,為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件後,自己的程序用這種規則來理解編寫人的意圖,並作出回應,那麼,這一套規則就是腳本語言。[5]6、相對於編譯型計算機編程語言:用腳本語言開發的程序在執行時,由其所對應的解釋器(或稱虛擬機)解釋執行。系統程序設計語言是被預先編譯成機器語言而執行的。腳本語言的主要特徵是:程序代碼即是腳本程序,亦是最終可執行文件。腳本語言可分為獨立型和嵌入型,獨立型腳本語言在其執行時完全依賴於解釋器,而嵌入型腳本語言通常在編程語言中(如C,C++,VB,Java等)被嵌入使用。[1][6]7、和系統程序設計語言相比:不同是腳本語言是被解釋而系統程序設計語言是被編譯。被解釋的語言由於沒有編譯時間而提供快速的轉換,通過允許用戶運行時編寫應用程序,而不需要耗時的編譯/打包過程。解釋器使應用程序更加靈活,腳本語言的代碼能夠被實時生成和執行。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序設計師快速完成程序的編寫工作。[1]編輯本段腳本語言的優缺點優點快速開發:腳本語言極大地簡化了「開發、部署、測試和調試」的周期過程。容易部署:大多數腳本語言都能夠隨時部署,而不需要耗時的編譯/打包過程。同已有技術的集成:腳本語言被Java或者COM這樣的組件技術所包圍,因此能夠有效地利用代碼。易學易用:很多腳本語言的技術要求通常要低一些,因此能夠更容易地找到大量合適的技術人員。動態代碼:腳本語言的代碼能夠被實時生成和執行,這是一項高級特性,在某些應用程序里(例如JavaScript里的動態類型)是很有用也是必需的。[7]缺點腳本語言不夠全面:它們會要求一門「真正的」編程語言的存在,必須找一個資料庫驅動程序將其內置進腳本語言里。腳本語言並不是軟體工程和構建代碼結構的最佳選擇,例如面向對象和基於組件的開發。腳本語言通常不是「通用」語言,但是能夠根據專門的應用來調整,例如:PHP和萬維網。[7]編輯本段腳本語言的應用和發展一、應運(1):作為批次處理語言或工作控制語言。許多腳本語言用來執行一次性任務,尤其是系統管理方面。DOS,Windows的批處理文件和Unix的shell腳本都屬於這種應用;(2):作為通用的編程語言存在,如Perl、Python、Ruby等。由於「解釋執行,內存管理,動態」等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言;(3):許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦游戲系統使用一種自定義腳本語言來表現NPC(Non-Player Character,Non-Playable Character,Non-Player Class)和游戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如Quake C,Modeled After C),但它們有自定義的功能;(4):網頁中的嵌入式腳本語言。熟知的HTML(Hyper Text Mark-up Language)即超文本標記語言,就是一種腳本語言,它的解釋器就是瀏覽器。JavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標准化保證了它成為流行的通用嵌入式腳本語言。另外,隨著動態網頁技術發展,ASP、JSP、PHP等嵌入網頁的腳本語言正被廣泛使用,不過這些腳本要通過Web Server解釋,而Html則被瀏覽器執行;(5):腳本語言在系統應用程序中嵌入使用,作為用戶與系統的介面方式。在工業控制領域,PLC編程、組態軟體的腳本語言是擴充組態系統功能的重要手段;在通信平台領域,IVR(自動語音應答)流程編程;Office辦公軟體,提供的宏和VBA;其他應用軟體如ER Studio提供的Basic MacroEditor,用戶可以編寫Sax Basic腳本操作ER圖,生成Access庫、導出Word文檔等擴展功能。[8] 這類的常見的有JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua。腳本語言的特點是語法簡單,一般以文本形式保存,並且不需要編譯成目標程序,在調用的時候直接解釋。這可以當做是腳本語言的判斷標准,比如說JavaScript,你只需要用記事本新建一個Html文件,在裡面加上一段腳本就可以了,在瀏覽器打開Html文件時自然會調用JS腳本。[9]一、工作控制語言和shellShell 腳本此類腳本用於自動化工作控制,即啟動和控制系統程序的行為。大多的腳本語言解釋器也同時是命令行界面,如Unix shell和MS-DOS command。其他如AppleScript,可以為系統增加腳本環境,但沒有命令行界面。具體分類有:1.4NT2.AppleScript3.ARexx(Amiga Rexx)4.bash5.csh6.DCL7.JCL8.ksh9.Cmd.exe batch(Windows,OS/2)10.command batch(DOS)11.REXX12.tcsh13.sh14.Winbatch15.Windows PowerShell16.Windows Script Host17.zsh二、GUI 腳本GUI出現帶來一種專業的控制計算機的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動。它經常用來自動化重復性動作,或設置一個標准狀態。理論上它可以用來控制運行於基於GUI的計算機上的所有應用程序,但實際上這些語言是否被支持還要看應用程序和操作系統本身。當通過鍵盤進行互動時,這些語言也被稱為宏語言。具體分類有:1.AutoHotkey2.AutoIt3.Expect三、應用程序定製的腳本語言許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦游戲系統使用一種自定義腳本語言來表現NPC(non-player character,non-playable character,non-player class)和游戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。具體分類:1.Action Code Script2.ActionScript3.AutoLISP4.BlobbieScript5.Emacs Lisp6.Game Maker Language7.HyperTalk8.IPTSCRAE9.IRC script10.Lingo11.Matlab Embedded Language12.Maya Embedded Language13.mIRC script14.NWscript15.QuakeC16.UnrealScript17.Visual Basic for Applications18.VBScript19.ZZT-oop四、WEB編程腳本應用程序定製的腳本語言中有一種重要的類別,用於提供WEB頁面的自定義功能。它專業處理互聯網通信,使用網頁瀏覽器作為用戶界面。當然,大多現代WEB編程語言都比較強大可以做一些通用編程。具體分類:1.ColdFusion(Application Server)2.Lasso3.Miva4.SMX5.IPTSCRAE-一些網路開發團隊用於創建論壇的工具五、文本處理語言處理基於文本的記錄是腳本語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理調用UNIX基於文本的配置和LOG文件。Perl最早是用來產生報告的,現在它已經成了全面成熟的語言。具體分類:1.Awk2.Perl3.sed4.XSLT六、通用動態語言一些語言,比如Perl,從一門腳本語言發展成了更通用的編程語言。由於「解釋執行,內存管理,動態」等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言。1.APL2.Dao3.Dylan4.Groovy5.Lua6.MUMPS(M)[10]7.newLISP8.Nuva9.Perl10.PHP11.Python12.Ruby13.Scheme14.Smalltalk15.SuperCard16.Tcl(Tool command language)七、擴展/可嵌入語言少數的語言被設計通過嵌入應用程序來取代應用程序定製的腳本語言。開發者(如使用C等其它系統語言)包入使腳本語言可以控制應用程序的hook。這些語言和應用程序定製的腳本語言是同種用途,但優點在於可以在應用程序之間傳遞一些技能。具體分類:1.Ch(C/C++ interpreter)2.Dao3.ECMAScript亦稱DMDScript,JavaScript,JScript4.GameMonkeyScript5.Guile6.ICI7.Lua8.RBScript(REALbasic Script)9.Squirrel10.Tcl11.Z-ScriptJavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標准化保證了它成為流行的通用嵌入性語言。Tcl作為一種擴展性語言而創建,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。八、其它1.BeanShell(scripting for Java)2.CobolScript3.Escapade (server side scripting)4.Euphoria5.F-Script6.Ferite7.Groovy8.Gui4Cli9.Io10.KiXtart11.Mondrian12.Object REXX13.Pike14.Pliant15.REBOL16.ScriptBasic17.Shorthand Language18.Simkin19.Sleep20.StepTalk21.Visual DialogScript
具體的網路上有介紹,可以去看看~望採納!