一柄错、介紹
計算機語言:(Computer Language)指用于人與計算機之間通訊的語言舷夺。計算機語言是人與計算機之間傳遞信息的媒介。計算機系統(tǒng)最大特征是指令通過一種語言傳達給機器售貌。為了使電子計算機進行各種工作给猾,就需要有一套用以編寫計算機程序的數(shù)字、字符和語法規(guī)劃颂跨,由這些字符和語法規(guī)則組成計算機各種指令(或各種語句)敢伸。這些就是計算機能接受的語言。程序員通過這些指令來指揮計算機進行各種工作恒削。
計算機語言主要由機器語言池颈、匯編語言、高級語言钓丰,組成躯砰。
機器語言:毋庸置疑是計算機可以直接識別和使用的語言。但是在編程的時候携丁,通常不會選擇機器語言琢歇,因為機器語言都是由二進制0或1組成的編碼。不便于編程人員的記憶與識別梦鉴。
那么匯編和高級語言是編程人員常用的語言李茫。
匯編語言:采用英文縮寫的標識符,容易識別和記憶肥橙。那么為什么不都用匯編語言編程魄宏,這就要解釋什么是高級語言。
高級語言:采用更接近人類的自然語言進行編程快骗,進一步簡化了程序編程的過程娜庇,所以,大多數(shù)編程者會選擇高級語言方篮。
現(xiàn)在我們講解的Java語言就是高級語言的一種。
二励负、內(nèi)容
1藕溅、Java語言介紹
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點继榆,還摒棄了C++里難以理解的多繼承巾表、指針等概念汁掠,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表集币,極好地實現(xiàn)了面向?qū)ο罄碚摽稼澹试S程序員以優(yōu)雅的思維方式進行復(fù)雜的編程。
? ? Java具有簡單性鞠苟、面向?qū)ο笃蛘ァ⒎植际健⒔研缘庇椤踩猿约取⑵脚_獨立與可移植性、多線程跨细、動態(tài)性等特點鹦倚。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序冀惭、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等震叙。
2、Java語言發(fā)展史(了解)
詹姆斯·高斯林(James Gosling)
SUN– (Stanford University Network斯坦福大學(xué)網(wǎng)絡(luò)公司)?
1995年5月23日散休,Java語言誕生
1996年1月 JDK1.0
1997年2月 JDK1.1
1998年12月 JDK1.2(將Java分成了J2SE,J2EE,J2ME)
2000年5月 J2SE1.3
2002年2月 J2SE1.4(1.4.2版本很多公司在使用)
2004年10月? JDK1.5(改名JavaSE5.0,JavaEE,JavaME)
2006年12月 JavaSE6.0
2009年04月20日捐友,甲骨文(Oracle)74億美元收購Sun。
2011年7月? JavaSE7.0(市場主流版本)
2014年3月 JavaSE8.0
2017年9月 JavaSE9.0
java語言的特點是溃槐,簡單易用匣砖、安全可靠、主要面向Internet編程昏滴。從問世以來猴鲫,發(fā)展的就非常迅速。?
3谣殊、JAVA應(yīng)用模型
現(xiàn)在市場上絕大多數(shù)企業(yè)應(yīng)用采用Java作為編程語言拂共,Java語言應(yīng)用于服務(wù)器開發(fā),智能家居姻几,網(wǎng)站的后臺維護宜狐,手機應(yīng)用后臺等等。
SUN公司為了讓使用Java語言的開發(fā)人員可以針對特定的市場進行開發(fā)蛇捌,SUN公司將Java劃分為三個版本抚恒,分別是JavaSE、JavaME络拌、JavaEE
3.1俭驮、JavaSE
JavaSE(Java Platform Standard Edition——Java平臺標準版)標準版是為開發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案,JavaSE是三個平臺最核心的部分春贸,JavaEE和JavaME都是從JavaSE的基礎(chǔ)上發(fā)展而來的混萝,JavaSE平臺包括了Java最核心的類庫遗遵,包括,如集合逸嘀,IO车要,數(shù)據(jù)庫連接以及網(wǎng)絡(luò)編程等。
3.2崭倘、JavaEE
JavaEE(Java Platform Enterprise Edition 企業(yè))企業(yè)版翼岁,是為了開發(fā)企業(yè)級應(yīng)用程序提供的解決方案。JavaEE可以被看做一個技術(shù)平臺绳姨,該平臺用于開發(fā)登澜、裝配以及部署企業(yè)及應(yīng)用程序,其中主要包括Servlet飘庄、JSP脑蠕、JavaBean、JDBC跪削、EJB谴仙、WebService等技術(shù)。
3.3碾盐、JavaME
JavaME(Java Platform Micro Edition? 微型)小型版是為了開發(fā)電子消費產(chǎn)品和嵌入式設(shè)備提供的解決方案晃跺。JavaME主要用于小型數(shù)字電子設(shè)備上的軟件程序的開發(fā)。例如毫玖,為家用電器增加智能化控制和聯(lián)網(wǎng)功能掀虎,為手機增加新的游戲和通訊錄管理功能。此外付枫,JavaME提供了HHTTP等高級Internet協(xié)議烹玉,是移動電話能以Client/Server方式直接訪問Internet的全部信息,提供最高效率的無線交流阐滩。
(Java有這些功能二打,現(xiàn)在基本退出舞臺,由安卓掂榔、IOS等移動端操作語言替代继效,安卓和Java的關(guān)系大家下去可以去了解一下,簡單的說安卓學(xué)習也是要必須先學(xué)JavaSE的)
4装获、Java技術(shù)應(yīng)用領(lǐng)域
4.1瑞信、Android應(yīng)用
許多的Android應(yīng)用都是Java程序開發(fā)者開發(fā)。雖然Android運用了不同的JVM以及不同的封裝方式饱溢,但是代碼還是用Java語言所編寫喧伞。相當一部分的手機都支持Java游戲,這就使得很多非編程人員都認識了Java绩郎。
4.2潘鲫、金融應(yīng)用的服務(wù)器程序
Java在金融服務(wù)業(yè)的應(yīng)用非常廣泛,很多第三方交易系統(tǒng)肋杖、銀行溉仑、金融機構(gòu)都選擇用Java開發(fā),因為相對而言状植,Java較安全浊竟。大型跨國投資銀行用Java來編寫前臺和后臺的電子交易系統(tǒng),結(jié)算和確認系統(tǒng)津畸,數(shù)據(jù)處理項目以及其他項目振定。大多數(shù)情況下,Java被用在服務(wù)器端開發(fā)肉拓,但多數(shù)沒有任何前端后频,他們通常是從一個服務(wù)器(上一級)接收數(shù)據(jù),處理后發(fā)向另一個處理系統(tǒng)(下一級處理)暖途。
4.3卑惜、網(wǎng)站
Java在電子商務(wù)領(lǐng)域以及網(wǎng)站開發(fā)領(lǐng)域占據(jù)了一定的席位。開發(fā)人員可以運用許多不同的框架來創(chuàng)建web項目驻售,springmvc露久,Struts2.0以及framework(框架,三個主要部分: 服務(wù)端欺栗、客戶端和Linux驅(qū)動)毫痕。即使是簡單的servlet,jsp和以struts為基礎(chǔ)的網(wǎng)站在征服項目中也經(jīng)常被用到迟几。例如醫(yī)療救護消请、保險、教育瘤旨、國防以及其他的不同部門網(wǎng)站都是以Java為基礎(chǔ)來開發(fā)的梯啤。
4.4、嵌入式領(lǐng)域
Java在嵌入式領(lǐng)域發(fā)展空間很大存哲。在這個平臺上因宇,只需130KB就能夠使用Java技術(shù)(在只能卡或者傳感器上)。
4.5祟偷、大數(shù)據(jù)技術(shù)
Hadoop(Apache05年開發(fā)分布式系統(tǒng)基礎(chǔ)架構(gòu))以及其他大數(shù)據(jù)處理技術(shù)很多都是用的Java察滑,例如Apache的技術(shù)Java的HBase(一個分布式的、面向列的開源數(shù)據(jù)庫修肠,HBase是Apache的Hadoop項目的子項目)和Accumulo(是一個可靠的贺辰、可伸縮的、高性能的排序分布式的 Key-Value 存儲解決方案,基于單元訪問控制以及可定制的服務(wù)器端處理)以及ElasticSearch(ES是一個基于Lucene并采用Restful API 標準的高可擴展性和高可用性的實時數(shù)據(jù)分析的全文檢索工具饲化。)說沒有Java就沒有大數(shù)據(jù)一點也不為過莽鸭。
4.6、高頻交易的空間
Java平臺提高了這個平臺的特性和即時編譯吃靠,他同時也能夠想C++一樣傳遞數(shù)據(jù)硫眨,正是由于這個原因,Java成為程序員編寫交易平臺的首選語言巢块,雖然性能不比C++礁阁,但開發(fā)人員可以避開安全性,可移植性和維護性等問題族奢。
4.7姥闭、科學(xué)應(yīng)用
Java在科學(xué)應(yīng)用中是很好的選擇,包括自然語言處理越走。最主要的原因是因為Java比C++或者其他相對安全性棚品、便攜性、可維護性以及其他高級語言的并發(fā)性更好弥姻。
5南片、Java語言特點
Java應(yīng)用廣泛,受到大眾的歡迎庭敦,其根本原因是Java語言的眾多突出優(yōu)點(優(yōu)點肯定是與其他高級語言相比較得來的)
介紹幾個主要的特點
5.1疼进、簡單:
Java看起來設(shè)計的很像C++,但是為了是語言小和容易熟悉秧廉,設(shè)計者把C++語言種許多可用的特征去掉了伞广,這些特征是一般程序員很少使用的,例如:Java不支持go to語句疼电,代之以提供break和continue語句以及異常處理嚼锄。Java還剔除了C++的操作符過載(重載overload)和多繼承特征,并且不使用主文件蔽豺,免去了預(yù)處理程序区丑。因為Java沒有結(jié)構(gòu),數(shù)組和串都是對象修陡,所以不需要指針沧侥。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集魄鸦,(垃圾回收機制)使用戶不必為存儲(內(nèi)存)管理問題煩惱宴杀,能把更多的時間和精力花在研發(fā)上。
5.2拾因、面向?qū)ο螅?/p>
Java是一個面向?qū)ο蟮恼Z言旺罢,對程序員來說旷余,這意味著要注意應(yīng)用數(shù)據(jù)和操作數(shù)據(jù)的方法(method),而不是嚴格地用過程來思考扁达。在一個面向?qū)ο蟮南到y(tǒng)中正卧,類(class)是數(shù)據(jù)和操作數(shù)據(jù)的方法和集合。數(shù)據(jù)和方法一起描述對象(object)的狀態(tài)和行為罩驻。每一對象是其狀態(tài)和行為的封裝穗酥。類是按一定體系和層次安排的护赊,使得子類可以從超類繼承行為惠遏。在這個類層次體系中有一個根類,它是具有一般行為的類骏啰。Java程序是用來組織的节吮。
為了簡單起見,只支持類之間的單繼承判耕,但支持接口之間的多繼承透绩,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字implements)。Java語言全面支持動態(tài)綁定壁熄,而C++語言只對函數(shù)使用動態(tài)綁定帚豪。
Java還包括一個類的擴展集合,分別組成各種程序包(package)草丧,用戶可以在自己的程序中使用狸臣。例如,Java提供產(chǎn)生圖形用戶接口的類(java.awt包)昌执,這里awt是抽象窗口工具集(abstract windowing tookit)的縮寫烛亦,處理輸入輸出的類(java.io包)和支持網(wǎng)絡(luò)功能的類(java.net包)。
5.3懂拾、分布式
Java設(shè)計成支持在網(wǎng)絡(luò)上應(yīng)用煤禽,它是分布式語言,Java既支持各種層次的網(wǎng)絡(luò)連接岖赋,又以Socket類支持可靠的流(steam)網(wǎng)絡(luò)連接檬果,所以用戶可以產(chǎn)生分布式的客戶機和服務(wù)器。
網(wǎng)絡(luò)變成軟件應(yīng)用的分布運載工具唐断。Java程序只需編寫一次选脊,就可到處運行。
5.4栗涂、穩(wěn)健性
Java原來是用作編寫消費類家用電子產(chǎn)品軟件的語言知牌,所以他是被設(shè)計成高可靠和穩(wěn)健軟件的。Java消除了某些編程錯誤斤程,使得用它寫可靠軟件相當容易角寸。
Java是一個強類型語言菩混,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯示方法聲明扁藕,它不支持C語言風格的隱式聲明沮峡。這些嚴格的要求保證編譯程序能捕捉調(diào)用錯誤,這就導(dǎo)致會開發(fā)出更可靠的程序亿柑。
可靠性方面最重要的增強之一是Java的存儲模型邢疙。Java不支持指針,它消除重新存儲和訛誤(文字錯誤望薄;字句上的疏漏差誤)數(shù)據(jù)疟游。類似的,Java自動的“無用單元收集”預(yù)防存儲漏泄和其它有關(guān)動態(tài)存儲分配和解除分配的有害錯誤痕支。Java解釋程序員也執(zhí)行許多運行時的檢查颁虐,諸如驗證所有數(shù)組和串訪問是否在界限之內(nèi)。
5.5卧须、安全性
Java的存儲分配模型是它防御惡意代碼的主要方法之一另绩。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和偽造指針去指向存儲器花嘶。更重要的是笋籽,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排椭员。編譯的Java代碼中存儲引用在運行時由Java解釋程序決定實際存儲地址车海。
Java運行系統(tǒng)使用字節(jié)碼驗證過程保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網(wǎng)上裝載拆撼。例如容劳,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標準Java類闸度。
Java語言不支持指針竭贩,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),從而使應(yīng)用更安全莺禁。
5.6留量、可移植性(跨平臺)
Java使得語言聲明不依賴與實現(xiàn)的方面。例如哟冬,Java顯示說明每個基本數(shù)據(jù)類型的大小和它的運算行為(這些數(shù)據(jù)類型由Java語法描述)楼熄。
Java環(huán)境本身對新的硬件平臺和操作系統(tǒng)是可移植的。Java編譯程序也用Java編寫浩峡,而Java運行系統(tǒng)用ANSIC語言編寫可岂。
5.7、高性能
Java是一種先編譯后解釋的語言翰灾,所以他不如全編譯性語言快缕粹。但是有些情況下性能是很要緊的稚茅,為了支持這些情況,Java設(shè)計者制作了“及時”編譯程序平斩,它能在運行時吧Java字節(jié)碼翻譯成特定CPU(中央處理器)的機器代碼亚享,也就是實現(xiàn)全編譯了。
Java字節(jié)碼格式設(shè)計時考慮到這些“及時”編譯程序的需要绘面,所以生成機器代碼的過程相當簡單欺税,它能產(chǎn)生相當好的代碼。
5.8揭璃、支持多線程
Java語言是支持多線程的晚凿,所謂的多線程可以簡單地理解為程序中有多個任務(wù)可以并發(fā)執(zhí)行,這樣可以在很大程度上提高程序的執(zhí)行效率塘辅。
6晃虫、JAVA核心JDK與JRE
JRE為Java的運行時環(huán)境,是運行Java程序依賴的扣墩。如果僅僅是運行已經(jīng)存在的Java程序,只安裝JRE即可扛吞。
JDK為Java的開發(fā)環(huán)境呻惕,是開發(fā)時依賴的。包含JRE滥比。
沒有JDK的話亚脆,無法編譯Java程序,如果想只運行Java程序盲泛,要確保已安裝相應(yīng)的JRE濒持。
Java語言通過在不同的操作系統(tǒng)上安裝對應(yīng)的Java虛擬機實現(xiàn)了跨平臺, 即java的.class程序可以在不同操作系統(tǒng)上均可以運行寺滚。(java的.class文件相當于Windows中的.exe文件柑营,是可執(zhí)行的程序)
java語言是跨平臺的,java虛擬機不是跨平臺的。
7村视、Java工作原理
? ? JAVA的工作原理是:“一處編譯官套,到處運行"。(.java源文件蚁孔,必須編譯成.class文件奶赔,在各種java平臺層都可以運行)
硬件層:就是沒有任何操作系統(tǒng)的計算機主要是指我們的硬件(主機,顯示器等)杠氢。
操作系統(tǒng)層:是指我們的windows\linux\unix\android\ios等
JAVA平臺層:針對不同的操作系統(tǒng)JAVA提供了不同的虛擬機
應(yīng)用平臺層:各種JAVA應(yīng)用程序(如:QQ站刑、百度視頻等)、JAVA-WEB程序(12306鼻百、QQ空間等)
創(chuàng)建那源文件*.java文件
通過編譯器(javac)绞旅,編譯成.class文件(字節(jié)碼文件)质况,
通過解釋器(java),在計算機中解釋執(zhí)行.class文件