Scala,java,jvm的关系图
静态类型语言:在执行之前,数据类型就得确定下来
范式:编程方式
第一个scala代码
//说明
//1.object表示一个伴生对象,这里我们可以简单的理解就是一个对象
2.HelloScala就是对象名字。他底层真正对应的类名是HelloScala$,
对象是HelloScala$类型的一个静态对象MODULE$
3.当我们编写一个object HelloScala底层会生成两个.class文件,分别是HelloScala.clas和HelloScala$.class
4.Scala在运行时,流程如下
①先从HelloScala.class的main开始执行
public static void main(String[] paramArrayOfString){
HelloScala$.MODULE$.main(paramArrayOfString);
}
②然后调用HelloScala$.calss类的方法 HelloScala$.MODULE$.main
③即执行下面的代码
public void main (Strig [] args){
Predef..MODULE$.println("-----hello world ------");
}
程序解读:
1.def表示是一个方法,这是一个关键字
2.main表示方法的名字,表示程序入口
3.args:Array[Strig]表示形参,scala的特点是将参数在前,类型在后
4.Array[String]表示类型为数组
5.:Unit = 表示该函数的返回值为空(void)
*/
object HelloScala{
def main(args:Array[String]):Unit={
println("-----hello world ------")
}
}
查看源码
鼠标放在需要查看源码的地方,然后快捷键Ctrl + B
文档注释
在源码所在的文件夹内,使用scaladoc -d d:\mydoc Hello.scala 可以生成对应的文档说明
变量使用
var和val的区别
var的变量是可以改变的,val是不可变的。
var age = 10
age = 30
给属性定义为val,相当于底层加了final
数据类型
Scala与Java有着相同的数据类型,**在Scala中数据类型都是对象,**也就是说scala没有java中的原生类型
数据类型
//因为1.当把一个计算结果赋值一个变量时,则编译器会进行类型的转换和判断(即会看范围和类型)
// 2.当把一个字面量赋值一个变量时,则编译器只会进行范围的判定
var c2: Char = 'a' + 1 //错误,'a' + 1 为整形
var c3: Char = 97 + 1 //错误
var c4: Char = 98 //正确
值类型转换
赋值运算符
运算符的特殊说明
分支语句else-if注意事项
双重循环
循环返回值
for循环控制步长
While 循环中断
实现break的效果