第3章 操作符

在最底层,Java中的数据是通过常用操作符操作的.

1. 优先级

先乘除后加减,System.out.println()语句中包含”+”操作符.”+”意味着”字符串连接”,当编译器观察到一个String后面跟一个”+”,而这个”+”的后面又跟一个非String类型的元素时,就会尝试将这个非String类型的元素转换为String.

1.1 方法调用中的别名问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.fkcat.new03;
public class Letter {
char c;
}
package com.fkcat.new03;
public class PassObject {
static void f(Letter y){
y.c = 'z';
}
public static void main(String[] args) {
Letter x = new Letter();
x.c = 'a';
System.out.println("1:x.c "+x.c);
f(x);
System.out.println("2:x.c "+x.c);
}
}

方法f()好像要在它的作用域内复制其参数Letter y 的一个副本;但实际上只是传递了一个引用.所以代码行实际改变的是f()之外的对象.

1
y.c = 'z';

2. 算术操作符

如果要将X加4,并将结果赋回给X,可以这么写:X+=4;

3. 自动递增和递减

++a 等价于 a = a + 1;

4. 类型转换操作符

假设我们为某浮点变量赋以一个整数值,编译器会将int自动转换为float.类型转换运算允许我们显式地进行类型的转换,或者在不能自动进行转换的时候强制进行转换.