1.为什么说scala是一门可伸缩的语言
将面向对象和函数式编程结合在一起
2.谈谈你对 面向对象的理解
面向对象是一种编程风格,它允许程序构造一种结构
将数据和操作放在这种结构中,这个结构称之为 对象
对象可以以值的形式存在在其他对象中,也可以作为参数进行传递
3.为什么说 java是非完全面向对象 scala是完全面向对象
java中允许 不是对象的值 存在,比如 基本数据类型
允许 不以任何对象的成员形式存在的静态字段好静态方法
scala中 所有的值都是对象 所有的操作都是对象的方法
4.谈谈你对 函数式编程的理解
函数式编程两大核心理念为指导
第一理念:
函数式一等(first-class)的值
也就是说 函数值f(x) 的地位跟整数、字符串...是相同的
通俗的讲 函数可以作为一种数据类型来使用,被用来 定义变量、作为参数传递、作为函数的返回值 来使用
第二理念:
程序中操作应该将输入值映射成输出值,而不是当场(in place)修改数据
也可以理解为 函数不应该有副作用(side effect),方法只能通过接收参数和返回结果这两种方式与外部环境通信
5.为什么选择使用 scala
与java的高度兼容
由于和java共用JVM,scala代码可以调用java方法、访问java字段、继承java的类、实现java的接口
代码的精简风格
比如类的构造方法
代码的高级抽象
允许使用 lambda表达式
先进的静态类型系统
通过类型推断 避免了 所有变量都要显式声明数据类型