Java基础 第二章
第一部分 变量和数据类型
1.1 变量概述
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
数学中,可以使用字母代替数字运算,例如 x=1+5 或者 6=x+5。 程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比 如x保存5,x也可 以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型
1.2 数据类型
数据类型分类
Java的数据类型分为两大类:
基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
引用数据类型:包括 类 、 数组 、 接口 。
数据类型 | 关键字 | 内存占用 | 取值范围 |
字节型 | byte | 1字节 | -128~127 |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int(默认) | 4个字节 | -231次方~2的31次方-1 |
长整型 | long | 8个字节 | -2的63次方~2的63次方-1 |
单精度 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度 | double(默认) | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2字节 | 0-65535 |
布尔型 | boolean | 1字节 | true,false |
Java中的默认类型:整数类型是 int 、浮点类型是 double
1.3 变量的定义
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
定义变量的语法
数据类型 变量名 = 数据值;
说明
1.= 数据值 可以省略不写
2.可以同时声明多个同一类型的变量, 写法 数据类型 变量名1,变量名2=值; 注意变量2有值,变量1没有
给变量赋值的语法
变量名 = 数据值;
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
1.4 注意事项
变量名称:在同一个大括号范围内,变量的名字不可以相同。
变量赋值:定义的变量,不赋值不能使用。
第二部分 运算符
2.1 算数运算符
算数运算符 | |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 取余 |
++, -- | 自增,自减 |
++ 运算,变量自己增长1。反之, -- 运算,变量自己减少1,用法与 ++ 一致。
独立运算:
变量在独立运算时, 前 ++ 和 后 ++ 没有区别 。
变量 前 ++ :
例如 ++i 。 变量 后 ++ :例如 i++ 。
混合运算: 和其他变量放在一起, 前 ++ 和 后 ++ 就产生了不同。
变量 前 ++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果 都是2。赋值运算符
赋值运算符 | |
= | 等号 |
+= | 加等 |
-= | 减等 |
*= | 乘等 |
/= | 除等 |
%= | 取模等 |
第三部分 数据类型转换
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的 转换。
3.1 自动转换
一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?
int i = 1;
byte b = 2;
运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。
自动转换 :将 取值范围小的类型 自动提升为 取值范围大的类型 。
byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的 结果还是 int 类型。
转换规则
范围小的类型向范围大的类型提升, byte 、short、char 运算时直接提升为 int 。
byte、short、char-->int-->long-->float-->double
强制转换
double 类型内存8个字节, int 类型内存4个字节。 1.5 是 double 类型,取值范围大于 int 。可以理解 为 double 是8升的水壶, int 是4升的水壶,不能把大水壶中的水直接放进小水壶去。 想要赋值成功,只有通过强制类型转换,将 double 类型强制转换成 int 类型才能赋值。
强制类型转换 :将 取值范围大的类型 强制转换成 取值范围小的类型 。 比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
转换格式:
数据类型 变量名 = (数据类型)被转数据值;
强烈注意
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。