【Java菜鸟学习总结】Java基础(关键字、数据类型、运算符、流程控制)
【Java菜鸟学习总结】Java基础(关键字、数据类型、运算符、流程控制)
1、关键字
1.1、用于定义数据类型的关键字
class; interface; enum; byte; short; int; long; float; double; char; boolean; void;
1.2、用于定义数据类型值的关键字
true; false; null;
1.3、用于定义流程控制的关键字
if; else; switch; case; default; while; do; for; break; continue; return;
1.4、用于定义访问权限修饰符的关键字
private; protected; public;
1.5、用于定义类、函数、变量修饰符的关键字
abstract; final; static; synchronized;
1.6、用于定义类与类(接口)之间关系的关键字
extends; implements;
1.7、用于定义建立实例及引用实例,判断实例的关键字
new; this; super; instanceof;
1.8、用于异常处理的关键字
try; catch; finally; throw; throws;
1.9、用于包的关键字
package; import;
1.10、其他修饰关键字
native; strictfp; transient; volatile; assert;
2、保留字
byValue; cast; future; generic; inner; operator; outer; rest; var; goto; const;
3、标识符
3.1、标识符规则
- 由 26个英文字母大小写 ,0-9 数字,_ 或 $ 字符组成
- 数字不可以开头
- 不可以使用关键字和保留字,但可以包含关键字和保留字
- 严格区分大小写,长度无限制
- 不能包含空格
4、数据类型
Java中主要有基本数据类型和引用数据类型两大类
4.1、基本数据类型
基本数据类型一共有8中,分别是:
整数类型
byte; // 1字节,取值范围:-128 ~ 127
short; // 2字节,取值范围:-2^15 ~ 2^15 - 1
int; // 4字节,取值范围:-2^31 ~ 2^31 - 1
long; // 8字节,取值范围:-2^63 ~ 2^63 - 1
浮点类型
float; // 4字节,取值范围:-3.403E38 ~ 3.403E38,声明时后面必须加f或F(float f = 3.4F;)
double; // 8字节,取值范围:-1.798E308 ~ 1.798E308
字符型
char; // 2字节,值可以是中文汉字
布尔类型
boolean; // 值只能是true和false。和c/c++不同,不能赋值为0或非0整数,也不能赋值为null
4.2、引用数据类型
引用数据类型有3种,分别是类、接口、数组。
4.3、基本数据类型的自动类型转换
byte/char/short ---> int ---> long ---> float ---> double
-
byte、short、char之间不能互相转换,计算时必须转为int类型。
-
boolean不能转为其他任何数据类型。
5、运算符
5.1、算术运算符
+; // 正号
-; // 负号
+; // 加
-; // 减
*; // 乘
/; // 除
%; // 取模
++; // 自增,包括前自增和后自增
--; // 自减,包括前自减和后自减
+; // 字符串相加
5.2、赋值运算符
+; +=; -=; *=; /=; %=
5.3、比较运算符
==; // 相等于
!=; // 不等于
<; // 小于
>; // 大于
<=; // 小等于
>=; // 大等于
instanceof; // 检查是否是类的对象
5.4、逻辑运算符
&; // 逻辑与,用于布尔类型
|; // 逻辑或,用于布尔类型
!; // 逻辑非,用于布尔类型
&&; // 短路与
||; // 短路或
^; // 逻辑异或
5.5、位运算符
<<; // 左移
>>; // 右移
>>>; // 无符号右移
&; // 与运算
|; // 或运算
^; // 异或运算
~; // 反码
5.6、三元运算符
(条件表达式)?表达式1:表达式2;
6、程序流程控制
6.1、顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转。
6.2、分支结构
根据条件,选择性地执行某段代码。
有if..else和switch两种分支语句。
6.3、循环结构
根据循环条件,重复性的执行某段代码。
有while、do...while、for、foreach(jdk1.5)。