Java、Javascript、Javaweb三者的區(qū)別及說明
首先說一下java 與 javaweb之間的關(guān)系
我們平常說的Java一般指Java SE,也就是Java Standard Edition,Java的標(biāo)準(zhǔn)版,一般用來開發(fā)桌面應(yīng)用程序,但是在開發(fā)桌面應(yīng)用程序上相對VB,Delphi,VC++并沒有什么優(yōu)勢。
JavaWeb則到了Java EE領(lǐng)域了,也就是Java Enterprise Edition,Java的企業(yè)版,看那個(gè)web就應(yīng)該想到是與Internet有關(guān)的,其實(shí)開發(fā)JavaWeb應(yīng)用程序,初級的一般是用JSP(Java Server Pages)+servlet+Javabean來開發(fā)的,對大型的網(wǎng)站一般是使用框架來開發(fā)的,例如struts,hibernate,spring,例如校內(nèi),你在登陸的時(shí)候會(huì)在地址欄看見Login.do,登陸以后會(huì)看見Home.do這樣的請求,典型的struts框架結(jié)構(gòu)。
Java還有一個(gè)版本是JavaME,Java Micro Edition,Java的微型版,諾基亞手機(jī)上運(yùn)行的Java程序就是指用這個(gè)版本開發(fā)的程序。
再者,說一下Java與Javascript之間的關(guān)系
一、什么是Javascript
它是運(yùn)行在瀏覽器中的一種腳本語言,在web頁面中,Javascript可謂是無所不能:
1. 可以操作HTML,提供了一種運(yùn)行時(shí)改變HTML的工具;
2. 可以附加并執(zhí)行事件,符合面向事件編程的思想;
3. 數(shù)據(jù)驗(yàn)證功能,在提交表單時(shí)對表單數(shù)據(jù)進(jìn)行合法性驗(yàn)證;
4. 對客戶瀏覽器的操作,前進(jìn)、后退、刷新、跳轉(zhuǎn)、打開新窗口、打印等;
5. 可以創(chuàng)建并使用Cookies.
二、什么是Java
Java是Sun公司推出的一種編程語言。它是一種通過解釋方式來執(zhí)行的語言,語法規(guī)則和C++類似。同時(shí),Java也是一種跨平臺的程序設(shè)計(jì)語言。
用Java語言編寫的程序叫做“Applet”(小應(yīng)用程序),用編譯器將它編譯成類文件后,將它存在WWW頁面中,并在HTML檔上作好相應(yīng)標(biāo)記,用戶端只要裝上Java的客戶軟件就可以在網(wǎng)上直接運(yùn)行“Applet”。
Java非常適合于企業(yè)網(wǎng)絡(luò)和Internet環(huán)境,現(xiàn)在已成為Internet中最受歡迎、最有影響的編程語言之一。
Java有許多值得稱道的優(yōu)點(diǎn),如簡單、面向?qū)ο?、分布式、解釋性、可靠、安全、結(jié)構(gòu)中立性、可移植性、高性能、多線程、動(dòng)態(tài)性等。
Java摒棄了C++中各種弊大于利的功能和許多很少用到的功能。
Jave可以運(yùn)行于任何微處理器,用Java開發(fā)的程序可以在網(wǎng)絡(luò)上傳輸,并運(yùn)行于任何客戶機(jī)上。
三、Javascript名字的由來
JavaScript最早是被稱為Mocha(魔卡)的,這是這個(gè)項(xiàng)目的代碼名。
這個(gè)名字一直用到Netscape2.0 beta 2發(fā)布之前(95.11.04)——包括在beta 1中彈出的錯(cuò)誤框上,還可以看到Mocha的名字。不過,早在此前的9月18號,netscape就已經(jīng)發(fā)布消息將在LiveWire中啟用一種服務(wù)器端腳本(未提及名稱)。又因?yàn)槲覀兦懊嫣岬降?ldquo;前后端通用腳本”的設(shè)計(jì),該語言在beta 2發(fā)布時(shí)就使用了內(nèi)部名稱LiveScript。
但同樣混亂的事情是,事實(shí)上這時(shí)Netscape已經(jīng)決定將該語言命名為“JavaScript”。
因此在beta 2的發(fā)布備忘中該語言稱為JavaScript,而界面上卻從Mocha改為了LiveScript。
這一局面一直持續(xù)到12月4日,netscape與sun共同發(fā)布聲明,正式啟用了JavaScript這個(gè)名字。隨后beta 4發(fā)布(95.12.20),界面和文檔上就統(tǒng)一了。
所以事實(shí)上“LiveScript”這個(gè)名字可以考證的生命周期,也就只有一個(gè)月的時(shí)間(在95.11.04- 12.04)。但Mocha畢竟只是項(xiàng)目代碼名,而非產(chǎn)品名,所以后來人們追溯JavaScript的歷史,大多只提到LiveScript為止。
四、Java與Javascript的區(qū)別
1、javascript與Java是由不同的公司開發(fā)的不同產(chǎn)品。javascript是Netscape公司的產(chǎn)品,其目的是為了擴(kuò)展Netscape Navigator功能,而開發(fā)的一種可以嵌入Web頁面中的基于對象和事件驅(qū)動(dòng)的解釋性語言;而Java是SUN Microsystems公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,特別適合于Internet應(yīng)用程序開發(fā)。實(shí)際上,javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是經(jīng)過SUN Microsystems公司授權(quán)的。
2、javascript是_基于_對象的,它是一種腳本語言,是一種基于對象和事件驅(qū)動(dòng)的編程語言,因而它本身提供了非常豐富的內(nèi)部對象供設(shè)計(jì)人員使用。而Java是_面向_對象的,即Java是一種真正的面向?qū)ο蟮恼Z言,即使是開發(fā)簡單的程序也必須設(shè)計(jì)對象。
3、javascript與Java嵌入方式不一樣。在HTML文檔中,兩種編程語言的標(biāo)識不同,javascript使用來標(biāo)識,而Java使用Applet來標(biāo)識。
4、javascript與Java在瀏覽器中所執(zhí)行的方式不一樣。javascript是一種解釋性編程語言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶,即javascript語句本身隨Web頁面一起下載下來,由瀏覽器解釋執(zhí)行。而Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應(yīng)平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺編譯代碼。
5、javascript與Java代碼格式不一樣。javascript的代碼是一種謀咀址格式,可以直接嵌入HTML文檔中,并且可動(dòng)態(tài)裝載,編寫HTML文檔就像編輯文本文件一樣方便,其獨(dú)立文件的格式為X.js。java是一種與HTML無關(guān)的格式,必須通過像HTML中引用外媒體那么進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨(dú)立的文檔中,其獨(dú)立文件的格式為X.class。
6、javascript與Java所采取的變量是不一樣的。javascript中的變量聲明采用弱類型,即變量在使用前不需作聲明,而是解釋器在運(yùn)行時(shí)檢查其數(shù)據(jù)類型。Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明。
7、javascript采用動(dòng)態(tài)聯(lián)編,即javascript的對象引用在運(yùn)行時(shí)進(jìn)行檢查。Java采用靜態(tài)聯(lián)編,即Java的對象引用必須在編譯時(shí)的進(jìn)行,以使編譯器能夠?qū)崿F(xiàn)強(qiáng)類型檢查。
8、javascript不直接對文本和圖形進(jìn)行操作,它在Web頁面中與HTML元素組合一起發(fā)揮作用,但它可以控制瀏覽器,讓瀏覽器直接對文本和圖形進(jìn)行處理。而Java則可以直接對文本和圖形進(jìn)行操作。
摘自百度:
首先,這兩個(gè)家伙沒有任何的血緣關(guān)系,java是由Sun 公司于1995年5月推出的,而javascript是于1995年由Netscape公司設(shè)計(jì)實(shí)現(xiàn)而成的,由于Netscape公司與Sun公司合作,Netscape高層希望它看上去能夠像Java,因此取名為JavaScript。
其次,這兩個(gè)家伙的本質(zhì)也不一樣,java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,即使是開發(fā)簡單的程序,也必須設(shè)計(jì)對象;而JavaScript是一種直譯式腳本語言,它本身提供了非常豐富的內(nèi)部對象供設(shè)計(jì)人員使用。
并且它們的執(zhí)行方式也是不一樣的,Java是介于解釋型和編譯型語言之間的一種語言,java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,通過相應(yīng)平臺上的解釋器,實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺編譯代碼的束縛。JavaScript是一種解釋性編程語言,其源代碼在發(fā)往客戶執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器解釋執(zhí)行。
再其次兩者的用途也不一樣,java廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng)等,而Javascript的用途是:
- 1.嵌入動(dòng)態(tài)文本于HTML頁面;
- 2.對瀏覽器事件做出響應(yīng);
- 3.讀寫HTML元素;
- 4.在數(shù)據(jù)被提交到服務(wù)器之前驗(yàn)證數(shù)據(jù);
- 5.檢測訪客的瀏覽器信息;
- 6.控制cookies,包括創(chuàng)建和修改等。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java并發(fā)編程:volatile關(guān)鍵字詳細(xì)解析
這篇文章主要介紹了Java并發(fā)編程:volatile關(guān)鍵字詳細(xì)解析,對學(xué)習(xí)volatile關(guān)鍵字有一定的認(rèn)識,有需要的可以了解一下。2016-11-11簡述Java中進(jìn)程與線程的關(guān)系_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在 Java 語言中,對進(jìn)程和線程的封裝,分別提供了 Process 和 Thread 相關(guān)的一些類。本文首先簡單的介紹如何使用這些類來創(chuàng)建進(jìn)程和線程2017-05-05Java微信公眾平臺開發(fā)(7) 公眾平臺測試帳號的申請
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第七步,微信公眾平臺測試帳號的申請,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04LeetCode?動(dòng)態(tài)規(guī)劃之矩陣區(qū)域和詳情
這篇文章主要介紹了LeetCode?動(dòng)態(tài)規(guī)劃之矩陣區(qū)域和詳情,文章基于Java的相關(guān)資料展開對LeetCode?動(dòng)態(tài)規(guī)劃的詳細(xì)介紹,需要的小伙伴可以參考一下2022-04-04Java數(shù)組使用binarySearch()方法查找指定元素的實(shí)現(xiàn)
這篇文章主要介紹了Java數(shù)組使用binarySearch()方法查找指定元素的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java中ArrayIndexOutOfBoundsException 異常報(bào)錯(cuò)的解決方案
本文主要介紹了Java中ArrayIndexOutOfBoundsException 異常報(bào)錯(cuò)的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06實(shí)戰(zhàn)分布式醫(yī)療掛號通用模塊統(tǒng)一返回結(jié)果異常日志處理
這篇文章主要為大家介紹了實(shí)戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之統(tǒng)一返回結(jié)果統(tǒng)一異常處理,統(tǒng)一日志處理到通用模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-04-04