個人看法:
成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(成都創(chuàng)新互聯(lián)).為客戶提供專業(yè)的成都聯(lián)通服務(wù)器托管,四川各地服務(wù)器托管,成都聯(lián)通服務(wù)器托管、多線服務(wù)器托管.托管咨詢專線:18980820575
1、已知事實
首先說明的是,京東至今的技術(shù)選型依然還是.NET架構(gòu),如(),顯然京東的前端架構(gòu)是使用ASP.NET應(yīng)用程序的。
2、性能的誤解
目前主流的Web使用開發(fā)架構(gòu)有:php,jsp(java),aspx(asp.net c#或vb.net),有人認(rèn)為.net開發(fā)的產(chǎn)品在性能方面是低下的.那么事實是真的就這樣嗎?答案是錯的。個人認(rèn)為開發(fā)一款軟件的運行性能如何完全取決于開發(fā)者的能力水平。
3、足夠的硬件設(shè)備做支撐
只要肯花銀子,什么負(fù)載均衡,文件緩存基本上不存在問題。
4、原基礎(chǔ)架構(gòu)本身就很好
原基礎(chǔ)架構(gòu)本身就完美,成熟。
5、語言無關(guān)性
真正的高手:重視算法思想,程序設(shè)計思想,架構(gòu)思想。與具體語言無關(guān)。語言只是把想法展示出來而已。
VB6.0采用可視化的編程環(huán)境,它好學(xué)易用,運行VB6.0后,會出現(xiàn)如下圖所示的窗口,呵呵,看起來蠻復(fù)雜的,好多的按鈕、菜單、小窗口,別擔(dān)心,待會兒我們會一起學(xué)習(xí)這些東東都是干什么用的。
先來解決一個小問題,怎么新建一個VB的工程呢?方法是這樣的,在程序啟動時出現(xiàn)的“新建工程”對話框中選擇“標(biāo)準(zhǔn)EXE”并點擊確定,就能直接新建一個工程,如果你跳過了這個對話框則也可從“文件”菜單中選擇“新建工程”重新調(diào)出此對話框。
下面一起來看看VB的編程環(huán)境,雖然看起來復(fù)雜,但可以把它分為幾個部分,每個部分都有自己特定的功能,這樣我們就清楚多了。其實VB這是通過這樣一個界面把相近或同類的功能組合在一起的,它使我們在設(shè)計程序時能方便的控制程序的方方面面。
JAVA:
◇ 創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計語言,而不是面向過程的語言;
◇ 提供一個解釋執(zhí)行的程序運行環(huán)境,是程序代碼獨立于平臺;
◇ 吸收C和C++的優(yōu)點,使程序員容易掌握;
◇ 去掉C和C++中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請和釋放;
◇ 實現(xiàn)多線程,使得程序能夠同時執(zhí)行多個任務(wù);
◇ 提供動態(tài)下載程序代碼的機制;
◇ 提供代碼校驗機制以保證安全性;
Java語言的特點(1)
1. 簡單、面向?qū)ο蠛蜑槿怂煜?/p>
java的簡單首先體現(xiàn)在精簡的系統(tǒng)上,力圖用最小的系統(tǒng)實現(xiàn)足夠多的功能;對硬件的要求不高,在小型的計算機上便可以良好的運行。和所有的新一代的程序設(shè)計語言一樣,java也采用了面向?qū)ο蠹夹g(shù)并更加徹底,所有的java程序和applet程序均是對象,封裝性實現(xiàn)了模塊化和信息隱藏,繼承性實現(xiàn)了代碼的復(fù)用,用戶可以建立自己的類庫。而且java采用的是相對簡單的面向?qū)ο蠹夹g(shù),去掉了運算符重載、多繼承的復(fù)雜概念,而采用了單一繼承、類強制轉(zhuǎn)換、多線程、引用(非指針)等方式。無用內(nèi)存自動回收機制也使得程序員不必費心管理內(nèi)存,是程序設(shè)計更加簡單,同時大大減少了出錯的可能。java語言采用了C語言中的大部分語法,熟悉C語言的程序員會發(fā)現(xiàn)Java語言在語法上與C語言極其相似。
2. 魯棒并且安全
java語言在編譯及運行程序時,都要進行嚴(yán)格的檢查。作為一種強制類型語言,java在編譯和連接時都進行大量的類型檢查,防止不匹配問題的發(fā)生。如果引用一個非法類型、或執(zhí)行一個非法類型操作,java將在解釋時指出該錯誤。在java程序中不能采用地址計算的方法通過指針訪問內(nèi)存單元,大大減少了錯誤發(fā)生的可能性;而且java的數(shù)組并非用指針實現(xiàn),這樣就可以在檢查中避免數(shù)組越界的發(fā)生。無用內(nèi)存自動回收機制也增加了Java的魯棒性。
作為網(wǎng)絡(luò)語言,java必須提供足夠的安全保障,并且要防止病毒的侵襲。java在運行應(yīng)用程序時,嚴(yán)格檢查其訪問數(shù)據(jù)的權(quán)限,比如不允許網(wǎng)絡(luò)上的應(yīng)用程序修改本地的數(shù)據(jù)。下載到用戶計算機中的字節(jié)代碼在其被執(zhí)行前要經(jīng)過一個核實工具,一旦字節(jié)代碼被核實,便由java解釋器來執(zhí)行,該解釋器通過阻止對內(nèi)存的直接訪問來進一步提高java的安全性。同時java極高的魯棒性也增強了Java的安全性。
3. 結(jié)構(gòu)中立并且可以移植
網(wǎng)絡(luò)上充滿了各種不同類型的機器和操作系統(tǒng),為使java程序能在網(wǎng)絡(luò)的任何地方運行,java編譯器編譯生成了與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)文件格式。任何種類的計算機,只有在其處理器和操作系統(tǒng)上有java運行時環(huán)境,字節(jié)碼文件就可以在該計算機上運行。即使是在單一系統(tǒng)的計算機上,結(jié)構(gòu)中立也有非常大的作用。隨著處理器結(jié)構(gòu)的不斷發(fā)展變化,程序員不得不編寫各種版本的程序以在不同的處理器上運行,這使得開發(fā)出能夠在所有平臺上工作的軟件集合是不可能的。而使用Java將使同一版本的應(yīng)用程序可以運行在所有的平臺上。
體系結(jié)構(gòu)的中立也使得java系統(tǒng)具有可移植性。java運行時系統(tǒng)可以移植到不同的處理器和操作系統(tǒng)上,java的編譯器是由java語言實現(xiàn)的,解釋器是由Java語言和標(biāo)準(zhǔn)C語言實現(xiàn)的,因此可以較為方便的進行移植工作。
1.2.4 Java語言的特點(2)
4. 高性能
雖然java是解釋執(zhí)行的,但它仍然具有非常高的性能,在一些特定的CPU上,java字節(jié)碼可以快速的轉(zhuǎn)換成為機器碼進行執(zhí)行。而且java字節(jié)碼格式的設(shè)計就是針對機器碼的轉(zhuǎn)換,實際轉(zhuǎn)換時相當(dāng)簡便,自動的寄存器分配與編譯器對字節(jié)碼的一些優(yōu)化可使之生成高質(zhì)量的代碼。隨著java虛擬機的改進和"即時編譯"(just in time)技術(shù)的出現(xiàn)使得Java的執(zhí)行速度有了更大的提高。
5. 解釋執(zhí)行、多線程并且是動態(tài)的
如果你了解C語言和C++語言,可以參考下列Java與C/C++語言的比較,如果不了解C語言和C++語言,可以忽略本部分知識。
a. 全局變量
Java程序不能定義程序的全局變量,而類中的公共、靜態(tài)變量就相當(dāng)于這個類的全局變量。這樣就使全局變量封裝在類中,保證了安全性,而在C/C++語言中,由于不加封裝的全局變量往往會由于使用不當(dāng)而造成系統(tǒng)的崩潰。
b. 條件轉(zhuǎn)移指令
C/C++語言中用goto語句實現(xiàn)無條件跳轉(zhuǎn),而Java語言沒有g(shù)oto語言,通過例外處理語句try、catch、finally來取代之,提高了程序的可讀性,也增強了程序的魯棒性。
c. 指針
指針是C/C++語言中最靈活,但也是最容易出錯的數(shù)據(jù)類型。用指針進行內(nèi)存操作往往造成不可預(yù)知的錯誤,而且,通過指針對內(nèi)存地址進行顯示類型轉(zhuǎn)換后,可以類的私有成員,破壞了安全性。在java中,程序員不能進行任何指針操作,同時Java中的數(shù)組是通過類來實現(xiàn)的,很好的解決了數(shù)組越界這一C/C++語言中不做檢查的缺點。
d. 內(nèi)存管理
在C語言中,程序員使用庫函數(shù)malloc()和free()來分配和釋放內(nèi)存,C++語言中則是運算符new和delete。再次釋放已經(jīng)釋放的內(nèi)存塊或者釋放未被分配的內(nèi)存塊,會造成系統(tǒng)的崩潰,而忘記釋放不再使用的內(nèi)存塊也會逐漸耗盡系統(tǒng)資源。在Java中,所有的數(shù)據(jù)結(jié)構(gòu)都是對象,通過運算符new分配內(nèi)存并得到對象的使用權(quán)。無用內(nèi)存回收機制保證了系統(tǒng)資源的完整,避免了內(nèi)存管理不周而引起的系統(tǒng)崩潰。
e. 數(shù)據(jù)類型的一致性
在C/C++語言中,不同的平臺上,編譯器對簡單的數(shù)據(jù)類型如int、float等分別分配不同的字節(jié)數(shù)。例如:int在IBM PC上為16位,在VAX-11上就為32位,導(dǎo)致了代碼數(shù)據(jù)的不可移植。在java中,對數(shù)據(jù)類型的位數(shù)分配總是固定的,而不管是在任何的計算機平臺上。因此就保證了Java數(shù)據(jù)的平臺無關(guān)性和可移植性。
f. 類型轉(zhuǎn)換
在C/C++語言中,可以通過指針進行任意的類型轉(zhuǎn)換,不安全因素大大增加。而在Java語言中系統(tǒng)要對對象的處理進行嚴(yán)格的相容性檢查,防止不安全的轉(zhuǎn)換。
g. 頭文件
在C/C++語言中使用頭文件聲明類的原型和全局變量及庫函數(shù)等,在大的系統(tǒng)中,維護這些頭文件是非常困難的。java不支持頭文件,類成員的類型和訪問權(quán)限都封裝在一個類中,運行時系統(tǒng)對訪問進行控制,防止非法的訪問。同時,Java中用import語句與其它類進行通信,以便訪問其它類的對象。
h. 結(jié)構(gòu)和聯(lián)合
C/C++語言中用結(jié)構(gòu)和聯(lián)合來表示一定的數(shù)據(jù)結(jié)構(gòu),但是由于其成員均為公有的,安全性上存在問題。Java不支持結(jié)構(gòu)和聯(lián)合,通過類把數(shù)據(jù)結(jié)構(gòu)及對該數(shù)據(jù)的操作都封裝在類里面。
i. 預(yù)處理
C/C++語言中有宏定義,而用宏定義實現(xiàn)的代碼往往影響程序的可讀性,而Java不支持宏定義
Visual Basic .NET Visual Basic.NET是基于微軟.NET Framework之上的面向?qū)ο蟮闹虚g解釋性語言,可以看作是Visual Basic在.Net Framework平臺上的升級版本,增強了對面向?qū)ο蟮闹С?。但由于改動太大,?dǎo)致VB.net對VB的向后兼容性不好,在業(yè)界引起不小的爭議。 大多的VB.Net程序員使用Visual Studio .Net作為IDE(integrated development environment). SharpDevelop是另一種可用的開源的IDE。VB.Net需要在.Net Framework平臺上才能執(zhí)行。 VB.NET的主頁 1 目前版本 2005年9月以來,存在三種不同版本的Visual Basic .NET. 1 Visual Basic .NET:是隨vc#和ASP.NET一起在2002年發(fā)布的最初始的VB.net版本。C#被大力宣傳為微軟對付JAVA的王牌,受到媒體極力關(guān)注。然而VB.NET(有時被稱為VB7)影響面不廣,這導(dǎo)致VB社區(qū)之外很少人關(guān)注它。那些試用過此版VB.NET的人在層層幕布下發(fā)現(xiàn)一個強大卻艱深的語言,而且還有不少弱點,比如它比VB6來有一個大了十倍的進行時(RunTime),內(nèi)存footprint也大大增加。 2 Visual Basic .NET 2003:是和.NET Framework 1.1一起發(fā)布的。新功能包括對.NET Compact Framework的支持和更好的VB升遷向?qū)А2⒏倪M了運行狀況,IDE穩(wěn)定性(尤其是后臺編譯器),以及運行時RunTime穩(wěn)定性。另外,VB.NET 2003還有一個學(xué)院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分發(fā)給各國某些學(xué)者免費使用的版本。 3 Visual Basic 2005:VB2005是VB.Net的重大轉(zhuǎn)變,微軟決意在其軟件名稱中去掉了.NET部份。在VB2005中,微軟增加了許多新功能,以引用VB對于初學(xué)者來說的一些優(yōu)點: A, Edit and Continue - 也許是從VB那里丟掉的最大的功能,允許代碼的編輯和執(zhí)行立即的執(zhí)行恢復(fù)。 B, Design-time expression evaluation C, My偽命名空間,提供了訪問.NET Framework特定域的不需大量編碼的簡單方式;還能動態(tài)產(chǎn)生類(顯然的是My.Forms);提供了改進的VB到VB.NET轉(zhuǎn)換向?qū)?;Using 語法,簡化了需要部署pattern to free resources的對象的使用;My編碼,可隱藏由VB.NET IDE寫的模板代碼;數(shù)據(jù)源綁定,簡化了數(shù)據(jù)庫C/S開發(fā) 上述功能(尤其是My)增強了VB.Net成為快速開發(fā)應(yīng)用平臺的可能,并與C#進一步區(qū)別開來。參見: 使用My開發(fā) 通過My命名空間訪問.NET Framework 和項目 Visual Basic 2005 通過增加新功能而填補了和其它所謂更強大的.NET語言的差距。 A, 增加了.NET 2.0語言功能包括:generics和Partial類(在一個文件里定義一個類的某部份然后再添加更多的定義,這個方法在整合用戶編碼和系統(tǒng)自動生成編碼時尤其有用)。 B, XML注釋,可以被NDoc等工具處理而自動生成文檔 C, operator overloading D, 支持在其它語言中已經(jīng)廣泛使用的unsigned integer數(shù)據(jù)類型。 E, 支持在許多C衍生編程語言已提供的復(fù)合操作符如:"+=", "-=" 4, IsNot專利:If Not X Is Y表達(dá)式被轉(zhuǎn)換成If X IsNot Y。當(dāng)微軟為IsNot申請專利時招致了惡名(尤其來自Real公司)。 5, Visual Basic 2005 Express:作為VS產(chǎn)品線上的一部份,VB2005 Express是專為業(yè)余愛好者和新手定制的免費的VS Express系列的一員。Express版本目的定位在幫助人們學(xué)習(xí)一種語言,所以他們有和標(biāo)準(zhǔn)版一致的用戶界面,只是少了一些高級功能。另外,VS 查看更多答案
記得采納啊