目录
1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3)Spark的兴起,带动Scala语言的发展
1)JVM定义
JVM是Java Virtual Machine的缩写。它是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机。
JVM屏蔽了具体操作系统平台的信息(显然,就像是我们在电脑上开了个虚拟机一样),当然,JVM执行字节码时实际上还是要解释成具体操作平台的机器指令的。
通过JVM,Java实现了平台无关性,Java语言在不同平台运行时不需要重新编译,只需要在该平台上部署JVM就可以了。因而能实现一次编译多处运行。(就像是你的虚拟机也可以在任何安了VMWare的系统上运行)
2)JVM体系
JVM主要包括:程序计数器(Program Counter),Java堆(Heap),Java虚拟机栈(Stack),本地方法栈(Native Stack),方法区(Method Area)
3)JVM原理
JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。
4)JRE/JDK/JVM是什么关系
1、用class修饰的为伴生类,与java中的类相似,用object的修饰的为伴生对象,为的是解决scala中没有static关键字的问题。
2、伴生类与伴生对象可相互访问各自私有成员
3、伴生对象可为伴生类增加静态成员
- object Student {//伴生对象
- private val occupation:String="student"
- def main(args: Array[String]): Unit = {
- println('s')
- }
- }
-
- class Student(Id:Int,Name: String) {//伴生类
-
- def printInfo():Unit={
- println("学号:"+this.Id +" 姓名:" + this.Name +" 职业:" + Student.occupation)
- }
- }
如上,scala的设计者认为java中有static关键字,所修饰的是面向类的,而不是面向对象的,认为这不是真正的面向对象,所以在scala中将static关键字删掉了,但为了实现类似scala中的功能,引入了伴生对象的概念。
- object Test {
- def main(args: Array[String]): Unit = {
- val student1 = new Student(123, "张三")
- val student2 = new Student(124, "李四")
- student1.printInfo()
- student2.printInfo()
- }
- }
输出 :学号:123 姓名:张三 职业:student
学号:124 姓名:李四 职业:student
伴生对象相当于Java中的静态类,类似于单例模式。通常在里面放一些class共享的内容。
综述:
(1)使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移
(2)或者使用 ctrl + alt + L 来进行格式化
(3)运算符两边习惯性各加一个空格。比如:2 + 4 * 5。
(4)一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅