Java运算符+(优先级、目数)+

更新时间:2023-05-09 21:30:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

序列号

符号

名称 点 圆括号 方括号 正号 负号 自增 自减 按位非/取补运算 逻辑非 乘 除 取余 加 减 左移位运算符 带符号右移位运算符 无符号右移 小于 小于或等于 大于 大于或等于 确定某对象是否属于

结合性(与操作数) 从左到右 从左到右 从左到右 从右到左 从右到左 从右到左 从右到左 从右到左 从右到左 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从左到右 从右到左

目数 双目

说明

.1

2

( ) [ ] + ++ - ~ ! * / % + << >> >>> < <= > >=instanceof

单目 单目 单目 单目 单目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 双目 三目 关系运算符“==”说明 关系运算符“大于”说明 整数除法:取商的整数部分,小数部分去掉, 不四舍五入 “!”不可以与“=”联用 前缀增,后缀增 前缀减,后缀减

3

4

5

6

指定的类 等于 不等于 按位与 按位或 按位异或 短路与 短路或 条件运算符 赋值运算符

7 8 9 10 11 12 13

14

== != & | ^ && || ? : = += -= *= /= %= &= |= ^= <<= >>= >>>=

混合赋值运算符

从右到左

双目

说明:

1. 算术运算符 + :加法 - :减法 * :乘法 / :除法

% :取余运算 2. 关系运算符

< :只能比较基本类型数据之间的关系,不能比较对象之间的关系。 > : (同关系运算符“<”) <=: (同关系运算符“<”) >=: (同关系运算符“<”)

== :若使用该运算符比较两个对象的引用(变量),则实质上是比较两个变量

是否引用了相同的对象。所谓相同的对象是指,是否是在堆栈(Heap)中开辟的同一块儿内存单元中存放的对象。

若比较两个对象的引用(变量)所引用的对象的内容是否相同,则应该使

用equals()方法,该方法的返回值类型是布尔值。需要注意的是:若用类库中的类创建对象,则对象的引用调用equals()方法比较的是对象的内容;若用自定义的类来创建对象,则对象的引用调用equals()方法比较的是两个引用是否引用了同一个对象,因为第二种情况equals()方法默认的是比较引用。 != :(同关系运算符“==”)

3. 逻辑运算符 (操作符只能是布尔类型的) && || !

4. 位运算符 & | ^

! :不可以与=联用,因为!是一元操作符;不可以对布尔类型的数据进行按位非运算

5. 移位运算符(只能处理整数运算符)

Char、byte、short类型,在进行移位之前,都将被转换成int类型,移位后的结果也是int类型;移位符号右边的操作数只截取其二进制的后5位(目的是防止因为移位操作而超出int类型的表示范围:2的5次方是32,int类型的最大范围是32位);对long类型进行移位,结果仍然是long类型,移位符号右边的操作符只截取其二进制的后6位。 << :

>> :若符号位为正,则在最高位插入0;若符号位为负,则在最高位插入1 >>> :无论正负,都在最高位插入0

Java代码

1. <strong>import java.util.Stack; 2.

3. public class aClass { 4. fun() {

5. static int i = 0; 6. i++; 7. } 8.

9. public static void main(String args[]) { 10. aClass obj = new aClass(); 11. obj.fun(); 12. obj.fun(); 13. } 14.

15. }</strong> question is :

what will be the value of I ? A. Compilation error B. Run time Error C. 1 D. 2

此题考察修饰符,函数定义等,故从网上搜罗了下相关资料,总结如下: 类、方法、成员变量和局部变量的可用修饰符

类的修饰符整合

一.类 类的修饰符:

Public:可以在其他任何类中使用,默认为统一包下的任意类。

Abstract:抽象类,不能被实例化,可以包含抽象方法,抽象方法没有被实现,无具体功能,只能衍生子类。 Final:不能被继承。 二.变量 变量修饰符:

一个类的成员变量的声明必须在类体中,而不能在方法中,方法中声明的是局部变量。 1. 可访问修饰符:

2. static:类变量:一个类所拥有的变量,不是类的每个实例有的变量。类变量是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量,因此可以通过类本身或者某个对象来访问类变量。 3. final:常量。

4. volatile:声明一个可能同时被并存运行的几个线程所控制和修改的变量。 实例变量:和类变量对应,即每个对象都拥有各自独立的实例变量。 三.方法:(和变量对象分为实例方法和类方法,并用有无static修饰区别) 类方法:使用static关键字说明的方法

1.第一次调用含类方法的类是,系统只为该类创建一个版本,这个版本被该类和该类的所有实例共享。

2.类方法只能操作类变量,不能访问实例变量。类方法可以在类中被调用,不必创建实例来调用,当然也可以通过对象来调用。

实例方法:实例方法可以对当前对象的实例变量操作,而且可以访问类变量。

方法可以重载,要求:方法名相同,但是参数必须有区别。(参数不同可以使类型不同,顺序不同,个数不同)

方法的返回类型:若无返回类型,则声明为void. 方法中的变量作用域: 1. 成员变量:整个类。

2. 局部变量:定义起到方法块结束为止。 3. 方法参数:整个方法或者构造方法。 4. 异常处理参数:参数传递给异常处理方法。

构造方法:和类同名的方法。为新建对象开辟内存空间后,用于初始化新建的对象。不能用对象显式的调用。

静态初始化器:格式:static{<赋值语句组>} 静态初始化器与构造方法的区别:

方法的修饰符:

抽象方法:用abstract修饰,只有声明部分,方法体为空,具体在子类中完成。 类方法:静态方法,用static修饰,

1. 调用时,使用类名作为前缀,而不是类的某个实例对象名 2. 不能被单独对象拥有,属于整个类共享。 3. 不能处理成员变量。

最终方法:用final修饰,不能被子类重新定义的方法。

本地方法:用native修饰的方法,表示用其他语言书写的特殊方法,包括C,C++,FORTRAN,汇编语言等。

四.类成员的访问控制符:

即类的方法和成员变量的访问控制符,一个类作为整体对象不可见,并不代表他的所有域和方法也对程序其他部分不可见,需要有他们的访问修饰符判断。 权限如下:

PS:

1。开头题目的answer是A:原因自己好好想想,实在不知道,就放Eclipse/NetBeans看看

2。想想局部变量为何最多是final修饰

本文来源:https://www.bwwdw.com/article/r9xe.html

Top