Java关键字和运算符

来源:互联网 发布:倩女幽魂显示设置优化 编辑:程序博客网 时间:2024/05/24 00:27

java关键字对java技术编译器有特殊意义,可以标识数据类型名,或程序构造名.


java关键字

abstract boolean  break byte case catch char class continue 

default dodouble else extends false final finally float for if 

implements import instanceof int interface long native new null

private protected public return short static super switch 

synchronized this throw throws transient true tryvoid volatile

while


==============================================================

java运算符
Separator [] () ; ,
R to L ++ -- + - ~ !(data type)
L to R * / %
L to R + - 
L to R << >> >>>
L to R < > <= >= instanceof
L to R == !=
L to R &
L to R ^
L to R |
L to R &&
L to R ||
R to L ?:
R to L = *= /= %= += -= <<= >>= >>>= &= ^= |=


逻辑表达式
支持的位运算符
!--NOT &--AND
|--XOR ^--OR


布尔运算符如
~--Complement &--AND
^--XOR ||--OR


&&和||是运算符&和|的布尔等价物???


布尔逻辑运算符
&&--AND ||--OR
形成if()语句自变量的的布尔表达式是合法且安全的.



用+进行串连接
如果+运算符中有一个自变量为String对象,则其它自变量将会被转化成String.
所有的对象都可能被转化为String,尽管这样做可能是意义含糊的.
不是串的对象同过toString()成员函数转化成串的等价物.


>>和>>>右移运算符
>>进行算数或符号右移位,符号位被拷贝.
>>>主要作用于位图,将符号位不被拷贝,将0置于重要的位置.


注意:移位运算符将它们右侧的操作数模32简化为int类型左侧操作数,模64简化为

long类型右侧操作数.因而,任何int x, x >>>32都会导致不变的x值,而不是零.



>>>仅被允许用再整数类型,并且仅对int和long值有效.如果用在short或byte值上,

则在应用>>>之前,该值将通过带符号的向上类型转换被提升为一个int.无符号将成为

有符号移位.


<<执行一个左移位



-----------------------------------------------------
类型转换
如果赋值的信息丢失,必须采用类型转换的方法确认赋值.


升级和表达式的类型转换
-变量被自动升级为一个较长的形式,
-如果变量类型至少和表达式类型一样大(位数相同),则表达式是赋值兼容的.
对+来说,当两个操作数是原始数据类型时,其结果至少有一个INT,并且有一个通过提升操作数到结果的类型,
或通过提升结果至一个较宽类型操作数的值,这可能导致溢出或精度丢失.

===========================================================
return的常用作用有2种
一种是返回参数所用的关键字,假如一个有返回值的方法执行完了之后需要返回一个参数,

//示例:public string functionTest(){         String a = "957";         return a;}
那么这个方法被调用之后就会返回一个值为957的字符串,String result = functionTest();

第二种用法是,代码执行到此处终止。
比如当代码执行到某个地方会出现几种结果,然后其中一种结果就不能执行后续代码,
这时候在那里加上一个return就可以终止后面的代码执行。

//示例(二分查找):public static int harfSearch(int[] arr, int searchKey) {int lowerBound=0, upperBound = arr.length-1, curIn;while (true) {curIn = (lowerBound + upperBound)/2;if (arr[curIn] == searchKey)return curIn;else if(lowerBound > upperBound)return -1;//can't find itelse{if(searchKey < arr[curIn])upperBound = curIn - 1; //it is in the lower halfelse if(searchKey > arr[curIn])lowerBound = curIn + 1;//it's in upper half} // end else divided range} //end while} // end find 


=====================================================

break和continue:

break是跳出程序块后,执行下一个程序块
continue跳出当前循环,不执行continue以下的语句,继续循环!


原创粉丝点击