最近,TIOBE 公佈了 2020 年 7 月的編程語言排行榜。編程
本次排行榜的最大亮點就是:C語言擊敗Java,穩坐老大寶座!編程語言
這兩年,編程語言排行榜榜首位置,不是C語言,就是Java。大數據
如下爲具體榜單信息:網站
TIOBE 7 月 TOP 10 編程語言操作系統
Java與c都屬於計算機的高級編程語言,都是爲了方便人去編寫出來東西控制計算機。翻譯
不一樣的是,Java是一種面向對象的語言,C是一門面向過程的語言。3d
打個比方來講,你要給你朋友寄快遞,Java的作法是找家快遞公司,把快遞交給快遞公司,告訴快遞公司須要送到你朋友所在地中你朋友手裏,而後快遞公司接到快遞後,會幫咱們把快遞送到目的地,你朋友的手中,這樣咱們就完成了咱們的操做,這裏面的快遞公司就至關於一個對象;指針
而對於面向過程的編程語言來講,因爲沒有對象的概念,因此他須要本身想辦法走到你朋友所在的地方,找到朋友,而後將快遞交給你朋友;這樣相比較,Java會簡潔方便不少。對象
其次對於不一樣的平臺來講,Java只須要編譯一次,就能夠在不一樣的平臺上面運行,對於C來講,若是在Windows上面編譯生成的文件只能在window上運行,若是想要在Linux系統下運行,須要從新在Linux下面進行編譯。blog
緣由是Java有本身的一套虛擬機體制,Java編譯完成以後,會生成class文件,而後將生成的文件移到不一樣的平臺時,Java虛擬機會幫助咱們將class文件翻譯成計算機所能識別的信息,這樣就能夠在不一樣平臺運行了。
打個比方來講就是咱們要和不一樣國家的人聊天,Java的作法至關於找了一個厲害的翻譯,咱們說的話,他均可以根據不一樣的國家翻譯給不一樣的人聽,而C的話至關於請了多個只會咱們的語言和其餘另外一門語言的人,當咱們要和美國人聊天,就得找一個英語翻譯,當咱們須要和德國人翻譯,就得找個德語翻譯,相對而言Java方便了不少。
第三,從語法結構上來講,Java去掉了C裏面比較重要的指針的概念。指針的概念就是咱們能夠直接去操做計算機的物理地址,在使用C的時候,咱們須要常常去本身申請一些內存空間,用完以後還須要本身手動釋放,Java的垃圾回收機制較好地解決了這一點,咱們不用再去關心申請的內存釋放,Java虛擬機會幫助咱們去清理一些咱們用不到的空間,從而下降了不少出錯的可能。
固然,Java和C的主要用途也不同,Java主要針對的是互聯網應用的開發,而C主要偏向於底層的開發。因此如今咱們所看到的操做系統,智能設備這些都是使用的C;而咱們平時的一些大數據平臺、網站開發,好比咱們常常使用的電商網站,還有一些企業管理網站等都是使用Java。