第二章 基本符号
引例
1 | import java.util.Scanner; |
变量
变量作用:
用于存储数据——输入、输出和中间数据。
声明变量:
数据类型 变量名;
注意:变量在使用前必须声明
例如:
1 | int x; |
变量声明
变量通常有初值,可以在一步中说明变量并对其初始化,例如:
1 | int x = 1; |
标识符
- 是用户定义的用于表示变量名、类名、接口名、方法名、方法的参数名等符号。
命名规则
- 由字母、数字、下划线_、美元符号$组成
- 首字母不能是数字
- 不能是保留字(50个)
- 区分大小写
- 标识符名称最好有意义
Java的基本符号
数字常量
- 整数:100,31,-100(以0开头表示8进制,以0x开头表示16进制)
- 小数:0.5
字符编码
字符串常量
- 用双引号括起来的字符序列,比如:“欢迎”
布尔常量:
- 只有两个值:true和false
数据类型
Java中共三种基本数据类型:
数值型
字符型
布尔型
常见数据类型见下表:字符数据类型
字符数据类型char用于表示单个字符。如:
1
2
3
4char c = 'A';
char c = '4';
char c = 98;
char c = ‘\\'布尔数据类型
布尔数据类型来自布尔代数,它的值域包括两个值:真(true)和假(false)。例如:
1
2boolean lightsOn = true;
boolean lightsOn = false;类型转换
精度由高到底排序:
double > float > long > int > short > byte
可以将低精度的值赋给高精度类型的变量
比如:
1
double i=10;
但是,如果不进行强制类型转换,就不能将高精度类型的值赋给低精度类型的变量。
如:
1
float f = 10.1;(错)
类型转换是一种操作,它把一种数据类型的值转换成另一种数据类型。
用于由高精度向低精度转换时;
例如:
1
2float f = (float)10.1;
int i = (int)f;Java中当两个类型不同的运算对象进行二元运算时,Java 自动 把精度较低的类型转换成另一个精度较高的类型。
数值运算时,表达式提升规律如下:
操作数中如果有double类型,则都会转换成double类型;
如果有float类型,则都会转换成float类型;
如果有long类型,则都会转换成long类型;
其他的byte, short, char, int 自动提升为int
例:1
2
3
4
5
6
7public class TypeConvert {
public static void main(String[] args) {
byte b1 = 3;
byte b2 = 4;
byte b3=b1+b2;//此处有语法错误 byte类型过小 数据类型长度溢出
}
}运算符
算术运算符包括:+, -, *, / 和 %。
整数除法的结果是整数,如5/2= 2而不是2.5。考虑1/2=?
运算符%得出除法的余数,如5%2=1 。
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21// MathmeticsOperationTest.java
public class MathematicsOperatorTest {
public static void main(String[] args) {
// 定义整形变量a,b,分别赋值20和7
int a=20;
int b=7;
// 进行加、减、乘、除和求余运算
int sum = a+b;
int sub = a-b;
int mul = a*b;
int div = a/b;
int res = a%b;
// 输出运算的结果
System.out.println("a="+a+" b="+b);
System.out.println("a+b="+sum);
System.out.println("a-b="+sub);
System.out.println("a*b="+mul);
System.out.println("a/b="+div);
System.out.println("a%b="+res);
}
}赋值运算符
进行变量说明后,可以用赋值语句给它赋一个值,赋值语句语法如下:
variable = value; variable = expression;
注意:在赋值语句中,左边变量的数据类型必须与右边值的数据类型相容。
例:1
2
3
4int x = 1;
double radius = 1.0;
char a = 'A';
x = x + 5*(3/2);复合赋值运算符
示例代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// CompareOperator.java
public class CompareOperator {
public static void main(String[] args) {
int a = 3;
int b = 4;
boolean bigger = a>b;
boolean less = a<b;
boolean biggerEqual = a>=b;
boolean lessEqual = a<=b;
boolean equal = a==b;
boolean notEqual = a!=b;
System.out.println("a="+a+" b="+b);
System.out.println("a>b:"+bigger);
System.out.println("a<b:"+less);
System.out.println("a>=b:"+biggerEqual);
System.out.println("a<=b:"+lessEqual);
System.out.println("a==b:"+equal);
System.out.println("a!=b:"+notEqual);
}
}增量运算符和减量运算符
前置增量/减量运算符:变量先加1或减1,再参与表达式中的运算。
++x 或者 --x后置增量/减量运算符:变量先参与表达式的运算,再加1或减1。
x++ 或者 x--
自增、自减运算符
x = 1;
y = x++;
y = ++x;上述语句运行后x和y的值分别是多少? x=3 y=3
示例代码:1
2
3
4
5
6
7
8
9
10
11
12
13// AddOne.java
public class AddOne {
public static void main(String[] args) {
int x1=3;
int x2=3;
// ++在后面
int y1 = x1++;
// ++在前面
int y2 = ++x2;
System.out.println("y1="+y1+" y2="+y2);
}
}比较运算符
运算符 名称 例 结果 < 小于 1<2 true <= 小于等于 1<=2 true > 大于 1>2 false >= 大于等于 1>=2 false == 等于 1==2 false != 不等于 1!=2 true
示例代码:
1 | // CompareOperator.java |
逻辑运算符
运算符 | 名称 | 描述 |
---|---|---|
&, && | 与 | 逻辑与,并且 |
, | 或 | 逻辑或,或者 |
^ | 异或 | 逻辑异或,排同 |
! | 非 | 逻辑否定,取反 |
示例代码: |
1 | // LogicOperator.java |
运算符 & 和 |
运算符 & 和 | 的两个运算对象都要计算。&又称为无条件与运算符,| 称为无条件或运算符。
使用&和 | 运算符可以保证不管左边的操作数是true还是false,总要计算右边操作数。
运算符 && 和 ||
使用运算符&& 和 ||时,如果左边的表达式能将结果确定,无需再进行右边的表达式计算。
条件运算符
Op1 ? Op2 : Op3
Op1为布尔型 ,当Op1为true,表达式结果为Op2的值,否则为Op3的值
例如:
2 > 1 ? 3 : 4
的值是 3
1 > 2 ? 3 : 4
的值是 4
字符串连接运算符
+
可以实现字符串的连接
基本格式: op1 + op 2
要求op1和op2至少要有一个是字符串,另一个可以是各种类型
示例代码:
1 | // StringJoin.java |
转义字符
换行符 | \n | \u000a |
回车键 | \r | \u000d |
退格键 | \b | \u0008 |
Tab键 | \t | \u0009 |
斜杠 | \ | \u005c |
单引号 | \’ | \u0027 |
双引号 | \” | \u0022 |