從屌絲到架構(gòu)師的飛越(入門篇)-JAVA概述

一柄错、介紹

計算機語言:(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文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玻靡,一起剝皮案震驚了整個濱河市结榄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囤捻,老刑警劉巖臼朗,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝎土,居然都是意外死亡视哑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門誊涯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挡毅,“玉大人,你說我怎么就攤上這事暴构」虺剩” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵取逾,是天一觀的道長耗绿。 經(jīng)常有香客問我,道長砾隅,這世上最難降的妖魔是什么误阻? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮晴埂,結(jié)果婚禮上究反,老公的妹妹穿的比我還像新娘。我一直安慰自己儒洛,他們只是感情好精耐,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晶丘,像睡著了一般黍氮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浅浮,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天沫浆,我揣著相機與錄音,去河邊找鬼滚秩。 笑死专执,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的郁油。 我是一名探鬼主播本股,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼攀痊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拄显?” 一聲冷哼從身側(cè)響起苟径,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躬审,沒想到半個月后棘街,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡承边,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年遭殉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片博助。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡险污,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出富岳,到底是詐尸還是另有隱情蛔糯,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布城瞎,位于F島的核電站渤闷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脖镀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一狼电、第九天 我趴在偏房一處隱蔽的房頂上張望蜒灰。 院中可真熱鬧,春花似錦肩碟、人聲如沸强窖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翅溺。三九已至,卻和暖如春髓抑,著一層夾襖步出監(jiān)牢的瞬間咙崎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工吨拍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留褪猛,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓羹饰,卻偏偏與公主長得像伊滋,于是被迫代替她去往敵國和親碳却。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354