操做系統:java
1.Windows操做系統 git
⑴直觀、高效的面向對象的圖形用戶界面,易學易用程序員
⑵用戶界面統1、友好、漂亮web
⑶豐富的設備無關的圖形操做正則表達式
⑷多任務操做環境數據庫
2.Unix操做系統 編程
⑴UNIX系統是一個多用戶,多任務的分時操做系統windows
⑵UNIX的系統結構可分爲三部分:操做系統內核,系統調用,應用程序tomcat
⑶UNIX系統大部分是由C語言編寫的安全
⑷UNIX提供了豐富的,精心挑選的系統調用
⑸UNIX提供了功能強大的可編程的Shell語言做爲用戶界面
⑹UNIX系統採用樹狀目錄結構
⑺UNIX系統採用進程對換的內存管理機制和請求調頁的存儲方式
⑻UNIX系統提供多種通訊機制
3.Linux操做系統
⑴Linux的基本思想有兩點:第一,一切都是文件;第二,每一個軟件都有肯定的用途
⑵Linux是一款免費的操做系統,用戶能夠經過網絡或其餘途徑免費得到,並能夠任意修改其源代碼
⑶徹底兼容POSIX1.0標準
⑷多用戶、多任務操做環境;支持多種平臺
4.Mac OS操做系統
⑴全屏模式是新版操做系統中最爲重要的功能,一切應用程序都可以在全屏模式下運行
⑵任務控制整合了Dock和控制面板,並能夠窗口和全屏模式查看各類應用
⑶快速啓動面板的工做方式與iPad徹底相同,它以相似於iPad的用戶界面顯示電腦中安裝的一切應用,並經過App Store進行管理,用戶可滑動鼠標,在多個應用圖標界面間切換
⑷Mac App Store的工做方式與iOS系統的App Store徹底相同,他們具備相同的導航欄和管理方式
————————————————
應用服務器
Apache
Apache是世界使用排名第一的Web服務器軟件。它能夠運行在幾乎全部普遍使用的計算機平臺上,因爲其跨平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。同時Apache音譯爲阿帕奇,是北美印第安人的一個部落,叫阿帕奇族,在美國的西南部。也是一個基金會的名稱、一種武裝直升機等等。
Tomcat
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是不少的場合下被廣泛使用,是開發和調試JSP 程序的首選。對於一個初學者來講,能夠這樣認爲,當在一臺機器上配置好Apache 服務器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,因此當你運行tomcat 時,它實際上做爲一個與Apache 獨立的進程單獨運行的。
Weblogic
WebLogic是美國Oracle公司出品的一個application server,確切的說是一個基於JAVAEE架構的中間件,WebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。WebLogic Server具備開發和部署關鍵任務電子商務Web應用系統 所需的多種特點和優點。
Websphere
WebSphere 是 IBM 的軟件平臺。它包含了編寫、運行和監視全天候的工業強度的隨需應變 Web 應用程序和跨平臺、跨產品解決方案所須要的整個中間件基礎設施,如服務器、服務和工具。WebSphere 提供了可靠、靈活和健壯的軟件。
WebSphere 是一個模塊化的平臺,基於業界支持的開放標準。能夠經過受信任和持久的接口,將現有資產插入 WebSphere,能夠繼續擴展環境。WebSphere 能夠在許多平臺上運行,包括 Intel、Linux 和 z/OS。
WebSphere 是隨需應變的電子商務時代的最主要的軟件平臺,可用於企業開發、部署和整合新一代的電子商務應用,如B2B,並支持從簡單的網頁內容發佈到企業級事務處理的商業應用。WebSphere 能夠建立電子商務站點, 把應用擴展到聯合的移動設備, 整合已有的應用並提供自動業務流程。
JBoss
是一個基於J2EE的開放源代碼的應用服務器。 JBoss代碼遵循LGPL許可,能夠在任何商業應用中無償使用。JBoss是一個管理EJB的容器和服務器,支持EJB 1.一、EJB 2.0和EJB3的規範。但JBoss核心服務不包括支持servlet/JSP的WEB容器,通常與Tomcat或Jetty綁定使用。
IIS
"IIS"即(Internet Identity system)中文翻譯爲「互聯網識別體系。"IIS"在人們平常的工做中,是指企業有意識,有計劃地將本身企業的CI特徵經過互聯網向社會公衆主動地展現與傳播,使公衆在互聯網中對企業有一個可管理、符合企業傳播規範的印象和認識,以便消費者更好地認知並留下良好的印象。
對以上幾種服務器的對比和分析
Apache是一個靜態頁面,而Tomcat是一個動態頁面。若是想要在Apache環境下運行jsp動態網頁就須要一個jsp解釋器,而tomcat就是做爲一個解釋器來幫助在Apache的環境下執行動態頁面,Tomcat是先將靜態頁面轉換成java.類型文件,而後再以jsp.的文件形式運行。可是在處理靜態頁面時,tomcat就不如Apache那樣迅速,也不能對其進行配置。所以在現實的使用中,Tomcat是作爲一Apache的一個插件來顯示網站的動態頁面的。這樣可使網站具備更好的擴展性和安全性。
JBoss Web將Tomcat內核做爲其Servlet容器引擎,Tomcat,在很活動鏈接支持、靜態內容、大文件和HTTPS處理上表象不如JBoss那樣優越,同時Tomcat只能運行Java應用程序,企業在使用時Tomcat,這樣在使用時須要用Apache Web Server進行整合。
Apache支持全部的操做系統,能夠跨平臺使用,而IIS只能基於windows操做系統下使用,在開源代碼方面Apache是徹底開放免費的,而IIS是部分開源代碼。在安裝上IIS使用的是傻瓜式圖形化安裝,使用者只要按照提示安裝便可,可是Apache在安裝上相對複雜困難,在語言的運行方面Apache支持多種運行語言例如ASP,PHP,JSP,可是IIS若是要運行PHP須要反覆的配置才能運行。
WebLogic和WebSphere都是中間件,除作web容器外還支持一系列應用,如JMS,EJB等。兩者都是基於Java平臺來知足實時處理需求的,不一樣的版本與jdk版本兼容和有所不一樣;他們都基於sun公司的servlet來實現的.
從以上的對比來看,Apache的使用率以及在性能上都是是要優越於其餘應用服務器的,Apache與tomcat整合使用,能夠發揮更大做用,不論在靜態頁面仍是動態頁面上都能快速的運行,可是Apache的安裝配置方面要比其餘應用服務器複雜。與其餘的應用服務器相比較,在安全性能方面Apache也要優越於其餘應用服務器。
————————————————
數據庫
Oracle
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。能夠說Oracle數據庫系統是目前世界上流行的關係數據庫管理系統,系統可移植性好、使用方便、功能強,適用於各種大、中、小、微機環境。它是一種高效率、可靠性好的、適應高吞吐量的數據庫方案。
MySql
SqlServer
均可以建立多數據庫多用戶,我的傾向於Oracle一個數據庫中多個用戶的形式,MySQL多個數據庫多個用戶形式(最好每一個數據庫對應一個用戶)
MySQL中組函數在select語句中能夠隨意使用,但在Oracle中若是查詢語句中有組函數,那其餘列名必須是組函數處理過的,或者是group by子句中的列不然報錯
eg:
select name,count(money) from user;這個放在MySQL中沒有問題在Oracle中就有問題了。
MySQL有自動增加的數據類型,插入記錄時不用操做此字段,會自動得到數據值。Oracle沒有自動增加的數據類型,須要創建一個自動增加的序列號,插入記錄時要把序列號的下一個值賦於此字段。
CREATE SEQUENCE序列號的名稱(最好是表名+序列號標記)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的長度來定,若是定義的自動增加的序列號NUMBER(6),最大值爲999999
INSERT語句插入這個字段值爲:序列號的名稱.NEXTVAL
MySQL裏能夠用雙引號包起字符串,Oracle裏只能夠用單引號包起字符串。在插入和修改字符串前必須作單引號的替換:把全部出現的一個單引號替換成兩個單引號。
MySQL處理翻頁的SQL語句比較簡單,用LIMIT開始位置,記錄個數;PHP裏還能夠用SEEK定位到結果集的位置。Oracle處理翻頁的SQL語句就比較繁瑣了。每一個結果集只有一個ROWNUM字段標明它的位置,而且只能用ROWNUM<100,不能用ROWNUM>80。
如下是通過分析後較好的兩種Oracle翻頁SQL語句(ID是惟一關鍵字的字段名):
語句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 條件1 ORDER BY 條件2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 條件3;
語句二:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 條件1 ORDER BY 條件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 條件3;
長字符串的處理Oracle也有它特殊的地方。INSERT和UPDATE時最大可操做的字符串長度小於等於4000個單字節,若是要插入更長的字符串,請考慮字段用CLOB類型,方法借用Oracle裏自帶的DBMS_LOB程序包。插入修改記錄前必定要作進行非空和長度判斷,不能爲空的字段值和超出長度字段值都應該提出警告,返回上次操做。
MySQL日期字段分DATE和TIME兩種,Oracle日期字段只有DATE,包含年月日時分秒信息,用當前數據庫的系統時間爲SYSDATE,精確到秒,或者用字符串轉換成日期型函數TO_DATE('2001-08-01','YYYY-MM-DD')年-月-日24小時:分鐘:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()還有不少種日期格式,能夠參看Oracle DOC.
日期型字段轉換成字符串函數TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS')
日期字段的數學運算公式有很大的不一樣。MySQL找到離當前時間7天用DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)Oracle找到離當前時間7天用 DATE_FIELD_NAME >SYSDATE - 7;
MySQL中插入當前時間的幾個函數是:NOW()函數以`'YYYY-MM-DD HH:MM:SS'返回當前的日期時間,能夠直接存到DATETIME字段中。CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,能夠直接存到DATE字段中。CURTIME()以'HH:MM:SS'的格式返回當前的時間,能夠直接存到TIME字段中。例:insert into tablename (fieldname) values (now())
而Oracle中當前時間是sysdate
MySQL的非空字段也有空的內容,Oracle裏定義了非空字段就不允許有空的內容。按MySQL的NOT NULL來定義Oracle表結構,導數據的時候會產生錯誤。所以導數據時要對空字符進行判斷,若是爲NULL或空字符,須要把它改爲一個空格的字符串。
MySQL裏用字段名like%'字符串%',Oracle裏也能夠用字段名like%'字符串%'但這種方法不能使用索引,速度不快,用字符串比較函數instr(字段名,'字符串')>0會獲得更精確的查找結果。
程序和函數裏,操做數據庫的工做完成後請注意結果集和指針的釋放。
MySQL通常使用自動增加類型,在建立表時只要指定表的主鍵爲auto increment,插入記錄時,不須要再指定該記錄的主鍵值,MySQL將自動增加;Oracle沒有自動增加類型,主鍵通常使用的序列,插入記錄時將序列號的下一個值付給該字段便可;只是ORM框架是隻要是native主鍵生成策略便可。
————————————————
開發工具
IntelliJ IDEA
IDEA 全稱 IntelliJ IDEA,是java編程語言開發的集成環境。IntelliJ在業界被公認爲最好的java開發工具之一,尤爲在智能代碼助手、代碼自動提示、重構、J2EE支持、各種版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能能夠說是超常的。IDEA是JetBrains公司的產品,這家公司總部位於捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程序員爲主。它的旗艦版本還支持HTML,CSS,PHP,MySQL,Python等。免費版只支持Python等少數語言。
Eclipse
Eclipse 是一個開放源代碼的、基於Java的可擴展開發平臺。就其自己而言,它只是一個框架和一組服務,用於經過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。
MyEclipse,是在eclipse 基礎上加上本身的插件開發而成的功能強大的企業級集成開發環境,主要用於Java、Java EE以及移動應用的開發。MyEclipse的功能很是強大,支持也十分普遍,尤爲是對各類開源產品的支持至關不錯。
Netbeans
NetBeans是Sun公司(2009年被甲骨文收購)在2000年創立的開放源代碼供開發人員和客戶社區的家園,旨在構建世界級的Java IDE。NetBeans當前能夠在Solaris、Windows、Linux和Macintosh OS X平臺上進行開發,並在SPL(Sun公用許可)範圍內使用。
1)代碼格式化:
IntelliJ IDE,Eclipse IDE以及Java NetBeans IDE在代碼格式化方面相似。這些技術可以格式化整個源文件、被選中的部分源文件以及用戶特定的代碼。
2)查找和替換:
全部這三種IDE都支持帶大小寫匹配和正則表達式等選項的查找和替換功能。
Eclipse包含了一個爲實現查找和替換的通用對話框,這個對話框覆蓋着編輯器的窗口。
IntelliJ具備一個實現替換的特殊對話框窗口和一個實現查找的快速自動彈起頂條。IntelliJ的設計很巧妙。
NetBeans 使用了類似的方式,但它的自動彈出窗口是在編輯器窗口的底部。
3)代碼補全:
這三種IDE中都有類似的代碼補全功能,同時它們的設計也是相同的。IntelliJ具備一個被稱爲「駝峯(Camel Hump)」的特性,其功能是在單詞列表中查找合適的文本。
4)用戶提示:
Eclipse:一個像燈泡同樣的圖標會出如今左邊條上,左邊條帶有某行所對應的行號。當光標停留在這個燈泡圖標上時,具備提示做用的解釋文本就會彈出,同時一整列的解決方案隨即就顯示出來了。
IntelliJ:使用IntelliJ的用戶須要在解決方安列的提示文本上手動點擊來得到用戶提示。
NetBeans:使用NetBeans時,用戶須要在提供可能的解決方案提示文檔上以滾動滑條的方法獲得用戶提示。
宏
NetBeans:Netbeans支持宏編輯和幫助。用戶能夠移動、重命名、編輯和設置快捷方式。幸運的是,每隔兩個位置用戶就能夠爲宏編輯快捷方式,但用戶在沒有設置快捷方式的狀況下是不可以運行宏的。
InelliJ:在使用IntelliJ時,用戶能夠對宏進行記錄、編輯和重命名。用戶不能設置宏的快捷方式。一旦用戶設置了宏名,那麼宏就會被自動添加。
Eclipse:Eclipse IDE不支持宏特性。
5)語法高亮
全部這三種IDE都支持語法高亮。它們都容許用戶改變預約義顏色。
6)代碼導航
導航器的一些特性以下:
◆結構視圖
◆過濾器
◆快速查找
◆彈出導航器
NetBeans IDE,Intellij和Eclipse支持結構視圖、過濾器和快速查找。而NetBeans IDE和IntelliJ不支持彈出導航器特性,但Eclipse支持這項特性。
7)任務管理:
任務管理一些特定的子部分以下:
◆活動(active)源文件中的任務列表
◆項目中德任務列表
◆過濾
◆新任務定義
Eclipse:它具備經典的任務視圖。它容許用戶根據諸如描述、資源、路徑、地點和優先級等可得到的域對任務進行分類。它支持工程中的任務列表,過濾以及新任務定義。
NetBeans IDE:-NetBeans IDE具備和Eclipse相同的任務管理方式。可是它不支持任務優先級。NetBeans IDE在不一樣的窗口中能夠顯示錯誤。
IntelliJ IDE:它具備一個任務樹狀視圖,任務樹的葉子是任務,節點是文件。從一個任務移動到另外一個任務是個困難而複雜的過程。它的設置中有一個默認的TODO命令。
8)重構
重構的特定子部分以下:
◆Find用法
◆重命名
◆移動
◆安全刪除
Eclipse IDE:Eclipse IDE支持find用法、重命名和移動特性。當一個用戶打算改變或者重命名一個方法時,標示符將會被設置成高亮,用戶繼而能夠改變相應的方法名。
IntelliJ: IntelliJ支持Find用法、重命名、安全刪除和移動特性,在用戶新命名、重構、預覽和刪除按紐以前,一個單視圖會呈如今用戶眼前。
NetBeans IDE:NetBeans支持全部四項功能(find用法,重命名,移動以及安全刪除)。Netbeans的預覽設計同Eclipse相似。但它的預覽窗口是在屏幕下方顯示,程序員瀏覽起來不大方便。
9)自動代碼生成:
自動代碼生成有兩個字部分,它們是
◆構造器
◆設置器/得到器(Getters)
NetBeans IDE:NetBeans IDE支持函數構造器和設置器。
IntelliJ IDE:支持函數構造器和設置器。
Eclipse:Eclipse也具備相似設計,同時支持函數構造器和設置器,它還具備一些其餘能力,好比設置插入點,進而能夠在該點處生成代碼。