Scala与Java代码对比
主程序入口:
/**
* java中class里面即可以有static修饰的,也可以有普通的属性和方法
* scala中没static关键字
* java的main方法: public static void main(String[] args){...}
* scala中分为class与object
* class里面的属性与方法都是类似java非static修饰的
* object里面的属性与方法都是类似java static修饰的
* 所以main方法必须写在object中
* scala中没有Public关键字,默认就是Public效果
* scala中main方法: def main( args:Array[String]):Unit = {..}
* def: defined的缩写,def标识方法
* main: 方法名
* (..) : 方法的参数列表
* args: 参数名
* Array[String]: 参数类型
* Array就是数组,[String] 代表是Array中的元素类似是String
* Unit就是类似java的void,scala定义方法的时候返回值类型定义在参数列表的后面通过:分割
*
* scala中如果一行只写一个语句,那么;可以省略,如果一行写多个语句则;不能省略
*/
注释:
/**
* java注释:
* 单行注释 //
* 多行注释 /*...*/
* 文档注释 /** .. */
* scala的注释和java完全一样
*/
命名规范:
/**
* java中变量命名规范: 必须是数字、字母、_组成,首字母不能是数字
* scala中变量命名规范: 必须是数字、字母、_、特殊符号组成,首字母不能是数字
* scala中特殊符号命名是scala内部使用,不推荐开发人员使用
* scala实际开发中变量的命名采用与java一样的原则, 驼峰原则
*/
变量定义:
/**
* java定义变量: 变量类型 变量名 = 值
* scala定义变量的语法: val/var 变量名: 变量类型 = 值
* val与var的区别:
* val修饰的变量不能被重新赋值,类似java final修饰
* var修饰的变量可以被重新赋值
* scala中变量定义的时候必须初始化
* scala在定义变量的时候,变量类型可以省略,省略之后scala会自动推断类型
*/
String:
/**
* java中如何获得一个字符串:
* 1、通过new关键字创建:new String(..)
* 2、通过""包裹:".."
* 3、通过一些方法: toString()、subString()
* 4、字符串拼接: ".." + "..."
* scala中获取字符串:
* 1、通过new关键字创建:new String(..)
* 2、通过""包裹: ""
* 3、字符串拼接:
* 1、".." + "..."
* 2、插值表达式: s"${变量名/表达式}"
* 4、一些方法: toString、subString、format
* 5、三引号: """ ... """ [能够完整的保留字符串的输入格式]
*/
数据类型:
/**
* java数据类型:
* 1、基本数据类型:
* byte、short、char、int、long、float、double、boolean
* 2、引用类型
* String,数组、集合、class
* scala是完全面向对象的
*
* Any: 所有类的父类,类似java的object
* AnyVal: 值类型
* Byte、Short、Char、Int、Long、Float、Double、Boolean
* Unit: 相当于java的void,有一个实例()
* StringOps: 对java 字符串的扩展
* AnyRef: 引用类型
* String,java集合、java数组、scala数组、scala集合、java/scala class
* Null: 是所有引用类型的子类, 有一个实例null,null一般用来给引用类型赋予初始值,在赋初始值的时候,变量的类型必须定义
*
* Nothing: 所有类型的子类,没有具体的实例,是scala内部使用
*/
数据类型转换:
/**
* 数字与数字的转换:
* 低精度转高精度: 自动转换
* 高精度转低精度: 通过toXXX方法转换
* 数字和字符串的转换:
* 数字转字符串: toString/字符串拼接
* 字符串转数字: 通过toXXX方法转换
*/
读取数据:
/**
* 从控制台获取数据: StdIn.readXXX
* 从文件读取数据: Source.fromFile(...)
*/
operator:
/**
* java运算符:
* 1、算术运算符: + - * / ++ -- %
* 2、逻辑运算符: && || !
* 3、位运算符: & | << >> >>>
* 4、三元运算符: 布尔表达式 ? true的结果 : false的结果
* 5、赋值运算符: = += -= *=
* 6、比较运算符: == != >= <= > <
* scala中没有三元运算符,可以用if-else实现三元运算符的作用
* scala中没有++ --,后续通过+1 -1实现++ --的功能
* scala运算符
* 1、算术运算符: + - * / %
* 2、逻辑运算符: && || !
* 3、位运算符: & | << >> >>> 【算法】
* 4、赋值运算符: = += -= *=
* 5、比较运算符: == != >= <= > <
* java中运算符就是一个普通符号,但是在scala中运算符都是方法
* scala中方法调用的两种形式:
* 1、对象.方法(参数值,..)
* 2、对象 方法 (参数值,..) //如果方法只有一个参数,()可以省略
*/