数据类型
程序中对于每一种数据都定义了明确的具体数据类型,在内存中 分配了不同大小的内存空间
数据类型分为基本数据类型和引用数据类型。
基本数据类型
基本数据类型:
- 数值型:整数类型、浮点类型
- 字符型
- 布尔型
整数类型: - byte:占四个字节
- short:占两个字节
- int:占四个字节
- long:占四个字节
java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’
浮点类型
Java 浮点类型有两种表示形式 - 十进制数形式,例如: 3.14 314.0
- 科学记数法形式,如 3.14e2 3.14E2
- 类型分为float和double,分别占4个字节和8个字节
- java 浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在 数字后面加 f 或 F
布尔型 - boolean 类型适于逻辑运算,一般用于程序流程控制
- java语言中boolean 类型数据只允许取值 true 或 false
- 注意:不可以0或非 0 的整数替代false和true,这点和C语言不同
字符型 - 字符型char char 型数据用来表示一个单个字符.
- char占2字节
- 用单引号括起来
- 例如: char c1 = ‘a’; char c2 =‘中’
- 可以涵盖世界上所有书面语的字符
- char运算 char类型是可以运算的因为char在字符编码表中有对应的数值。
- 在java中,对char类型字符运行时,直接当做对应编码表的整数来对待. char c=‘a’+1; 先将’a’提升为int,计算结果98,对应的字符是b.
基本数据类型转换
- java中可以从任意基本类型转型到另外的基本类型
- boolean 类型不可以转换为其他的数据类型
基本数据类型转换分为默认转换和强制转换: - 默认转换 :整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以 下原则: 容量小的类型默认转换为容量大的数据类型;
数据类型按容量大小排 序为: byte,shor t,char->int->long->float->double ,byte,short,char之 间不会互相转换,他们三者在计算时首先会转换为int类型 - 强制转换:容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造 成精 度降低或溢出;使用时要格外注意
有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算
long类型与float类型的大小
在内存中占用的是4个字节的空间,而long型占用的是8个字节.float型的最大值会大于long型的最大值 long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是负2的63次方到正2的63次方-1。 而float在内存中占4个字节,共32位,但是浮点数在内存中浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。 其中第1位,符号位,即S。接下来的8位,指数域,即E。 剩下的23位,小数域,即M。 也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是 按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大
引用数据类型
引用数据类型:类、接口、数组