整理Java编程中常用的基本描述符与运算符
描述符
描述符是你添加到那些定义中来改变他们的意思的关键词。Java语言有很多描述符,包括以下这些:
- 可访问描述符
- 不可访问描述符
- 应用描述符,你可以在类、方法、变量中加入相应关键字。描述符要先于声明,如下面的例子所示(斜体):
publicclassclassName{ //... } privatebooleanmyFlag; staticfinaldoubleweeks=9.5; protectedstaticfinalintBOXWIDTH=42; publicstaticvoidmain(String[]arguments){ //bodyofmethod }
可访问描述符
Java提供一系列可访问描述符来设定类,变量,方法和构造器的访问级别。四种访问级别如下:
默认的,对封装可见。不需要描述符。
- 仅对类可见(private)
- 全部可见(public)
- 对封装和子类可见(protected)
不可访问描述符
Java提供一些不可访问描述符来满足其他功能。
- Static描述符是用来创造类方法和变量的。
- Final描述符用来最终确定和实施类、方法和变量的。
- Abstract描述符用来创造不允许实例化的类和方法。
- synchronized和volatile描述符用来当做线的。
基本运算符
Java针对操控变量提供了一组丰富的运算符。我们可以将所有的Java运算符分为如下几组:
- 算数运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
- 算数运算符
算术运算符在数学表达中的使用和它们在代数中的使用是相同的。下面的表格列举了算数运算符:
假设整体变量A有10个,变量B有20个,那么:
示例
运算符 |
---|
+ |
- |
* |
/ |
% |
++ |
-- |
关系运算符
以下是Java语言可支持的关系运算符。
假设变量A有10,变量B有20,那么:
示例
位运算符
Java定义了几种运算符,这类运算符可被运用于整数型式,long,int,short,字符型和字节型。
位运算符作用于二进制系统间传输标准,并执行按位操作。假设如果a等于60;b等于13;现在在二进制型式下它们就如下所示:
a=00111100 b=00001101 ----------------- a&b=00001100 a|b=00111101 a^b=00110001 ~a=11000011
以下表格列举了位运算符:
假设整数变量A有60个,B有13个那么:
示例
运算符 |
---|
& |
| |
^ |
~ |
<< |
>> |
>>> |
逻辑运算符
下表格列举了逻辑运算符:
假设布尔数学体系变量A为真,B为假,那么:
示例
运算符 |
---|
&& |
|| |
! |
赋值运算符
以下是由Java语言所支持的赋值运算符:
示例
其它运算符
以下是由Java语言所支持的一些其他的运算符:
条件运算符(?:)
条件运算符同样也被称作为三元运算符。这种运算符由三个操作数组成,被用作评估布尔数学体系表达。这种运算符的目的是来决定哪些值应被赋予到变量上。这个运算符被写作如下:
variablex=(expression)?valueiftrue:valueiffalse
以下是示例:
publicclassTest{ publicstaticvoidmain(Stringargs[]){ inta,b; a=10; b=(a==1)?20:30; System.out.println("Valueofbis:"+b); b=(a==10)?20:30; System.out.println("Valueofbis:"+b); } }
这样就会有如下结果:
Valueofbis:30 Valueofbis:20
Instanceof符
这种操作符只用于对象引用变量。这种操作符检查对象是否是独特类型(类型或接口类型)。Instanceof运算符写为:
(Objectreferencevariable)instanceof (class/interfacetype)
如果在运算符左侧的由变量所指代的对象为右侧的类型或接口类型通过IS-A检查,那么结果为真。以下是示例:
publicclassTest{ publicstaticvoidmain(Stringargs[]){ Stringname="James"; //followingwillreturntruesincenameistypeofString booleanresult=nameinstanceofString; System.out.println(result); } }
这就会产出如下结果:
true这种运算符仍会返回到真如果被比较的对象是与右边类型兼容的赋值。以下是另一个例子:
classVehicle{} publicclassCarextendsVehicle{ publicstaticvoidmain(Stringargs[]){ Vehiclea=newCar(); booleanresult=ainstanceofCar; System.out.println(result); } }
这样将会产生以下的结果:
true
Java运算符的优先级
运算符优先级决定一个表达式里术语的分组。它影响着一个表达式如何求值。一定的运算符比其他运算符拥有更高的优先级;例如:乘法运算符比加法运算符有更高的优先级:
例如,x=7+32;这里x被赋值为13,不是20,是因为运算符比运算符+由更高的优先级,所以它首先运算乘法3*2,然后再加7。
这里,有着最高优先级的运算符在这个表格的最高一层,最低优先权的则出现在最底部。在一个表达式中,越高等级的优先权的运算符会最先被求值。