openjdk和jdk區(qū)別 為什么很多Java程序員都不愿意升級(jí)到最新的jdk?
為什么很多Java程序員都不愿意升級(jí)到最新的jdk?目前JDK已經(jīng)到了JDK14,而國(guó)內(nèi)大多數(shù)公司采用的還是JDK7到JDK9,隨著版本更新會(huì)伴隨著功能增強(qiáng),那么為什么很多程序員都不愿意升級(jí)到最新版本
為什么很多Java程序員都不愿意升級(jí)到最新的jdk?
目前JDK已經(jīng)到了JDK14,而國(guó)內(nèi)大多數(shù)公司采用的還是JDK7到JDK9,隨著版本更新會(huì)伴隨著功能增強(qiáng),那么為什么很多程序員都不愿意升級(jí)到最新版本,下面我說(shuō)下我個(gè)人的想法:
不愿升級(jí)到最新版本JDK
1、有一些比較老舊的系統(tǒng),需要持續(xù)維護(hù)。其擴(kuò)展性和性能問(wèn)題不大,需要的只是一些小修改。這種情況下主要還是追求穩(wěn)定為主,而升級(jí)不止單單升級(jí)JDK,還需要配套升級(jí),需要人力物力成本。而升級(jí)帶來(lái)的效益并不多,出于升級(jí)成本和收益的考慮,這種情況下大多數(shù)都不會(huì)選擇升級(jí)JDK。
2、JDK7到JDK9在國(guó)內(nèi)大量應(yīng)用,已經(jīng)十分成熟了,幾乎可以滿足開發(fā)需求比較穩(wěn)定,程序員也使用得十分熟練。有些程序員求穩(wěn),會(huì)對(duì)接觸新技術(shù)有些抵觸。他們覺(jué)得老JDK是在多項(xiàng)目中使用了,有了實(shí)踐和經(jīng)驗(yàn)。而對(duì)于新版本JDK升級(jí)需要學(xué)習(xí)成本,以及怕升級(jí)后遇到不兼容等風(fēng)險(xiǎn),所以會(huì)選擇自己相對(duì)熟悉的版本應(yīng)用。
以上列舉了從成本和收益角度,從學(xué)習(xí)成本和穩(wěn)定性角度來(lái)討論不升級(jí)JDK版本的原因。
個(gè)人想法
下面說(shuō)說(shuō)我個(gè)人體驗(yàn)。軟件開發(fā)并不是個(gè)人就能完成的,而團(tuán)隊(duì)多人協(xié)作的前提是要環(huán)境工具的一致,團(tuán)隊(duì)中JDK版本必須保持一致,個(gè)人想升級(jí)到最新版本時(shí),團(tuán)隊(duì)其他人員也需升級(jí)。盡管新版本JDK的一些特性十分吸引人,不過(guò)實(shí)際項(xiàng)目中應(yīng)用到的新特性并不會(huì)很多,而且需要團(tuán)隊(duì)所有人的學(xué)習(xí)成本。對(duì)于新項(xiàng)目且富有活力的團(tuán)隊(duì),我覺(jué)得leader可以牽頭多嘗試一些新技術(shù)的應(yīng)用。工欲善其事必先利其器,對(duì)于有些新特性的掌握可以提高我們的開發(fā)效率。 但同時(shí),也不能為了追新而新,還是需要結(jié)合系統(tǒng),環(huán)境,成本等情況綜合考慮。
以上就是我的一些個(gè)人見(jiàn)解,希望對(duì)你有所幫助。
現(xiàn)在準(zhǔn)備學(xué)習(xí)jdk,請(qǐng)問(wèn)學(xué)習(xí)jdk的哪個(gè)版本比較好?
現(xiàn)在jdk版本已經(jīng)更新到了jdk13。但是很少有企業(yè)用到,企業(yè)追求的還是版本的穩(wěn)定?,F(xiàn)在很多企業(yè)在用jdk8版本了,也有企業(yè)在用穩(wěn)定的jdk6,jdk7版本。jdk8版本新增了很多的新特性,比如Lambda表達(dá)式,Stream,新的日期時(shí)間Api,Optional工具類等等。簡(jiǎn)化了很多代碼,方便開發(fā)。
學(xué)習(xí)jdk可以從jdk8開始,如果對(duì)這些新特性理解比較晦澀,也可以先學(xué)習(xí)jdk7。希望我的回答對(duì)你有幫助。
Linux下的JDK和OpenJDK有什么具體的區(qū)別?
OpenJDK是JDK的開放原始碼版本,以GPL(General Public License)協(xié)議的形式放出(題主提到的open就是指的開源)。在JDK7的時(shí)候,OpenJDK已經(jīng)作為JDK7的主干開發(fā),SUN JDK7是在OpenJDK7的基礎(chǔ)上發(fā)布的,其大部分原始碼都相同,只有少部分原始碼被替換掉。使用JRL(JavaResearch License,Java研究授權(quán)協(xié)議)發(fā)布。至于OpenJDK6則更是有其復(fù)雜的一面,首先是OpenJDK6是JDK7的一個(gè)分支,并且盡量去除Java SE7的新特性,使其盡量的符合Java6的標(biāo)準(zhǔn)。關(guān)于JDK和OpenJDK的區(qū)別,可以歸納為以下幾點(diǎn): 授權(quán)協(xié)議的不同:OpenJDK采用GPL V2協(xié)議放出,而SUN JDK則采用JRL放出。兩者協(xié)議雖然都是開放源代碼的,但是在使用上的不同在于GPL V2允許在商業(yè)上使用,而JRL只允許個(gè)人研究使用。 OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在OpenJDK中是找不到的。