scala快速入门系列(1) | scala的简单介绍

举报
不温卜火 发表于 2021/01/07 17:23:15 2021/01/07
【摘要】   大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客...

  大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/

  在scala专栏已经写过两篇博文,为大家详细地介绍了如何在windows上安装scala并与IDEA进行集成。

  相信大家可能已经把环境都配置好了,但可能对scala的概念还是一个未知数。所以博主打算出一个scala快速入门系列,供大家学习使用。作为快速入门系列第一篇博客,本篇博客先为大家带来scala基本介绍。


2

一. scala的前世今生

1
  联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
  马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。

  Pizza和Scala极大地推动了Java编程语言的发展。

  • jdk5.0 的泛型,for循环增强,自动类型转换等,都是从Pizza 引入的新特性。
  • jdk8.0 的类型推断,Lambda表达式就是从Scala引入的特性。

二. Scala和Java关系

2
  一般来说,学Scala的人,都会Java,而Scala是基于Java的,因此我们需要将Scala和Java以及JVM 之间的关系搞清楚,否则学习Scala你会蒙圈。

一图带你了解Scala和Java以及JVM 之间的关系
3

三. scala简介

  Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。

1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时,参考了Java的设计思想,可以说Scala是源于Java,同时也加入了自己的思想,将函数式编程语言的特点融合到JAVA中。

  早期,scala刚出现的时候,并没有怎么引起重视,随着SparkKafka这样基于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)); 
 }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • scala代码
val ints = list.map(s => s.toInt)

  
 
  • 1

  还记得在简介中谈到的,scala的主要优势是它的表达性。没错,相比于java而言,scala可以用更少的代码"优雅"地表达出我们所想。所以,scala足以成为我们程序员必须涉猎的语言之一。

  本次的分享就到这里了,


11

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

13
12

文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。

原文链接:buwenbuhuo.blog.csdn.net/article/details/106356241

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。