整理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)算符被寫(xiě)作如下:
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)算符寫(xiě)為:
( 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+Shiro學(xué)習(xí)之密碼加密和登錄失敗次數(shù)限制示例
本篇文章主要介紹了SpringBoot+Shiro學(xué)習(xí)之密碼加密和登錄失敗次數(shù)限制示例,可以限制登陸次數(shù),有興趣的同學(xué)可以了解一下。2017-03-03Springboot項(xiàng)目因?yàn)閗ackson版本問(wèn)題啟動(dòng)報(bào)錯(cuò)解決方案
這篇文章主要介紹了Springboot項(xiàng)目因?yàn)閗ackson版本問(wèn)題啟動(dòng)報(bào)錯(cuò)解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Java實(shí)例項(xiàng)目零錢(qián)通的實(shí)現(xiàn)流程
本篇文章為你帶來(lái)Java的一個(gè)新手實(shí)戰(zhàn)項(xiàng)目,是一個(gè)零錢(qián)通系統(tǒng),項(xiàng)目來(lái)自于B站韓順平老師,非常適合新手入門(mén)練習(xí),感興趣的朋友快來(lái)看看吧2022-03-03java實(shí)現(xiàn)大文件導(dǎo)出的實(shí)現(xiàn)與優(yōu)化
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)大文件導(dǎo)出的實(shí)現(xiàn)與優(yōu)化的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們深入了解java有一定的幫助,感興趣的小伙伴可以了解下2023-11-11