JavaSE第1篇基础语法
1.基本数据类型
Java语言作为类C语言的一种,在书写格式与变量命名规则上与C语言几乎没有区别。不同于C语言的是,C语言的命名方法深受匈牙利命名法的影响,Java语言采用的更多的是驼峰命名法。实际编程中中也应当见名知意,养成良好的习惯。
Java语言一共有8种基本的数据类型,分别为:
整数类型:byte,short,int,long
浮点数类型:float,double(Java中浮点数默认是double,使用float时需要在后面加f)
字符类型:char(除了支持ascii码以外同时支持unicode编码)
布尔类型:boolean
自动转换
将较小的类型转换为较大的类型
byte -> short -> char -> int -> long -> float -> double
强制转换
将较大的类型转换为较小的类型
double -> float -> long -> int -> char -> short -> byte
所占字节数:
- byte 字节型 (8个bit,也就是1个字节)范围:-128~+127
- short 短整形(16个bit,也就是2个字节)范围:-32768~+32767
- int 整形(32个bit,也就是4个字节)最常用的类型:-2147483648 ~ +2147483647
- long 长整形(64个bit,也就是8个字节)范围:-9223372036854775808 ~ +9223372036854775807
- float 单精度浮点型 (32bit,4字节)
- double 双精度浮点型(64bit,8字节)
- char 字符型(16个bit,也就是2字节,它不带符号)范围是0 ~ 65535
自动类型推断(Java10具有的新特性)
1 |
|
运算符
Java语言中除了支持加减乘除四则运算以外,还支持位运算,移位运算,自增自减运算等。其中浮点数不支持位运算和移位运算。浮点数无法进行精确的表示,如果需要比较,只能比较两个浮点数之前的绝对值是否小于一个很小的数。
浮点数不同于整数除零会报ArithmeticException。浮点数并不会报异常,会返回几个特殊的值NaN,Infinity,-Infinity
运算符优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () [] . | 从左到右 |
2 | ! +(正) -(负) ~ ++ -- | 从右向左 |
3 | * / % | 从左向右 |
4 | +(加) -(减) | 从左向右 |
5 | << >> >>> | 从左向右 |
6 | < <= > >= instanceof | 从左向右 |
7 | == != | 从左向右 |
8 | &(按位与) | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右向左 |
短路运算: 布尔运算中重要的一个特点,如果布尔运算表达式能提前知道结果,则后续计算不再执行,直接返回结果。
三元运算: 根据第一个布尔表达式的结果,来选择执行哪一个表达式
instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回 true;否则,返回 false。
1 |
|
变量与常量
变量定义: [数据类型] [变量名称];
定义规范:
标识符可以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头。
变量不能重复定义,大小写敏感,比如A和a就是两个不同的变量。
不能有空格、@、#、+、-、/ 等符号。
应该使用有意义的名称,达到见名知意的目的(一般我们采用英文单词),最好以小写字母开头。
不可以是 true 和 false。
不能与Java语言的关键字或是基本数据类型重名,关键字列表如下:
变量可以单独定义也可以使用逗号分隔同时定义多个数据类型相同的变量。变量之间可以进行基本的运算。
常量定义: final [数据类型] [常量名称];
2.流程控制语句
Java语言的流程控制和C语言并无区别,主要划分为选择和循环结构。流程控制语句中,如果不包括{}则只会执行语句之后的一行,包括{}会执行括号里的所有内容。流程控制语句之间是可以相互嵌套。
代码块: Java中代码块指的是用 {} 包围的代码集合,分为4种:普通代码块,静态代码块,同步代码块,构造代码块
作用域: 变量的作用范围只限于所处的代码块之内,超过所对应代码块之外,就无法正常访问变量
选择结构
Java中的选择结构主要有ifelse语句和switch语言来实现。通常情况下,常量的选择采用switch语言来实现,变量的选择采用if语句
ifelse语句示例
1 |
|
switch语句示例
1 |
|
循环语句
Java中循环主要有for循环,while循环,dowhile循环三种。
for循环结构
for (表达式1;表达式2;表达式3) 循环体;
for循环中可以把表达式1放在循环体以外
1
2
3
4
5
6
7
8public static void main(String[] args) {
int i = 0; //在外面创建变量i,这样全部范围内都可以使用了
for (; i < 3; i++) { //for循环的三个表达式并不一定需要编写
System.out.println("准备就绪!!!");
System.out.println("当前i的值为:"+i);
}
System.out.println("当前i的值为:"+i);
}for循环可以三个表达式都不写
1
2
3
4public static void main(String[] args) {
for (;;) //如果什么都不写,相当于没有结束条件,这将会导致无限循环
System.out.println("为你千千万万遍");
}循环结构使用break跳出循环体
1
2
3
4
5for (int i = 0; i < 3; i++) {
if(i == 1) break; //我们希望当i等于1时提前结束
System.out.println("为你千千万万遍");
System.out.println("当前i的值为:"+i);
}循环结构使用continue进入下一次循环
1
2
3
4
5
6for (int i = 1; i < 4; ++i) {
for (int j = 1; j < 4; ++j) {
if(i == j) continue; //当i == j时,进行下一次
System.out.println(i+", "+j);
}
}
while和dowhile循环结构
相比for循环,while循环更多的用在不明确具体的结束时机的情况下来使用。for循环中的break和continue在while循环中同样适用
1 |
|
dowhile和while的区别在于,无论循环条件是否满足,都至少执行一次循环体里的内容
1 |
|
3.输入与输出
Java中使用Sytem类进行输入和输出。输出使用的是out变量来接受输出的数据,他是PrintStream类型的静态常量。输出主要有println、print、以及printlf三种输出方法。
print() - 它在引号内打印字符串。
println() - 它在引号内打印字符串,类似于print()方法。然后光标移动到下一行的开头。
printf() - 提供格式化输出,与C语言语法完全相同
1 |
|
Java中的输入需要导入“import java.util.Scanner;”,同时Scanner类中需要传入System.in参数,可以输入的数据类型示例如下
输入为字符串
1 |
|
输入为整数
1 |
|
输入为浮点数
1 |
|