- 授課品牌:
天津達(dá)內(nèi)教育
- 機(jī)構(gòu)級(jí)別:代理會(huì)員
- 信譽(yù)等級(jí):
學(xué)校評(píng)價(jià)(我要提問/點(diǎn)評(píng))
- 學(xué)校被點(diǎn)評(píng):0 次
- 好評(píng)(0%)
- 中評(píng)(0%)
- 差評(píng)(0%)
資料認(rèn)證
未通過身份證認(rèn)證
未通過辦學(xué)許可認(rèn)證
- 學(xué)校瀏覽人次:次
- 加盟時(shí)間:2021年04月17日
為什么java能20年屹立不倒?
有關(guān)JAVA的技術(shù)賣出多少本書已經(jīng)是一個(gè)很久遠(yuǎn)的記憶了。現(xiàn)處中年時(shí)期的Java語言的用途已經(jīng)不再出現(xiàn)在各種雜志的封面上了。JAVA從出生到現(xiàn)在已經(jīng)20年了,應(yīng)用開發(fā)圈已經(jīng)開始繞著那些更有吸引力的新技術(shù)。Java或許是Web 1.0時(shí)代的一個(gè)傳說。
從招聘信息你就可以知道,跟iOS相關(guān)的開發(fā)有2500左右的招聘,Java則有17000多個(gè)。數(shù)據(jù)不一定能完美的衡量技術(shù)的價(jià)值,但是在不斷推陳出新的技術(shù)推廣壓力下,Java職位是iOS的7倍之多可以說明問題。在忘記Java在計(jì)算機(jī)行業(yè)里所扮演的角色和做出的那些卓越貢獻(xiàn)前,天津達(dá)內(nèi)java培訓(xùn)(sjz.java.tedu.cn)專家有12個(gè)的理由來告訴你Java不但不會(huì)和COBOL一樣被堙滅,并且在其后時(shí)代中更加壯大。換句話說:Java一直就在并且其地位無法撼動(dòng)。
1、Java在市場(chǎng)斗爭(zhēng)中不屈不撓
技術(shù)界從來沒認(rèn)為Java會(huì)成功,盡管它的對(duì)手太多但依然繁榮發(fā)展起來。那些詫異Java仍然存在的人們并沒有真正去理解為什么Java會(huì)成
功。微軟是Java第一個(gè)面對(duì)的強(qiáng)大對(duì)手,因?yàn)槟菚r(shí)MS-DOS提供了通用性,而微軟看到Java是此通用性最具可能性的替代者。
此外,蘋果Steve Jobs從來沒接收過Java,即使是在Mac被除了Adobe之外所有人忽視的年代。Java的兼容性可以帶來很多有用的代碼,但是Apple一直未把Java視作第一選擇。
Java內(nèi)部的很多斗爭(zhēng)也給它帶來了巨大痛苦。IBM喜歡Java,但是一直在和Sun斗爭(zhēng)。IBM將其開發(fā)的優(yōu)秀的IDE工具稱為“Eclipse”的決定,一直沒被Sun的人員欣然接受。Sun也從來沒像IBM那樣深刻理解商業(yè)領(lǐng)域。
盡管這些原因,盡管Java創(chuàng)造者也在Java發(fā)展中有許多失策之處,Java依然快速壯大,在服務(wù)器應(yīng)用領(lǐng)域如魚得水,在桌面應(yīng)用領(lǐng)域滿足基本業(yè)務(wù)需求。
2、Java虛擬機(jī)優(yōu)化線程的魔力
Java虛擬機(jī)的強(qiáng)項(xiàng)之一是多線程控制。JVM針對(duì)大型多核機(jī)上數(shù)百線程的穩(wěn)定性做了極佳的優(yōu)化。其他語言會(huì)為了能跑在JVM上面搞出交叉編譯器和模擬器。Java的這個(gè)能力同時(shí)也吸引了很多高流量的網(wǎng)站。他們可以在臺(tái)式機(jī)上搞開發(fā)然后丟到服務(wù)器上讓JVM發(fā)揮出多核的功效。
Ruby因?yàn)檎Z法的簡(jiǎn)潔和源碼可讀性好成為了Java目前的一個(gè)對(duì)手。但是當(dāng)性能成為瓶頸時(shí),Ruby開發(fā)人員轉(zhuǎn)到了JRuby,一個(gè)用Java模擬出來的Ruby環(huán)境并增強(qiáng)了高負(fù)載下的線程處理能力。
3、Java成為編程初學(xué)者的語言
作為大學(xué)AP計(jì)算機(jī)課程,意味著在美國很多學(xué)生第一次接觸到的計(jì)算機(jī)語言就是Java。由于這個(gè)先入為主的原因,當(dāng)他們學(xué)習(xí)其他新的語言時(shí),即便轉(zhuǎn)行學(xué)其他語言課程,但是他們?cè)谒伎嫉臅r(shí)仍會(huì)受到Java的影響。
Java作為一個(gè)教學(xué)語言是有它的原因的。聲明數(shù)據(jù)類型看上去可能比較抽象,但是為了能讓初學(xué)者理解計(jì)算機(jī)的原理,聲明數(shù)據(jù)類型通過編譯器會(huì)告訴他們數(shù)據(jù)類型不匹配而無法編譯時(shí),可以讓他們更好的理解計(jì)算機(jī)的底層原理。而一些新語言已經(jīng)摒棄了花括號(hào),維護(hù)麻煩使得新人有所厭倦,但是花括號(hào)對(duì)那些新手是非常有用的,因?yàn)槟軒椭麄兝斫馇短椎拇a塊。
4、Java具有跨平臺(tái)兼容性
雖然Java并不是第一個(gè)提供跨平臺(tái)兼容能力的語言,但是Java已經(jīng)成為最受歡迎的跨平臺(tái)編程工具,Sun以及Oracle已經(jīng)為程序可以跨平臺(tái)使用提供支持。當(dāng)程序不能在多個(gè)平臺(tái)上使用時(shí),導(dǎo)致問題的原因通常是可以解決的。
Java程序員可以使用他們的桌面開發(fā)工具進(jìn)行編碼,并部署到目標(biāo)設(shè)備,可能是一臺(tái)手機(jī)或者一臺(tái)服務(wù)器。如果編譯器包含了正確的庫并且使用了正確的版本,代碼就可以運(yùn)行。
5、Java在移動(dòng)領(lǐng)域上的持續(xù)成功
Java也許并沒在大型應(yīng)用程序中有很好體現(xiàn),但它卻在移動(dòng)領(lǐng)域的細(xì)分市場(chǎng)獲得快速發(fā)展。Android平臺(tái)從上到下都是基于Java構(gòu)建起來的,并且它如今的銷量輕易的超過了iPhone。JAVA ME作為精簡(jiǎn)版的語言和VM已經(jīng)被廣泛應(yīng)用在智能手機(jī)上,而智能手機(jī)如今已經(jīng)遍布在全世界。
6、Java在藍(lán)光應(yīng)用取得突破
Java曾經(jīng)為機(jī)頂盒而設(shè)計(jì)的語言,Sun想在占據(jù)此市場(chǎng),但是Java卻在另外領(lǐng)域中找到了合適的位置。藍(lán)光標(biāo)準(zhǔn)是圍繞Java建立,任何想在藍(lán)光光碟中添加額外內(nèi)容的人,必須得到其Javac編譯器版本。藍(lán)光光碟不止限于存放視頻內(nèi)容。那些額外特性和交互工具可以使用純Java代碼修改并增強(qiáng)。壓縮后的視頻和壓縮后的Java字節(jié)碼的混合。
7、Java讓花括號(hào)能優(yōu)化代碼工作
類似Ruby、Python或CoffeeScript等語言的開發(fā)者對(duì)于Java要求程序員們敲打花括號(hào)鍵來明確表達(dá)代碼段的開始和結(jié)束。括號(hào)、花括號(hào)、甚至方括號(hào)對(duì)于程序員略顯多余。但是改變符號(hào)并不能消除復(fù)雜性,使用像制表符等空白后你只能用直覺去感受那些無法看到的東西。如果if語句只引導(dǎo)了一行代碼,這樣不會(huì)有問題,但是當(dāng)很多層嵌套時(shí),就很難看明白。當(dāng)用Python編程時(shí),并不意味著代碼像理解英文簡(jiǎn)單。
8、Java動(dòng)態(tài)類型語法工具Groovy
Java開發(fā)者必須要有一個(gè)帶有動(dòng)態(tài)類型的語法,可以使用Groovy一個(gè)帶有預(yù)處理器的工具,它能夠生成出Java字節(jié)碼來。這種語言也完全集成到了Java中,因此可以在Groovy中混入對(duì)Java庫的調(diào)用。就像是編寫Java代碼的縮略形式。
這一靈活性讓開發(fā)工程師得以找到問題的出路。在使用了動(dòng)態(tài)方法調(diào)用時(shí),開發(fā)者可以用Java來重寫重要的核心操作。
9、Java虛擬機(jī)讓編程更加的靈活
Java虛擬機(jī)是按照運(yùn)行Javac編譯器產(chǎn)生的代碼源頭來設(shè)計(jì)和優(yōu)化,但開發(fā)者們意識(shí)到Java虛擬機(jī)也可以運(yùn)行其他代碼。只要編譯器們產(chǎn)出標(biāo)準(zhǔn)的Java字節(jié)碼,Java虛擬機(jī)根本不關(guān)心是使用的那種編程語言。Haskell、Scala和Clojure的開發(fā)者們?cè)O(shè)計(jì)編譯器就采用Java,而只是這個(gè)由Java虛擬機(jī)產(chǎn)生的。
另外,Sun/Oracle為創(chuàng)建跨平臺(tái)環(huán)境而努力,工程師們消除平臺(tái)間差異,并考慮兼容性問題,然后所有人可以運(yùn)行他們想運(yùn)行的程序。微軟在創(chuàng)建C#時(shí)為大部分主要語言設(shè)計(jì)了編譯器,使得C#虛擬機(jī)可以運(yùn)行這些語言編寫的所有程序。C#程序員可以用很多不同的語言編寫程序,只要通過一個(gè)Windows盒子將其運(yùn)行在一個(gè)虛擬機(jī)上即可。
10、NoSQL建立在Java之上
數(shù)據(jù)庫是保存信息并快速有效應(yīng)對(duì)查詢請(qǐng)求。NoSQL的出現(xiàn)讓程序員們可以自己編寫數(shù)據(jù)庫,并根據(jù)需求修剪其代碼。那些最重要NoSQL工具中很多都是用Java編寫。Cassandra、Lucene、ElasticSearch、HBase和Neo4J只是一些經(jīng)常提到的NoSQL選擇。
據(jù)天津達(dá)內(nèi)java培訓(xùn)(sjz.java.tedu.cn)專家了解,工具通常是開源的。開發(fā)者將其獨(dú)立運(yùn)行,或?qū)⑺鼈兗稍谧约旱哪K中,使得Java在數(shù)據(jù)庫層中成為通用語言,保證了Java開發(fā)者們擔(dān)心由于字符編碼和行結(jié)束符帶來的故障。這意味著Java開發(fā)者們可以享受由NoSQL革命帶來的豐碩果實(shí)。
11、Minecraft游戲中00后的情結(jié)
非主流們對(duì)Java嗤之以鼻,但是Java程序員們卻領(lǐng)先一步。在Ruby時(shí)尚團(tuán)正聚集起自己的一群粉絲時(shí),Minecraft讓之后的一代人愛上了Java。它用Java編寫而成,要擴(kuò)展該游戲就需學(xué)習(xí)Java來設(shè)計(jì)其插件,這保證下一代程序員首選是Java
12、開源成就Java代碼廣泛的應(yīng)用
Sun一直是開源領(lǐng)域中的領(lǐng)導(dǎo)者之一,Java程序員們發(fā)布眾多開源許可的庫和項(xiàng)目。Apache項(xiàng)目一直都在使用一個(gè)沒要求太多回報(bào)的許可證來提供優(yōu)秀的Java代碼。07年完成在GPL許可下公開大部分代碼的工作,這種開放的立場(chǎng)一直延續(xù)并保證Java平臺(tái)很大程度是開放和免費(fèi)的。
由此,Java有自己的問題,花括號(hào)增加混亂等缺點(diǎn)。但目前還沒有一個(gè)廣度和深度上可與之競(jìng)爭(zhēng)的語言。最接近的也許是JavaScript,依靠有閃電般速度的Node.js在服務(wù)器領(lǐng)域受到廣泛關(guān)注。而語言是開源且靈活多變,意味著Java程序繼續(xù)存在甚至更加興旺。