Java | 第一阶段
Java 第一阶段
# 变量
变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量的值。
- 不同的变量,类型不同,占用的空间大小不同。
- 变量必须先声明,后使用。
- 变量在同一个作用域内不能重名。
# 基本数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。
# 整数类型
- 整数类型有固定的范围和字段长度,不受操作系统的影响。
- 整数常量默认为 int 型,声明 long 型常量需要在后面加
l
或L
。 - bit(位)是计算机最小存储单位,byte(字节)是计算机中基本存储单位,1byte 等于 8bit。
# 浮点类型
- 浮点数 = 符号位 + 指数位 + 尾数位
- 尾数部分可能丢失,造成精度损失(小数都是近似值)。
- 浮点数常量默认为 double 型,声明 float 型常量需要在后面加
f
或F
。
# 字符类型
- 字符常量是用单引号括起来的单个字符。
- 转义字符
\
可以将其后的字符转变为特殊字符常量。 - char 本质是一个整数,在输出时,是 Unicode 码对应的字符。
- 可以直接给 char 赋一个整数,然后输出时,会按照对应的 Unicode 字符输出。
- char 是可以进行运算的,相当于一个整数。
# 布尔类型
- 布尔类型数据只允许取值
true
和false
,没有null
。
# 基本数据类型转换
精度就是这个类型在内存中分配的内存空间,也就是容量。
# 自动类型转换
在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型。
- char ---> int ---> long ---> float ---> double
- byte ---> short ---> int ---> long ---> float ---> double
注意细节:
- 多种类型的数据混合运算时,系统首先自动将所有的数据转换成精度最大的那种数据类型,然后再进行计算。
- 把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动类型转换。
- 在进行赋值时,byte 或 short 与 char 之间不会相互自动转换。
- byte、short、char 它们三者可以进行混合运算,在运算时首先转换为 int 类型。
- boolean 不参与转换。
- 表达式结果的类型自动提升为操作数中精度最大的类型。
# 强制类型转换
自动类型转换的逆过程,将精度大的数据类型转换为精度小的数据类型。
使用时要加上强制转换符 ()
,但可能造成精度降低或溢出,格外要注意。
注意细节:
- 强转符号只针对最近的操作数有效,多个操作数往往会使用小括号提升优先级。
- char 可以保存 int 的常量值,但不能保存 int 的变量值,需要强转。
- byte、short、char 在进行运算时,当做 int 处理。
# 转 String 类型
- 基本数据类型转 String 类型:将基本数据类型的值 +
""
即可。 - String 类型转基本数据类型:通过基本数据类型的包装类调用 parseXxx 方法即可。
# 运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
# 算数运算符
算术运算符是对数值类型的变量进行运算的,在 Java 程序中使用的非常多。
注意细节:
- 对于除号
/
,它的整数除和小数除是有区别的,整数之间做除法时,只保留整数部分舍弃小数部分。- 取模
%
的本质,a % b
等于a - (int)(a / b) * b
。
+
号的使用:
- 当左右两边都是数值型时,则做加法运算。
- 当左右两边有一方为字符串时,则做拼接运算。
- 运算顺序是从左到右。
# 关系运算符
关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。 关系表达式经常用在 if 结构的条件中或循环结构的条件中。 关系运算符组成的表达式,我们称为关系表达式。
# 逻辑运算符
用于连接多个条件表达式,最终的结果也是一个 boolean 值。
运算规则:
a & b
逻辑与:当 a 和 b 同时为 true,则结果为 true,否则为 false。a && b
短路与:当 a 和 b 同时为 true,则结果为 true,否则为 false。a | b
逻辑或:当 a 和 b 有一个为 true,则结果为 true,否则为 false。a || b
短路或:当 a 和 b 有一个为 true,则结果为 true,否则为 false。a ^ b
逻辑异或:当 a 和 b 不同时,则结果为 true,否则为 false。!a
取反,或者非运算:当 a 为 true,则结果为 false,当 a 为 false 是,结果为 true。
&&
与 &
的区别:
&
逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低。&&
短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高。
||
与 |
的区别:
|
逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低。||
短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高。
# 赋值运算符
- 基本赋值运算符:
=
- 复合赋值运算符:
+=
,-=
,*=
,/=
,%=
等。
注意细节:
- 运算顺序从右往左。
- 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值。
# 三元运算符
条件表达式 ? 表达式一 : 表达式二;
运算规则:
- 如果条件表达式为 true,运算后的结果是表达式一。
- 如果条件表达式为 false,运算后的结果是表达式二。
# 位运算符
# 运算符优先级
运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。 只有单目运算符、赋值运算符是从右向左运算的。 如下表,上一行运算符总优先于下一行。
# 控制结构
# 顺序控制
# 分支控制
# 双分支
# 嵌套分支
# switch 分支
# 循环控制
# for
# while
# do...while
# 数组的排序和查找
# 面向对象编程
上次更新: 2024/10/14, 19:46:59