自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

java和php在web開(kāi)發(fā)方面對(duì)比分析

開(kāi)發(fā) 前端
本文主要從8個(gè)方面對(duì)php和java在做web開(kāi)發(fā)方面的優(yōu)劣性做了分析對(duì)比,非常不錯(cuò)的一篇文章,這里推薦給小伙伴們。

比較php和jsp這兩個(gè)web開(kāi)發(fā)技術(shù),在目前的情況是其實(shí)是比較php和java的web開(kāi)發(fā)。以下是我就幾個(gè)主要方面進(jìn)行的比較:

[[128909]]

一、 語(yǔ)言比較

php是解釋執(zhí)行的服務(wù)器腳本語(yǔ)言,首先php有簡(jiǎn)單容易上手的特點(diǎn)。語(yǔ)法和c語(yǔ)言比較象,所以學(xué)過(guò)c語(yǔ)言的程序員可以很快的熟悉php的開(kāi)發(fā)。而java需要先學(xué)好java的語(yǔ)法和熟悉一些核心的類庫(kù),懂得面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。所以java不如php好學(xué)。

java首先要編譯成字節(jié)碼.class文件,然后在java虛擬機(jī)上解釋執(zhí)行。java的web開(kāi)發(fā)首先最容易想到的就是jsp(現(xiàn)在已經(jīng)到j(luò)sp2.0),原來(lái)的java的web開(kāi)發(fā)都是用servlet來(lái)實(shí)現(xiàn)的,用servlet來(lái)開(kāi)發(fā)需要程序員在java的源文件中嵌入大量的html代碼。所以后來(lái)就出現(xiàn)了jsp,jsp可以方便的嵌入到html文件當(dāng)中,其實(shí)jsp文件在服務(wù)器上執(zhí)行的時(shí)候首先會(huì)被應(yīng)用服務(wù)器轉(zhuǎn)換成servlet,然后再編譯執(zhí)行。jsp可以通過(guò)servlet和javabean的支持產(chǎn)生強(qiáng)大的功能。javabean 是一種可復(fù)用的、跨平臺(tái)的軟件組件。使用javabean可以方便的實(shí)現(xiàn)java代碼和html的分離,能夠增強(qiáng)系統(tǒng)的功能和軟件的復(fù)用性。

java的web開(kāi)發(fā)屬于sun公司定義的j2ee其中的規(guī)范。而且在j2ee中包括了java的web開(kāi)發(fā)的所有方面,如:jsp、servlet、jdbc、jndi、javabean、ejb等等。j2ee就特別適合于做大型的企業(yè)級(jí)的應(yīng)用。

二、 數(shù)據(jù)庫(kù)訪問(wèn)比較

java通過(guò)jdbc來(lái)訪問(wèn)數(shù)據(jù)庫(kù),通過(guò)不同的數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)驅(qū)動(dòng)方便地訪問(wèn)數(shù)據(jù)庫(kù)。訪問(wèn)數(shù)據(jù)庫(kù)的接口比較統(tǒng)一。

php對(duì)于不同的數(shù)據(jù)庫(kù)采用不同的數(shù)據(jù)庫(kù)訪問(wèn)接口,所以數(shù)據(jù)庫(kù)訪問(wèn)代碼的通用性不強(qiáng)。例如:用java開(kāi)發(fā)的web應(yīng)用從mysql數(shù)據(jù)庫(kù)轉(zhuǎn)到oracle數(shù)據(jù)庫(kù)只需要做很少的修改。而php則需要做大量的修改工作。

三、 系統(tǒng)設(shè)計(jì)架構(gòu)比較

采用java的web開(kāi)發(fā)技術(shù),需要使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)方法,而php還是采用面向過(guò)程的開(kāi)發(fā)方法。所以用java進(jìn)行開(kāi)發(fā)前期需要做大量的系統(tǒng)分析和設(shè)計(jì)的工作。

四、 跨平臺(tái)性

java和php都有很好的跨平臺(tái)的特性。幾乎都可以在不作任何修改的情況下運(yùn)行在linux或者windows等不同的操作系統(tǒng)上。

五、 開(kāi)發(fā)成本比較

php最經(jīng)典的組合就是:php + mysql + apache。非常適合開(kāi)發(fā)中小型的web應(yīng)用,開(kāi)發(fā)的速度比較快。而且所有的軟件都是開(kāi)源免費(fèi)的,可以減少投入。

java的web應(yīng)用服務(wù)器有免費(fèi)tomcat、jboss等,如果需要更好的商業(yè)化的服務(wù)有:web sphere和web logic。

六、 分布式多層架構(gòu)比較

php只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而java在這方面就比較強(qiáng)大,可以實(shí)現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。數(shù)據(jù)庫(kù)層(持久化層)、應(yīng)用(業(yè)務(wù))邏輯層、表示邏輯層彼此分開(kāi),而且現(xiàn)在不同的層都已經(jīng)有一些成熟的開(kāi)發(fā)框架的支持。例如struts就是利用java的web開(kāi)發(fā)技術(shù)實(shí)現(xiàn)了mvc的設(shè)計(jì)模式,而在業(yè)務(wù)邏輯層也有spring框架,數(shù)據(jù)庫(kù)持久化層有hibernate等框架。這些框架可以方便開(kāi)發(fā)者高效、合理、科學(xué)得架構(gòu)多層的商業(yè)應(yīng)用。

下面簡(jiǎn)要的說(shuō)一下struts,它實(shí)質(zhì)上是在jsp model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)mvc(model、view、controler)框架。jsp model2體系結(jié)構(gòu)是一種聯(lián)合使用jsp 與servlet 來(lái)提供動(dòng)態(tài)內(nèi)容的方法。在struts框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的javabean或ejb組件構(gòu)成,控制器由servlet實(shí)現(xiàn)的,視圖由一組jsp文件組成。采用struts可以明確角色的定義和開(kāi)發(fā)者與網(wǎng)頁(yè)設(shè)計(jì)者的分工。而且項(xiàng)目越復(fù)雜,其優(yōu)勢(shì)越明顯。

七、 源代碼安全

php開(kāi)發(fā)的程序的源代碼都是公開(kāi)的,他人拿到php開(kāi)發(fā)的程序后都可以進(jìn)行修改。

java開(kāi)發(fā)的程序,***用戶拿到的是只是一些編譯好的class類,無(wú)法看到完整的源代碼,安全性高。

八、性能比較

有人做過(guò)試驗(yàn),對(duì)這兩種種語(yǔ)言分別做回圈性能測(cè)試及存取oracle數(shù)據(jù)庫(kù)測(cè)試。

在循環(huán)性能測(cè)試中,jsp只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而php測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒。

數(shù)據(jù)庫(kù)測(cè)試中,二者分別對(duì) oracle 8 進(jìn)行 1000 次 insert,update,select和delete: jsp 需要 13 秒,php 需要 69 秒。

java和php在web開(kāi)發(fā)方面的比較

綜上所述,我個(gè)人認(rèn)為,php適合于快速開(kāi)發(fā),中小型應(yīng)用系統(tǒng),開(kāi)發(fā)成本低,能夠?qū)ψ儎?dòng)的需求作出快速的反應(yīng)。而java適合于開(kāi)發(fā)大型的應(yīng)用系統(tǒng),應(yīng)用的前景比較廣闊,系統(tǒng)易維護(hù)、可復(fù)用性較好。還有,同樣功能的系統(tǒng)用java開(kāi)發(fā)的系統(tǒng)要比php開(kāi)發(fā)的系統(tǒng)的價(jià)格要高。

以上就是本文的全部?jī)?nèi)容了,希望對(duì)大家能夠有所幫助。

責(zé)任編輯:王雪燕 來(lái)源: 站長(zhǎng)網(wǎng)
相關(guān)推薦

2009-01-20 09:12:16

PHPJava數(shù)據(jù)庫(kù)

2011-01-19 15:51:41

PHPjavaweb

2010-07-14 10:26:58

IMAP協(xié)議

2010-06-08 11:15:43

OpenSUSE Ub

2018-06-07 09:45:08

2010-07-20 16:16:21

SDH

2018-01-26 14:29:01

框架

2018-01-21 14:11:22

人工智能PaddlePaddlTensorflow

2023-05-14 22:00:01

2021-05-18 10:18:15

Java

2017-05-05 10:15:38

深度學(xué)習(xí)框架對(duì)比分析

2017-03-20 14:32:57

2010-08-04 15:47:24

NFS版本

2010-06-24 21:35:33

2013-01-17 16:11:11

數(shù)據(jù)中心交換機(jī)網(wǎng)絡(luò)虛擬化

2016-10-18 21:10:17

GitHubBitbucketGitLab

2021-03-15 08:40:46

數(shù)據(jù)分析波動(dòng)

2023-05-18 07:30:16

OpenCLGPU平臺(tái)生態(tài)

2023-06-05 07:35:03

2015-11-16 15:37:13

編排工具集群管理對(duì)比
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)