整理Java編程中常用的基本描述符與運(yùn)算符
描述符
描述符是你添加到那些定義中來(lái)改變他們的意思的關(guān)鍵詞。Java 語(yǔ)言有很多描述符,包括以下這些:
- 可訪問(wèn)描述符
- 不可訪問(wèn)描述符
- 應(yīng)用描述符,你可以在類、方法、變量中加入相應(yīng)關(guān)鍵字。描述符要先于聲明,如下面的例子所示(斜體):
public class className {
// ...
}
private boolean myFlag;
static final double weeks = 9.5;
protected static final int BOXWIDTH = 42;
public static void main(String[] arguments) {
// body of method
}
可訪問(wèn)描述符
Java 提供一系列可訪問(wèn)描述符來(lái)設(shè)定類,變量,方法和構(gòu)造器的訪問(wèn)級(jí)別。四種訪問(wèn)級(jí)別如下:
默認(rèn)的,對(duì)封裝可見(jiàn)。不需要描述符。
- 僅對(duì)類可見(jiàn)(private)
- 全部可見(jiàn)(public)
- 對(duì)封裝和子類可見(jiàn)(protected)
不可訪問(wèn)描述符
Java 提供一些不可訪問(wèn)描述符來(lái)滿足其他功能。
- Static 描述符是用來(lái)創(chuàng)造類方法和變量的。
- Final 描述符用來(lái)最終確定和實(shí)施類、方法和變量的。
- Abstract 描述符用來(lái)創(chuàng)造不允許實(shí)例化的類和方法。
- synchronized 和 volatile 描述符用來(lái)當(dāng)做線的。
基本運(yùn)算符
Java 針對(duì)操控變量提供了一組豐富的運(yùn)算符。我們可以將所有的 Java 運(yùn)算符分為如下幾組:
- 算數(shù)運(yùn)算符
- 關(guān)系運(yùn)算符
- 位運(yùn)算符
- 邏輯運(yùn)算符
- 賦值運(yùn)算符
- 其他運(yùn)算符
- 算數(shù)運(yùn)算符
算術(shù)運(yùn)算符在數(shù)學(xué)表達(dá)中的使用和它們?cè)诖鷶?shù)中的使用是相同的。下面的表格列舉了算數(shù)運(yùn)算符:
假設(shè)整體變量 A 有 10 個(gè),變量 B 有 20 個(gè),那么:
示例
| 運(yùn)算符 | 描述 | 例子 |
|---|---|---|
| + | 加法 – 在運(yùn)算符的另一端增加 | A+B 為 30 |
| - | 減法 – 將右側(cè)的操作數(shù)從左側(cè)的操作數(shù)中減去 | A - B 為-10 |
| * | 乘法 – 將運(yùn)算符兩端的值相乘 | A * B 為200 |
| / | 除法 – 用右側(cè)操作數(shù)除左側(cè)操作數(shù) | B / A 為2 |
| % | 系數(shù) - 用右側(cè)操作數(shù)除左側(cè)操作數(shù)并返回馀數(shù) | B % A 為0 |
| ++ | 增量 – 給操作數(shù)的值增加1 | B++ 為21 |
| -- | 減量 – 給操作數(shù)的值減去1 | B—為19 |
關(guān)系運(yùn)算符
以下是 Java 語(yǔ)言可支持的關(guān)系運(yùn)算符。
假設(shè)變量 A 有 10,變量 B 有 20,那么:
示例
| 運(yùn)算符 | 描述 | 例子 |
|---|---|---|
| == | 檢查雙方操作數(shù)的值是否相等,如果相等那么條件為真 | (A == B) 不為真。 |
| != | 檢查雙方操作數(shù)的值是否相等,如果不相等那么條件為真 | (A != B) 為真。 |
| > | 檢查左側(cè)的操作數(shù)是否大于右側(cè)的操作數(shù),如果大于那么條件為真 | (A > B) 不為真。 |
| < | 檢查左側(cè)的操作數(shù)是否小于右側(cè)的操作數(shù),如果小于那么條件為真 | (A < B) 為真。 |
| >= | 檢查左側(cè)的操作數(shù)是夠大于等于右側(cè)的操作數(shù),如果是那么條件為真 | (A >= B) 不為真。 |
| <= | 檢查左側(cè)的操作數(shù)是否小于等于右側(cè)的操作數(shù),如果是那么條件為真 | (A <= B) 為真。 |
位運(yùn)算符
Java 定義了幾種運(yùn)算符,這類運(yùn)算符可被運(yùn)用于整數(shù)型式,long, int,short,字符型和字節(jié)型。
位運(yùn)算符作用于二進(jìn)制系統(tǒng)間傳輸標(biāo)準(zhǔn),并執(zhí)行按位操作。假設(shè)如果 a 等于 60;b 等于 13;現(xiàn)在在二進(jìn)制型式下它們就如下所示:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
以下表格列舉了位運(yùn)算符:
假設(shè)整數(shù)變量 A 有 60 個(gè),B 有 13 個(gè)那么:
示例
| 運(yùn)算符 | 描述 | 例子 |
|---|---|---|
| & | 二進(jìn)制AND運(yùn)算符在結(jié)果上復(fù)制一位如果在雙方操作數(shù)同時(shí)存在 | (A & B) 為12,即 0000 1100 |
| | | 二進(jìn)制OR運(yùn)算符在結(jié)果上復(fù)制一位如果在任何一個(gè)操作數(shù)上存在 | (A | B) 為61,即0011 1101 |
| ^ | 二進(jìn)制XOR 運(yùn)算符復(fù)制位,如果它是設(shè)置在一個(gè)操作數(shù)上而不是兩個(gè)。 | (A ^ B) 為49, 即0011 0001 |
| ~ | 二進(jìn)制補(bǔ)充運(yùn)算符是一元的,b并有“翻轉(zhuǎn)”位的影響 | (~A ) 為 -61,由于是帶符號(hào)的二進(jìn)制數(shù),那2的補(bǔ)位形式為1100 0011 |
| << | 二進(jìn)制左移運(yùn)算符。左側(cè)操作數(shù)的值根據(jù)右側(cè)操作數(shù)指定的位的數(shù)量移至左側(cè)。 | A << 2 為240 ,即1111 0000 |
| >> | 二進(jìn)制右移運(yùn)算符。左側(cè)操作數(shù)的值根據(jù)右側(cè)操作數(shù)指定的位的數(shù)量移至右側(cè)。 | A >> 2 為 15即1111 |
| >>> | 右移補(bǔ)零運(yùn)算符。左側(cè)操作數(shù)的值根據(jù)右側(cè)操作數(shù)指定的位的數(shù)量移至右,并且轉(zhuǎn)移的值用零補(bǔ)滿。 | A >>>2 為15 ,即0000 1111 |
邏輯運(yùn)算符
下表格列舉了邏輯運(yùn)算符:
假設(shè)布爾數(shù)學(xué)體系變量 A 為真,B 為假,那么:
示例
| 運(yùn)算符 | 描述 | 例子 |
|---|---|---|
| && | 稱為邏輯與運(yùn)算符。如果雙方操作數(shù)都不為零,那么條件為真。 | (A && B) 為真. |
| || | 稱為邏輯或運(yùn)算符. 如果雙方操作數(shù)其中的任何一個(gè)都不為零,那么條件為真。 | (A || B) 為真. |
| ! | 稱為邏輯非運(yùn)算符. 用作翻轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果一個(gè)條件為真,那么邏輯非運(yùn)算符為假。 | !(A && B) 為真. |
賦值運(yùn)算符
以下是由 Java 語(yǔ)言所支持的賦值運(yùn)算符:
示例
| 運(yùn)算符 | 描述 | 例子 |
|---|---|---|
| = | 簡(jiǎn)單及運(yùn)算符, 將右側(cè)操作數(shù)的值賦給左側(cè)操作數(shù) | C = A + B 會(huì)將 A + B 的值賦給 C |
| += | 增加及賦值運(yùn)算符, 它將右側(cè)的操作數(shù)增加到左側(cè)的操作數(shù)并且結(jié)果賦給左側(cè)操作數(shù) | C += A 同等于 C = C + A |
| -= | 減去及賦值運(yùn)算符,它將右側(cè)操作數(shù)從左側(cè)操作數(shù)中減去并將結(jié)果賦給左側(cè)操作數(shù) | C -= A 同等于C = C - A |
| *= | 乘以及賦值運(yùn)算符,它將右側(cè)操作數(shù)與左側(cè)相乘并將結(jié)果賦給左側(cè)操作數(shù) | C = A 同等于 C = C A |
| /= | 除以及賦值運(yùn)算符,它將右側(cè)操作數(shù)除左側(cè)操作數(shù)并將結(jié)果賦給左側(cè)操作數(shù) | C /= A 同等于 C = C / A |
| %= | 系數(shù)及賦值運(yùn)算符 需要系數(shù)運(yùn)用兩個(gè)操作數(shù)并且將結(jié)果賦給左側(cè)操作數(shù) | C %= A is 同等于 C = C % A |
| <<= | 左移和賦值運(yùn)算符 | C <<= 2 同等于C = C << 2 |
| >>= | 右移和賦值運(yùn)算符 | C >>= 2 同等于 C = C >> 2 |
| &= | 按位和賦值運(yùn)算符 | C &= 2 同等于C = C & 2 |
| ^= | 按位異或及賦值運(yùn)算符 | C ^= 2 同等于 C = C ^ 2 |
| |= | 按位可兼或及賦值運(yùn)算符 | C |= 2 同等于C = C | 2 |
其它運(yùn)算符
以下是由 Java 語(yǔ)言所支持的一些其他的運(yùn)算符:
條件運(yùn)算符(?:)
條件運(yùn)算符同樣也被稱作為三元運(yùn)算符。這種運(yùn)算符由三個(gè)操作數(shù)組成,被用作評(píng)估布爾數(shù)學(xué)體系表達(dá)。這種運(yùn)算符的目的是來(lái)決定哪些值應(yīng)被賦予到變量上。這個(gè)運(yùn)算符被寫作如下:
variable x = (expression) ? value if true : value if false
以下是示例:
public class Test {
public static void main(String args[]){
int a , b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
這樣就會(huì)有如下結(jié)果:
Value of b is : 30 Value of b is : 20
Instanceof 符
這種操作符只用于對(duì)象引用變量。這種操作符檢查對(duì)象是否是獨(dú)特類型(類型或接口類型)。Instanceof 運(yùn)算符寫為:
( Object reference variable ) instanceof (class/interface type)
如果在運(yùn)算符左側(cè)的由變量所指代的對(duì)象為右側(cè)的類型或接口類型通過(guò) IS-A 檢查,那么結(jié)果為真。以下是示例:
public class Test {
public static void main(String args[]){
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
這就會(huì)產(chǎn)出如下結(jié)果:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
這樣將會(huì)產(chǎn)生以下的結(jié)果:
true
Java 運(yùn)算符的優(yōu)先級(jí)
運(yùn)算符優(yōu)先級(jí)決定一個(gè)表達(dá)式里術(shù)語(yǔ)的分組。它影響著一個(gè)表達(dá)式如何求值。一定的運(yùn)算符比其他運(yùn)算符擁有更高的優(yōu)先級(jí);例如:乘法運(yùn)算符比加法運(yùn)算符有更高的優(yōu)先級(jí):
例如,x=7+3 2; 這里x 被賦值為13,不是20,是因?yàn)檫\(yùn)算符 比運(yùn)算符+由更高的優(yōu)先級(jí), 所以它首先運(yùn)算乘法 3*2, 然后再加7。
這里,有著最高優(yōu)先級(jí)的運(yùn)算符在這個(gè)表格的最高一層,最低優(yōu)先權(quán)的則出現(xiàn)在最底部。在一個(gè)表達(dá)式中,越高等級(jí)的優(yōu)先權(quán)的運(yùn)算符會(huì)最先被求值。
| 類 | 運(yùn)算符 | 關(guān)聯(lián)性 |
|---|---|---|
| 后綴 | () [] . (dot operator) | 從左到右 |
| 一元 | ++ - - ! ~ | 從右到左 |
| 乘法的 | * / % | 從左到右 |
| 加法的 | + - | 從左到右 |
| 移位 | >> >>> << | 從左到右 |
| 關(guān)系的 | > >= < <= | 從左到右 |
| 相等 | == != | 從左到右 |
| 位與 | & | 從左到右 |
| 位異或 | ^ | 從左到右 |
| 位或 | | | 從左到右 |
| 邏輯與 | && | 從左到右 |
| 邏輯或 | || | 從左到右 |
| 有條件的 | ?: | 從右到左 |
| 賦值 | = += -= *= /= %= >>= <<= &= ^== | 從右到左 |
| 逗號(hào) | , | 從左到右 |
相關(guān)文章
springboot前后端分離集成CAS單點(diǎn)登錄(統(tǒng)一認(rèn)證)
單點(diǎn)登錄是一種身份認(rèn)證和授權(quán)技術(shù),允許用戶在多個(gè)應(yīng)用系統(tǒng)中使用同一套用戶名和密碼進(jìn)行登錄,本文主要介紹了springboot前后端分離集成CAS單點(diǎn)登錄,具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09
java實(shí)現(xiàn)微信公眾號(hào)消息推送的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)微信公眾號(hào)消息推送的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例
這篇文章主要介紹了Java Map遍歷2種實(shí)現(xiàn)方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Java線程隊(duì)列LinkedBlockingQueue的使用
本文主要介紹了Java線程隊(duì)列LinkedBlockingQueue的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
springboot使用Validator校驗(yàn)方式
這篇文章主要介紹了springboot使用Validator校驗(yàn)方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Java使用新浪微博API開(kāi)發(fā)微博應(yīng)用的基本方法
這篇文章主要介紹了Java使用新浪微博API開(kāi)發(fā)微博應(yīng)用的基本方法,文中還給出了一個(gè)不使用任何SDK實(shí)現(xiàn)Oauth授權(quán)并實(shí)現(xiàn)簡(jiǎn)單的發(fā)布微博功能的實(shí)現(xiàn)方法,需要的朋友可以參考下2015-11-11
詳解解決IDEA2020.1版本的lombok插件問(wèn)題
這篇文章主要介紹了詳解解決IDEA2020.1版本的lombok插件問(wèn)題。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
PostMan post請(qǐng)求發(fā)送Json數(shù)據(jù)的方法
下面小編就為大家分享一篇PostMan post請(qǐng)求發(fā)送Json數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
使用XML配置c3p0數(shù)據(jù)庫(kù)連接池
這篇文章主要為大家詳細(xì)介紹了使用XML配置c3p0數(shù)據(jù)庫(kù)連接池,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Spring Boot使用模板freemarker的示例代碼
本篇文章主要介紹了Spring Boot使用模板freemarker的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10

