Scala 是 Scalable Language 的简写,是一门多范式(编程的方式)的编程语言
Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程
Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
Scala 单作为一门语言来看, 非常的简洁高效
终端中输入“scala”命令打开scala解释器(REPL--Read-Eval-Print-Loop)
scala命令行窗口,我们称之为REPL,也称之为交互式解释器。
说明
在命令行窗口中输入scala指令代码时,解释器会读取指令代码 并计算对应的值,然后将结果打印出来(P),接着循环等待用户输入指令。从技术上讲,这里其实并不是一个解释器,而是指令代码被快速的编译成Java字节码并被JVM加载执行。最终将执行结果输出到命令行中
Scala是一门以java虚拟机(JVM)为运行环境
①先编译完scalac Hello.scala 再执行 scala Hello ②边编译边执行 scala Hello.scala //这种方式会有点慢,每次都要进行编译 解释型(效率低)边编译边执行直接
object TestScala { // scala程序的入口依然是main方法 // scala中声明方法或函数,需要使用def关键字 // scala中声明的方法默认的访问权限就是public,所以可以省略 // scala是完全面向对象的语言,所以没有静态语法,没有static关键字 // scala采用Unit对象代替void // java是强类型语言,把类的类型写在前边声明;scala可以推断,看重变量、类的名称,它把变量args写前边; // scala中用中括号表示泛型 def main(args: Array[String]): Unit = { printf("Hello scala") } }
static跟类型 对象相关
由于Scala是完全面向对象的语言,所以是,没有静态语法且没有static关键字的,那么如果想要模拟Java中的静态语法操作,该怎么办呢?
反编译,两个.class文件(两个类)是模仿静态语法,在编译之后有静态static
$ 内部类
Hello.class
import scala.reflect.ScalaSignature; @ScalaSignature(bytes=" 06 01 25:Q! 01 02 02 25 Q 01S3mY>T 21aA 01y 25l 07 17^=? 07 01 01"AB 04 16 03 1Q 01 03 02 02% 21Q 01S3mY>