(1)、 scala中一切数据都是对象,都是Any的子类

(2)、scala中数据类型分为两大类: 数值类型 ( AnyVal ,即any value,任意值)、 引用类型 ( AnyRef ,即any reference,任意引用);

(3)、scala数据类型仍然遵守 低精度的值类型向高精度的值类型,自动转换(隐式转换) char类型自动转换为Int类型

(4)、scala中 StringOps是对JAVA中String的增强

(5)、 Unit:对应JAVA中的void,空值,表示方法没有返回值 。Unit是一个数据类型,只有一个对象就是()。Void不是一个数据类型,只是一个关键字;

(6)、 Null是一个类型,空引用 ,只有一个对象就是null,它 是所有引用类型(AnyRef、Scala class、Scala Collections、java Class)的子类

(7)、 Nothing,是所有数据类型的子集 ,只有一个对象就是null,既不是空引用也不是空值; 主要用在一个函数没有明确返回值时使用 ,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

例如:抛异常时(兼容性)

1、整数类型

(1)、 整数默认类型为Int;小数默认类型为Double;

(2)、长整型数值定义:val a1 = 12334444L;

2、字符类型(Char)

char表示单个字符;单个字符(包括符号、数字、字母)的底层保存是用的ASCII码;

控制字符  :'\t'表示制表符;'\n'表示换行符;

转义字符  :'\\'表示\;'\"'表示";

3、布尔类型

也称为Boolean类型;Boolean类型数据只允许取值true和false;只占1个字节;

4、空类型

简单总结:空值Unit、空引用Null、异常返回Nothing

二、Scala数据类型转换

1、基本说明

(1)、 自动提升原则:有多种类型的数据混合计算时,系统首先自动将所有数据转换成精度大的那种数据类型,然后再进行计算;

(2)、强制类型转换:精度大的数值类型强制转换为精度小的数值类型;

(toInt()、toShort()、toChar()、toByte()、toLong()、toFloat()、toDouble()、toString());

例如 val num2: Long = 309

val num1: Byte = 11

val result = (num1 + num2).toInt  //result结果为Long类型,强制转换为Int类型

注意:强制类型转换可能会导致数据精度的丢失或数据溢出。

(3)、(byte、short)和char之间不会相互自动转换;

(4)、byte、short、char他们三者可以计算,在计算时首先转换成int类型;

未完待续~~