phpjava架構
PHP與Java的主要區別體現在運行機制、庫函數實現、模板引擎、資料庫支持、並發實現、內存管理、部署方式、數據共享與持久連接、開發框架、大型應用支持、熱部署、資料庫訪問速度、持久連接設置、進程間數據共享、GC機制與內存管理、SAPI類型、HTTP伺服器功能、JIT支持與應用優化、並發性能、內存佔用與穩定性、部署便利性、對象編程方式、大型應用適應性與性能需求。
PHP具有opcache機制,能夠緩存opcode,支持JIT編譯優化。Java則在運行時通過解釋執行,使用HotSpot機制進行JIT編譯,以提高性能。PHP的庫函數多用C實現,Java的核心類庫用Java編寫,應用運行時需解釋執行用戶代碼及類庫。
PHP自帶模板引擎,而Java Web開發通常需要JSP容器或第三方模板引擎。PHP內置HTTP伺服器和sqlite資料庫,而Java Web開發則多依賴第三方Servlet容器如Tomcat。
PHP-FPM採用多進程架構,支持進程池隔離,PHP-FPM與Nginx類似,能夠有效利用多核並發處理。Java則依賴多線程實現並發。PHP支持多線程模式,如Apache的event MPM和Facebook的HHVM。
PHP-FPM與Apache MOD_PHP常駐內存,資源釋放徹底,內存管理由系統自動處理,PHP-FPM能夠自動管理崩潰的worker進程。Java多線程編程需要開發者參與錯誤處理,否則可能導致JVM崩潰。
PHP支持熱部署,依賴FTP上傳即可實現代碼更新,而Java實現熱部署較困難。PHP天然支持跨進程數據共享,通過session、Yac或SQLite實現。Java程序共享數據依賴JVM內存。
PHP的資料庫驅動如mysqlnd等性能與Java的JDBC驅動相當,支持持久連接,多個請求復用一個連接,無需頻繁打開資料庫連接。PHP與Java性能相當,適用於大多數Web應用,尤其是I/O密集型應用。
PHP與Java共同誕生於1995年,兩者功能與特點各具優勢。PHP更側重於快速開發框架,Java則提供更完整的類庫與面向對象編程支持。PHP適合開發I/O密集型應用,Java在計算密集型應用上具有優勢。
PHP支持多種SAPI,如php-cgi、php-fpm/hhvm、libphp7.so等,提供豐富的並發與內存管理選項,可滿足不同應用場景需求。PHP-FPM與Apache MOD_PHP的常駐內存與資源管理機制確保了高效穩定的服務運行。
JIT(即時編譯)機制在計算密集型應用中表現出色,但Web應用多為I/O密集型,編譯型語言的性能優勢在此類應用中並不顯著。PHP-FPM的內存佔用與穩定性在實際應用中得到了驗證,支持持久連接的配置,無需額外依賴。
Ⅱ php 架構和java架構的區別
PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。
通過對兩種語言寫的OA系統的比較,對這兩種語言的差異進行了一個全面的比較.
現在市場上的oa基本上可歸結為兩大陣營,即php陣營和java陣營。但對接觸oa不久的用戶來說,看到的往往只是它們的表相,只是明顯的價格差異,卻很難看出它們之間的實際差異。其實, PHP + MYSQL 不值錢不僅僅局限於oa軟體,而是整體上PHP + MYSQL開發的軟體都不如java開發的軟體值錢。為什麼PHP + MYSQL 的OA為什麼不值錢呢?首先得明白php和java之間的差異才行。
1、系統的技術架構比較
分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現「高內聚、低耦合」,也能將具體的問題割裂開來,易於控制、易於延展,更易於分配資源。PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。運用MVC的設計模式,可使oa系統具有更加高效、合理的系統架構。技術架構的落後,使運用php編寫的oa軟體系統先天不足,而後天又無法補足其先天上的劣勢。使得系統在可拓展性、需求應變性上與JAVA編寫的oa軟體系統的差距越來越大。架構的差距,註定了php做的oa充其量是個小家碧玉,始終無法和java這種大家閨秀同台競技。
2、資料庫訪問比較
PHP可編譯成具有與許多資料庫相連接的函數。將自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當更換使用的資料庫時,可以輕松地修改編碼以適應這樣的變化。但PHP提供的資料庫介面支持彼此不統一,比如對Oracle, MySQL,Sybase的介面,彼此都不一樣。由於PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強。
而Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫,訪問資料庫的介面比較統一。如果同樣是將開發的web應用從MYSQL數據數轉到ORACLE數據,PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發的便只需要很少的更改便能實現。
資料庫訪問方式的差異,奠定了php開發出的oa和java開發出來的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,後者卻是工業化的結晶,不僅能夠包容萬物而且速度上穩步提升。
3、安全性對比
在同是開源和跨平台的java面前,php丟掉了很多的優勢。在代碼的安全性上尤為突出。php的開發程序在別人拿到代碼後,可以很容易的進行修改。而java開發的程序由於無法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。加之系統架構的優勢,在安全性上php和java是相去甚遠。
如果非要將php和java在安全性上做個比較的話,同一個小偷光顧php那是隨便拿來隨便改,想拿什麼拿什麼,拿的高興還能大筆一輝某某到此一游。而光顧java的時候,便會發現警察把守,內設自動報警裝置,即便突破重重阻擾後進入居室。那值錢的東西都放在加密後的保險櫃中,只能望洋興嘆、鎩羽而歸。
4、前瞻性和拓展性
從整體來說,php適用於中小型系統,而java適用於大型系統。Php能夠將單一的事件做好,但卻不適合完成集成度較高的多項並發事件。為什麼說php適合中小型系統而不適合做大系統呢?
首先, php缺乏多層結構支持。而對於大型的系統負荷站點,只能採用分布計算。將資料庫、應用邏輯層和表示邏輯層彼此分開,並將同層的根據流量分開,組成二維數組。而php恰恰缺乏這種支持。
其次,PHP提供的資料庫介面不統一,要將多個不同的資料庫數據統一需要花費很大的力氣。而JAVA則沒有這種缺陷,可通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere,是通過CGI來提供支持的。
如果將Php比作將才,具備獨擋一方的能力。那麼java便是帥才,具有較好的前瞻性和拓展性,整體布局和協同能力強。能夠指揮千軍萬馬,最後逐鹿中原。
5、開發成本比較
既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間交*的區域較小。
軟體價格的高低很大程度上和自身成本和功能相掛鉤。php的入門門檻較低,絕大多數學過c的程序員都很容易轉型為php程序員,這使得php程序員的泛濫成災的同時,低成本的php軟體產品也層出不窮。以PHP最經典的組合PHP + MySQL + Apache為例,由於所有軟體都是開源免費的,所以投入並不高。
而java開發需要特定的環境,成長為一個合格的java程序員需要一定的時間,java程序員的成本也是php成本的幾倍。Java的web應用伺服器免費的有Tomcat、JBoss等,而要想具有很好的商業化服務便必須選用Web Sphere和 Web logic。這其中投入的成本無形中便超是php成本的N倍。所以,java開發oa的成本要遠遠高於php開發出來的同類軟體產品。但也正由於java開發的成本較高,很難實現抄襲和短期內逾越的可能,也使得java用開發出的產品門檻更高。
Ⅲ 大型網站中,php和java是怎麼結合的
PHP+JAVA的架構,特別是對於有復雜的用戶交互及高並發及後端還有復雜的業務的網站來說,如電商類網站,前端用PHP,可以做到快速開發,部署不用重啟,同時nginx + fastcgi + php的組合也是經得起高並發考驗的。後端的復雜業務處理(如訂單處理,購物車,庫存相關的)使用java來做實在是太合適了。不信你可以試試!
Ⅳ JAVA和PHP的區別
java應用的場景比較廣泛,人相對來講也比較多,php主要是用於網站方面,如果是用於建網站的話,php開發比較快速。
1,PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。
2,系統的技術架構比較,PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。
3,資料庫訪問比較,PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強,而Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫,訪問資料庫的介面比較統一。
4,開發成本比較,既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間的區域較小。
拓展資料:
Java(計算機編程語言)
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。
它可以比CGI或者Perl更快速地執行動態網頁。
用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
Ⅳ 怎麼理解【前台PHP,中間件用Java,底層用C/C++】
通常來說,做一個中小型網站或Web應用不會用多種服務端語言環境。
根據你所需要的網站需求決定要使用的技術架構。
首先PHP不是WEB前台技術(HTML+CSS+JavaScript才是,PHP與Web前端關系不大,這一點很多人都搞不清楚),PHP也是服務端的,說前台PHP個人感覺描述不當,你可以說表層PHP更准確點。PHP是解釋性語言,語言靈活、約束少、容錯高,即使代碼語法上寫錯了也未必影響整個網站的運行,適合實現低邏輯密度的業務處理。另外PHP的一些成熟框架也是支持插入中間件的。像博客、論壇、門戶網站等適合用PHP實現。
Java是一門比較健壯的語言環境,強類型、半編譯,可在運行時對自身代碼進行認知(反射),Java作為開源熱門,用Java編寫的實用工具如海洋般廣闊,所以利用Struts、Spring等成熟的JavaEE框架可以很方便地將這些工具作為中間層放置到Web應用當中。中間件通常是放置在原始服務端與客戶端之間的一個處理層,可能是個程序,也可能是一個伺服器(電腦),用於對原始數據進行進一步加工、篩選。Java十分適合製作業務邏輯比較復雜,對安全性、正確性與運行效率要求較高的網站或Web服務。像銀行系統、支付平台、在線聊天、網頁游戲等適合Java實現。
C/C++是目前大部分操作系統編寫時所用的語言,所以用C/C++可以很輕易地接觸到操作系統最底層的介面,C/C++很少用於網站或Web服務的開發。另外C/C++的編譯是平台相關的,同時也是平台最優化的,所以在復雜數據結構、演算法的處理能力上相較於其他語言有很大的優勢。像大型網游的伺服器可能由C/C++實現。