JAVA精髓必备知识点-诺禾

我们来看一个打印语句:

System.out.println(“xxxx”);

这个语句是标准的控制台打印语句,但是也比较繁琐,我们可以通过静态导入的方式,简化语句。示例如下:

import static net.mindview.util.Print.*;

public class Test {

public static void main(String[] args) {

print(“xxx”);

}

}

我们看到,通过静态引入,代码量减少了很多,我们可以像使用本类里面的方法一样,使用print()来打印控制台语句,但是这种方式不是在所有的场合都适用,所以我们如果需要打印的代码量很少,不需要引入这种方式,直接import引入,使用System.out.println()打印就可以了。

全面总结Java操作符,JAVA精髓必备知识点
操作符主要用于操作数据,而且还可以生成一个新的数值。有的操作符会改变数字本身,比如++。常用的操作符有+、-、*、/等。操作符可以操作基本类型,也可以操作其他类型的对象,操作其他类型的操作符有=、==、!=。需要注意的是,String类型是可以通过+和+=来操作的。

操作符优先级

如果在一个表达式里面,有多个操作符的时候,就必须确定操作符的优先级了,从而确定计算的顺序,最常见的操作顺序是先乘除后加减,如果我们忘记了优先级,最简单的办法就是加括号来明确。

比如:int a = 1 + x -2 /3 – y和int a = 1 + (x -2 )/(3 – y)就完全不一样。

全面总结Java操作符,JAVA精髓必备知识点
赋值

赋值操作符 = 的作用是把操作符号右边的值赋值给左边,但是左边只能是引用,用于存储右边的值,右边的值就灵活很多了,可以是变量、常数或者表达式(必须生成数值)。语法示例:

a = 5;

对基本类型使用赋值操作符,是存储了实际的数值,比如a = 6;a值变化不会影响6;

但是对其他对象使用赋值操作符的时候,本质上是将右边的对象的引用赋值左边的引用,比如:

A a = new A();

A b = new A();

a = b,如果a 和 b都是普通对象,那么a = b相当于使a和b都指向了b指向的对象。以后对a赋值其实就是对b赋值。

但是如果使用下面的语法操作,那么就是a和b两个引用就不会绑定到一个对象上了。、

a.属性 = b.属性;

全面总结Java操作符,JAVA精髓必备知识点
算术操作符

Java语言中的操作符有加号(+)、减号(-)、除号(/)、乘号(*)和取模操作符(%,整数除法中取余数),如果整数进行除法操作,会直接去掉小数位。

java语言也有简化操作符,比如 +=和%=操作符,需要注意的是a %= b相当于a%b。

自增和自减操作符

java语言中有很多快捷运算操作符,比如自增(++)和自减(–),这两个操作符意思分别代表增加一个单位和减少一个单位。比如 a++就等同于a = a+1,a—就等同于a = a -1,这两种操作符都会改变数值本身。

自增和自减操作符有两种方式,一种是前缀式,一种是后缀式。前缀式示例:++a、–a;后缀式示例:a++、a–;前缀式先运算,后生成数值;后缀式先生成数值,再计算。

关系操作符

关系操作符有>、<、<=、>=、==和!=。关系操作符的结果只有两种,关系为真是true,关系不真是false。对于boolean类型,只能用等于和不等于,其他类型没有意义,无效。其他基本类型适用所有操作符。

对象相等判断

我们都知道关系操作符==、!=可以判断两个对象是否相等,但是==、!=比较基本类型没有问题,但是如果是其他对象,那么它们比较的是两个对象的引用,而不是内容。

比如:

public class Test {

public static void main(String[] args) {

Integer a = new Integer(42);

Integer b = new Integer(42);

System.out.println(a == b);

}

输出:

false

我们看到a、b两个对象的值都是42,为什么用操作符比较是false呢,这是因为比较的是两个对象的引用,这两个对象引用不同的对象,所以是false。

如果我们想比较两个对象的内容,那么可以使用equals()这个方法,但是基本类型还是需要使用==、!=来判断内容是否相同。

但是我们需要注意,equals()方法默认的还是比较引用,如果我们自己创建一个对象,必须要覆盖equals()这个方法,才能比较对象的内容。java类库里面大都实现了equals()方法,所以我们不需要再重写。

猜你喜欢

转载自blog.csdn.net/yyone123/article/details/107793602