Scala简介:
hadoop生态圈--->java spark生态圈--->scala
1.scala是面向对象的、面向函数的基于静态类型的编程语言。
----静态语言(强类型语言):
静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
例如:C++、Java、Delphi、C#,Scala等。 scala编译后是字节码文件可以调用java原有的库!
----动态语言(弱类型语言):
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
(大型项目不太适合于动态语言)
2.安装Scala,版本选型2.11.8。
原因:spark版本选型为2.1.2,由scala2.11.8版本编译的
注意:a.安装目录不能有" "(空格)出现,否则抛:主类找不到.....
b.必须安装JDK,需版本为1.8.X以上;
1)scala windows运行环境安装:
同之前jdk环境的安装类似
配置用户变量: SCALA_HOME:D:\Programs
配置PATH: %SCALA_HOME%\bin;%SCALA_HOME%\jre\bin;
配置CLASSPATH: .;%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.;
至此,scala运行环境搭建完成,cmd,scala -version,没有错误表示搭建完成且正确。
2)scala liunx运行环境安装:
[hyxy@master soft]$ cp /mnt/hgfs/工具/scala/scala-2.11.8.tgz .
[hyxy@master soft]$ tar -zxvf scala-2.11.8.tgz
[hyxy@master soft]$ rm scala-2.11.8.tgz
[hyxy@master soft]$ ln -s scala-2.11.8 scala
[hyxy@master scala]$ gedit ~/.bash_profile
export SCALA_HOME=/home/hyxy/soft/scala
export PATH=$SCALA_HOME/bin:$PATH
[hyxy@master scala]$ source ~/.bash_profile
/**
* 第一个Scala程序 E:HelloScala.scala
* Scala和Java最大的区别是: * Scala语句末尾的分号(;)是可选的!
* -->cmd E:\>scalac HelloScala.scala
编译运行:
* 先编译:E:\>scalac HelloScala.scala 将会生成两个文件:HelloScala$.class和HelloScala.class
* 再运行:E:\>scala HelloScala
* 输出结果:hello scala!!!
**/
object HelloScala{
//主方法默认不用写static ,所以scala是静态的
def main(args: Array[String]): Unit = {
println("hello scala!!!")
}
}
1)def main(args:Array[String]): scala程序从main方法开始处理,程序的入口。
2)Scala注释:分为多行/**/和单行//
3)换行符:Scala是面向行的语言,语句可以用分号(;)结束或换行符(println()) 【不应该是\n 吗】
带参数的方法:
方法格式:
def 方法名(参数名:参数类型) :返回值类型 {
//方法体
//不需要写return时:方法体内的最后一行为返回值
}
//带参数的主方法
def main(args: Array[String]): Unit = {
println("Hello, " + args(0) + "!")
}
运行:
E:\>scala HelloScala.scala zhangsan
//带多个参数的主方法
object HelloScala{
//主方法默认不用写static ,所以scala是静态的
def main(args: Array[String]): Unit = {
var i = 0
while (i < args.length) {
println(args(i))