大家好,我是不溫卜火,是一名計算機學院大數據專業大二的學生,暱稱來源於成語—
不溫不火
,本意是希望自己性情溫和
。作爲一名互聯網行業的小白,博主寫博客一方面是爲了記錄自己的學習過程,另一方面是總結自己所犯的錯誤希望能夠幫助到很多和自己一樣處於起步階段的萌新。但由於水平有限,博客中難免會有一些錯誤出現,有紕漏之處懇請各位大佬不吝賜教!暫時只有csdn這一個平臺,博客主頁:https://buwenbuhuo.blog.csdn.net/
在scala專欄已經寫過兩篇博文,爲大家詳細地介紹瞭如何在windows上安裝scala並與IDEA進行集成。
相信大家可能已經把環境都配置好了,但可能對scala的概念還是一個未知數。所以博主打算出一個scala快速入門系列,供大家學習使用。作爲快速入門系列第一篇博客,本篇博客先爲大家帶來scala基本介紹。
一. scala的前世今生
聯邦理工學院的馬丁·奧德斯基(Martin Odersky)於2001年開始設計Scala。
馬丁·奧德斯基是編譯器及編程的狂熱愛好者,長時間的編程之後,希望發明一種語言,能夠讓寫程序這樣的基礎工作變得高效,簡單。所以當接觸到JAVA語言後,對JAVA這門便攜式,運行在網絡,且存在垃圾回收的
語言產生了極大的興趣,所以決定將函數式編程語言的特點融合到JAVA中,由此發明了兩種語言(Pizza & Scala)。
Pizza和Scala極大地推動了Java編程語言的發展。
- jdk5.0 的泛型,for循環增強,自動類型轉換等,都是從Pizza 引入的新特性。
- jdk8.0 的類型推斷,Lambda表達式就是從Scala引入的特性。
二. Scala和Java關係
一般來說,學Scala的人,都會Java,而Scala是基於Java的,因此我們需要將Scala和Java以及JVM 之間的關係搞清楚,否則學習Scala你會蒙圈。
一圖帶你瞭解Scala和Java以及JVM 之間的關係
三. scala簡介
Scala是一門以Java虛擬機(JVM)爲運行環境並將面向對象和函數式編程的最佳特性結合在一起的靜態類型編程語言。
1)Scala是一門多範式的編程語言,Scala支持面向對象和函數式編程。
2)Scala源代碼(.scala)會被編譯成Java字節碼(.class),然後運行於JVM之上,並可以調用現有的Java類庫,實現兩種語言的無縫對接。
3)Scala單作爲一門語言來看,非常的簡潔高效。
4)Scala在設計時,參考了Java的設計思想,可以說Scala是源於Java,同時也加入了自己的思想,將函數式編程語言的特點
融合到JAVA中。
早期,scala剛出現的時候,並沒有怎麼引起重視,隨着Spark
和 Kafka
這樣基於scala的大數據框架的興起,scala逐步進入大數據開發者的眼簾。scala的主要優勢是它的表達性
。
接下來,我們要來學習:
1.爲什麼要使用scala?
2.通過一個案例對比Java語言和scala語言
四. 爲什麼要使用scala
- 開發大數據應用程序(Spark程序、Flink程序)
- 表達能力強,一行代碼抵得上Java多行,開發速度快。
- 兼容Java,可以訪問龐大的Java類庫,例如:操作mysql,redis,freemarker等等。
五. scala對比Java
有一個字符串(數字)列表,我們想將該列表中所有的字符串轉換爲整數。
- Java代碼
// 創建一個Integer類型的列表
List<Integer> ints = new ArrayList<Integer>();
for (String s : list) {
ints.add(Integer.parseInt(s));
}
- scala代碼
val ints = list.map(s => s.toInt)
還記得在簡介中談到的,scala的主要優勢是它的表達性。沒錯,相比於java而言,scala可以用更少的代碼"優雅"地表達出我們所想。所以,scala足以成爲我們程序員必須涉獵的語言之一。
本次的分享就到這裏了,
好書不厭讀百回,熟讀課思子自知。而我想要成爲全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請“點贊” “評論”“收藏”
一鍵三連哦!聽說點讚的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看。
碼字不易,大家的支持就是我堅持下去的動力。點贊後不要忘了關注
我哦!