package com.supeng.spark.scala
/*
* object 作为Scala中的一个关键字,相当于java中的public static class 这样的一个修饰符,也就是说object中的所有成员
* 都是静态的。所以我们在这个例子中的main方法是静态的,不需要类的实例就可以直接被虚拟机调用,而这正是作为JVM平台上程序入口的
* 必备条件
* 疑问:object是不是一个对象(此时,你肯定是从Java的角度考虑的),实际上object是scala的静态类,不是对象
* 从Spark的Master和Worker中发现main的方法都是在object中的。
*/
object HelloScalaO {
/*
* 1. def是什么,def是scala的关键字,所有用def定义的内容都是函数或者方法
* 2.这里的main是方法,因为被def定义而具备函数特征
* 3.main是scala语言中规定scala的应用程序的入口,一个运行的scala的程序
* 4.args: Array[String] args是参数名称,Array[String] 是传入参数类型集合
* 5. :Unit 表明main入口方法的类型是Unit,也就是说执行main方法后返回的Unit类型
* 6.Unit是什么类型,相当于Java中的void类型
* 7,=是什么?是表明main方法执行的结果是由谁来赋值,或者是main方法的方法
* 8,方法体一般有{}来封装,里面可以有很多条语句
* 9,{}语句块默认的类型是最后一条语句的结果类型就是{}的返回类型
* 10.跟踪源代码发现Scala的println的IO操作是借助了Java的IO操作,也就是说Scala调用了java
* 11,如果方法或者函数的类型或者返回类型是Unit的话,可以直接去掉 :Unit ,否则其他情况不能去掉
* 12,关于println打印内容到控制台,底层借助了Java IO功能,一个实施情况是Scala很多时候使用Java的实现来
* 缩短开发时间,例如说操作数据源(DB,NoSql等)的JDBC,再例如关于Thread的操作,Scala也往往也会直接使用Java中的Thread
* 13,按照当今OS的原理,程序的main入口方法都是运行在主线程中的,OS的运行分为Kernel Space和User Space,
* 应用程序是运行在 User Space中,应用程序Scala所在的进程一般是OS Fork出来的,被Fork出来的应用程序进程默认会有主线程,
* 而我们的main就是默认在主线程中的。
*/
def main(args: Array[String] ) {
println("Hello Scala!") //在console上打印出“Hello Scala”这个字符串并且换行
println(args.length)
}
}
Scala 开启Scala编程语言之旅
猜你喜欢
转载自blog.csdn.net/superiorpengFight/article/details/53484001
今日推荐
周排行