最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 運算符 動力節(jié)點Java學(xué)院整理

 更新時間:2017年04月04日 16:32:19   投稿:mdxy-dxy  
這篇文章主要介紹了Java 運算符 動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下

Java的運算符,分為四類:
算數(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符。
算數(shù)運算符(9):+ - * / % ++ --
關(guān)系運算符(6):== != > >= < <=
邏輯運算符(6):&& || ! ^ & |
位運算符(7):& | ~ ^ >> << >>>

Java基本數(shù)據(jù)類型:

數(shù)值類型:
整型:byte、short、int、long
非整型:double、float
非數(shù)值類型:char[字符]、boolean[布爾]
一:算數(shù)運算符:
注:算數(shù)運算符操作數(shù)必須是數(shù)值類型。
分為一元運算符和二元運算符;
一元運算符,只有一個操作數(shù);
二元運算符有兩個操作數(shù),運算符在兩個操作數(shù)之間。
一元運算符:正‘+',負(fù)‘-',自加‘++',自減‘--‘這四個。
①”++“和”--“運算符,只允許用于數(shù)值類型的變量,不允許用于表達(dá)式中;
"++"和”--“可以用于數(shù)值變量之前或者之后;
兩處使用差別:
”++“和”--“用于數(shù)值變量之前,在賦值操作中,先對被”++“或”--“操作變量值先加1或者先減1,然后在進(jìn)行其他的操作;
"++"和”--“用于數(shù)值變量之后,在賦值操作中,先用被”++“或”--“的操作變量值進(jìn)行其他的操作,然后在對其值加1或者減1。

package com.numerical; 
 
 public class Operator { 
   public static void main(String[] args) { 
     int a = 5; 
     int b,c,d,f,g,h; 
     b = +a; //正值 
     System.out.println("b="+b+",a="+a); 
     c = -a; //負(fù)值 
     System.out.println("c="+c+",a="+a); 
     int l = 2; 
     d = ++l; //先l=l+1;再d=l 
     System.out.println("d="+d+",l="+l); 
     int m = 3; 
     f = m++;//先f=m;再m=m+1 
     System.out.println("f="+f+",m="+m); 
     int n = 4; 
     g = --n;//先n=n-1;再g=n 
     System.out.println("g="+g+",n="+n); 
     int o = 6; 
     h = o--;//先h=o;再o=o-1 
     System.out.println("h="+h+",o="+o); 
   } 
 } 

上代碼,輸出結(jié)果為:

b=5,a=5
c=-5,a=5
d=3,l=3
f=3,m=4
g=3,n=3
h=6,o=5

注:一元運算符和前后的操作數(shù)之間有空格,可能在有些編譯器下編譯時會出錯。
②二元運算符,加'+',減'-',乘'*',除'/',求余'%'。
在算數(shù)運算符中,”+“,”-“,”*“,”/“完成加減乘除四則運算,%是求兩個操作數(shù)相除后的余數(shù)。
運算規(guī)則和數(shù)學(xué)運算基本相同,在算數(shù)運算中,計算時按照從左向右的順序計算,乘除和求余優(yōu)先于加減,不同的是,程序中的乘運算符不可省略,在數(shù)學(xué)中可寫為”y=2x“而程序中必須寫為”y=2*x“。
當(dāng)二元運算的兩個操作數(shù)的數(shù)據(jù)類型不同時,運算結(jié)果的數(shù)據(jù)類型和參與運算的操作數(shù)的數(shù)據(jù)類型中精度較高(或位數(shù)較長)一致。

 int a = 3; 
 double b = 3.53;//或者3.53d 
 float c = 1.7f; 
 int d = 1; 
 System.out.println("int /int :a/d="+a/d); 
 System.out.println("double/int:b/a="+b/a); 
 System.out.println("float/int:c/a="+c/a); 

輸出結(jié)果為:

int /int :a/d=3
double/int:b/a=1.1766666666666665
float/int:c/a=0.56666666

轉(zhuǎn)換原則:

    從低精度向高精度轉(zhuǎn)換byte 、short、int、long、float、double
        低精度到高精度會自動轉(zhuǎn)換,而高精度到低精度則要類型強制轉(zhuǎn)換。

 int a = 7; 
 double b = 5.33; 
 b = a; 
 a = (int) b; 

計算機(jī)的數(shù)據(jù)長度:
位:一個二進(jìn)制數(shù)據(jù)0或1,是1bit(位);
字節(jié):存儲空間的計量單位,是1byte = 8bit;如數(shù)據(jù)庫的VARCHAR為字節(jié);   
1. boolean 類型變量的取值有:ture、false,1字節(jié)(8位) 
2. char數(shù)據(jù)類型有:unicode字符,16位 
3. byte:一個字節(jié)(8位)(-128~127)(-2的7次方到2的7次方-1) 
4. short:兩個字節(jié)(16位)(-32768~32767)(-2的15次方到2的15次方-1) 
5. int:四個字節(jié)(32位)(一個字長)(-2147483648~2147483647)(-2的31次方到2的31次方-1) 
6. long:八個字節(jié)(64位)(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1) 
7. float:四個字節(jié)(32位)(3.402823e+38 ~ 1.401298e-45)(e+38是乘以10的38次方,e-45是乘以10的負(fù)45次方) 
8. double:八個字節(jié)(64位)(1.797693e+308~ 4.9000000e-324) 
對應(yīng)java的基本數(shù)據(jù)類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
注意:
①數(shù)值計算中語法現(xiàn)象——“晉升”,即:byte、short和char(低于int的數(shù)據(jù)類型)進(jìn)行算術(shù)運算后,結(jié)果會自動提升成int類型;
②兩個char型運算時,自動轉(zhuǎn)換為int型;當(dāng)char與別的類型運算時,也會先自動轉(zhuǎn)換為int型的,再做其它類型的自動轉(zhuǎn)換;
③算數(shù)運算可以加入小括號"()"提高優(yōu)先級,優(yōu)先小括號內(nèi)運算,再其他運算符運算;
④算數(shù)運算前操作數(shù)變量必須賦值,反之,報語法錯誤。
 
二:關(guān)系運算符:
關(guān)系運算符用于比較兩個數(shù)值之間的大小,其運算結(jié)果為一個邏輯類型(boolean布爾類型)的數(shù)值。
等于'==',不等于'!=',大于'>',大于等于'>=',小于'<',小于等于'<='
以下代碼為:

 System.out.println("9.5<8 :"+(9.5<8)); 
 System.out.println("8.5<=8.5:"+(8.5<=8.5)); 
 System.out.println("a~z:"+((int)'a')+"~"+((int)'z')); 
 System.out.println("A~Z:"+((int)'A')+"~"+((int)'Z')); 
 System.out.println("'A' < 'a':"+('A' < 'a'));//字符'A'的Unicode編碼值小于字符'a' 

輸出結(jié)果為:
9.5<8 :false
8.5<=8.5:true
a~z:97~122
A~Z:65~90
'A' < 'a':true

注: boolean類型只能比較相等和不相等,不能比較大?。?br />      >=的意思是大于或等于,兩者成立一個即可,結(jié)果為true,<=亦如此;
     判斷相等的符號是兩個等號,而不是一個等號,這個需要特別小心。
     實際代碼中,數(shù)值、變量以及運算結(jié)果都可以直接參與比較,只是程序中為了增強可讀性,有些時候需要將比較分開進(jìn)行書寫。
     比較運算符是程序設(shè)計中實現(xiàn)數(shù)據(jù)比較的基礎(chǔ),也是很多邏輯實現(xiàn)的基礎(chǔ),在程序邏輯中,經(jīng)常通過比較一定的條件,來判斷后續(xù)的程序該如何執(zhí)行。
 
三:邏輯運算符:

邏輯運算符要求操作數(shù)的數(shù)據(jù)類型為邏輯型,其運算結(jié)果也是邏輯型值。
邏輯運算的數(shù)據(jù)和邏輯運算符的運算結(jié)果是boolean類型。
 邏輯與'&&',邏輯或'||',邏輯非'!',邏輯異或'^',邏輯與'&',邏輯或'|'
邏輯運算符的真值表:

A和B是邏輯運算的兩個邏輯變量;
兩種邏輯與(&&和&)的運算規(guī)則基本相同,兩種邏輯或(||和|)的運算規(guī)則也基本相同。
&和|運算是把邏輯表達(dá)式全部計算完,而&&和||運算具有短路計算功能。
對于&來說,如果左側(cè)條件為false,也會計算右側(cè)條件的值,而對于&&來說,如果左側(cè)的條件為false,則不計算右側(cè)的條件,這種現(xiàn)象被稱作短路現(xiàn)象。
所謂短路計算,是指系統(tǒng)從左至右進(jìn)行邏輯表達(dá)式的計算,一旦出現(xiàn)計算結(jié)果已經(jīng)確定的情況,則計算過程即被終止。
對于&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結(jié)果都為false。
所以,系統(tǒng)一旦判斷出&&運算符左端的值為false,則系統(tǒng)將終止其后的計算過程;
對于 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結(jié)果都為true。
所以,系統(tǒng)一旦判斷出|| 運算符左端的值為true,則系統(tǒng)將終止其后的計算過程。
注:異或相同為false,相反則為true。
利用短路現(xiàn)象:
在程序設(shè)計時使用&&和||運算符,不建議使用&和|運算符。

四、位運算符:

位運算是以二進(jìn)制位為單位進(jìn)行的運算,其操作數(shù)和運算結(jié)果都是整型值。
位與'&',位或'|',位非'~',位異或'^',右移'>>',左移'<<',0填充的右移'>>>'
位運算的位與'&',位或'|',位非'~',位異或'^'與邏輯運算的相應(yīng)操作的真值表完全相同,其差別只是位運算操作的操作數(shù)和運算結(jié)果都是二進(jìn)制整數(shù),而邏輯運算相應(yīng)操作的操作數(shù)和運算結(jié)果都是邏輯值boolean型。

下邊為位&運算:

    int a = 15;    //x等于二進(jìn)制數(shù)的00001111
    int b = 6;     //y等于二進(jìn)制數(shù)的00000110
    int c = x&y    //z等于二進(jìn)制數(shù)的00000110

結(jié)果為:二進(jìn)制數(shù)的00000110
右移是將一個二進(jìn)制數(shù)按指定移動的位數(shù)向右移位,移掉的被丟棄,左邊移進(jìn)的部分或者補0(當(dāng)該數(shù)為正時),或者補1(當(dāng)該數(shù)為負(fù)時)。這是因為整數(shù)在機(jī)器內(nèi)部采用補碼表示法,正數(shù)的符號位為0,負(fù)數(shù)的符號位為1。
     將一個數(shù)左移"<<"會使該值乘以2的冪。
   將一個數(shù)右移>>"會使該值除以2的冪。
   右移(補零)運算符,即無符號右移,">>>"永遠(yuǎn)不會產(chǎn)生負(fù)號,因為其符號位總是被補零。 不論被移動數(shù)是正數(shù)還是負(fù)數(shù),左邊移進(jìn)的部分一律補0。

 System.out.println(1<<3); 
 System.out.println(8>>3); 

輸出為:8
       1
    int x = 70;   //x等于二進(jìn)制數(shù)的01000110
    int y = 2;
    int z = x>>y  //z等于二進(jìn)制數(shù)的00010001
    即運算結(jié)果為z等于二進(jìn)制數(shù)00010001,即z等于十進(jìn)制數(shù)17。
    int x = -70;  //x等于二進(jìn)制數(shù)的11000110
    int y = 2;
    int z = x>>y  //z等于二進(jìn)制數(shù)的11101110
    即運算結(jié)果為z等于二進(jìn)制數(shù)11101110,即z等于十進(jìn)制數(shù)-18。
    右移和左移操作,是整數(shù)機(jī)器數(shù)的補碼表示法。

&運算符規(guī)定必須信號A和B都被充電,其結(jié)果才是充電。(1表示充電,0表示未充電)
|運算符規(guī)定只要信號A或B被充電,輸出結(jié)果就是充電。
^異或(XOR)運算符規(guī)定如果信號A或B之一被充電,但是信號A和B不是同時被充電,則結(jié)果為充電。
~運算符也稱為按位求補,它翻轉(zhuǎn)所有的充電狀態(tài)值。

五、賦值運算符與其他運算符的簡捷使用方式 :

① 賦值運算符可以與二元算術(shù)運算符、邏輯運算符和位運算符組合成簡捷運算符,從而可以簡化一些常用表達(dá)式的書寫。

 在程序開發(fā)中,大量使用“一元運算符或移位運算符等”該區(qū)別簡化代碼的書寫,這樣做,因為這樣將增加閱讀代碼的難度,盡量注釋。

② 方括號[]和圓括號()運算符
  方括號[]是數(shù)組運算符,方括號[]中的數(shù)值是數(shù)組的下標(biāo),整個表達(dá)式就代表數(shù)組中該下標(biāo)所在位置的元素值。
 圓括號()運算符用于改變表達(dá)式中運算符的優(yōu)先級。

 String [] sa = {"a","b","c","d"}; 
 System.out.println(sa[2]); 

輸出為:c
③ 字符串加(+)運算符
當(dāng)操作數(shù)是字符串時,加(+)運算符用來合并兩個字符串;當(dāng)加(+)運算符的一邊是字符串,另一邊是數(shù)值時,機(jī)器將自動將數(shù)值轉(zhuǎn)換為字符串,并連接為一個字符串。

 String a ="aa"; 
 int c = 555; 
 String b = a+"bbb"+c; 
 System.out.println(b); 

輸出為:aabbb555
④ 條件運算符(三目運算符)
    <表達(dá)式1> ?<表達(dá)式2> : <表達(dá)式3>
先計算<表達(dá)式1>的值,
當(dāng)<表達(dá)式1>的值為true時,則將<表達(dá)式2>的值作為整個表達(dá)式的值;
當(dāng)<表達(dá)式1>的值為false時,則將<表達(dá)式3>的值作為整個表達(dá)式的值。

 int a = 55,b = 132,res; 
 res = a > b ? a : b; 
 System.out.println(res); 

輸出為:132
⑤強制類型轉(zhuǎn)換符
強制類型轉(zhuǎn)換符能將一個表達(dá)式的類型強制轉(zhuǎn)換為某一指定數(shù)據(jù)類型

 int a; 
 double b = 5.66600; 
 a = (int) b; 
 System.out.println(a); 

輸出為:5
⑥對象運算符instanceof
對象運算符instanceof用來測試一個指定對象是否是指定類(或它的子類)的實例,若是則返回true,否則返回false。

 String s = new String("sa"); 
 if(s instanceof Object){ 
   System.out.println("String is object class"); 
 } 

輸出為:String is object class
⑦點運算符
    點運算符"."的功能有兩個:一是引用類中成員,二是指示包的層次等級。

 String s = "i am string"; 
 s = s.substring(5); 
 System.out.println(s); 
 Map<Integer, String> map = new HashMap<Integer, String>(); 
 map.put(1, "A"); 
 map.put(2, "B"); 
 map.put(3, "C"); 
 Iterator it = map.entrySet().iterator(); 
 while(it.hasNext()){ 
   Map.Entry<Integer, String> me =(Map.Entry<Integer, String>) it.next(); 
   System.out.println("key="+me.getKey()+",value="+me.getValue()); 
 } 

輸出為:
string
key=1,value=A
key=2,value=B
key=3,value=C

在實際的開發(fā)中,可能在一個運算符中出現(xiàn)多個運算符,計算時,就按照優(yōu)先級級別的高低進(jìn)行計算,級別高的運算符先運算,級別低的運算符后計算.

運算符優(yōu)先級表
優(yōu)先級自上而下,級別由高到低。

本文轉(zhuǎn)自互聯(lián)網(wǎng),由動力節(jié)點整理發(fā)布

相關(guān)文章

  • Java面試題沖刺第三天--集合框架篇

    Java面試題沖刺第三天--集合框架篇

    這篇文章主要為大家分享了最有價值的三道java面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • java計算兩點間的距離方法總結(jié)

    java計算兩點間的距離方法總結(jié)

    小編給大家總結(jié)了在java中計算兩點之家距離的方法以及相關(guān)實例代碼分享,有需要的讀者參考下。
    2018-02-02
  • IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法

    IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法

    本文主要介紹了IDEA設(shè)置Maven自動編譯model的實現(xiàn)方法, maven結(jié)構(gòu)的項目,我們在每次修改代碼后都會需要手動編譯,本文就可以解決這個問題,感興趣的可以了解一下
    2023-08-08
  • CentOS8.2安裝Java 14.0.2的教程詳解

    CentOS8.2安裝Java 14.0.2的教程詳解

    這篇文章主要介紹了CentOS8.2安裝Java 14.0.2的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spring Security中successHandler無效問題及解決

    Spring Security中successHandler無效問題及解決

    這篇文章主要介紹了Spring Security中successHandler無效問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 為什么Java單例模式一定要加?volatile

    為什么Java單例模式一定要加?volatile

    這篇文章主要介紹了為什么Java單例一定要加volatile,指的是為什么懶漢模式中的私有變量要加volatile?帶著疑問一起學(xué)習(xí)下面文章內(nèi)容吧
    2022-05-05
  • 如何用Stream解決兩層List屬性求和問題

    如何用Stream解決兩層List屬性求和問題

    這篇文章主要介紹了如何用Stream解決兩層List屬性求和問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • java反射之方法反射的基本操作方法

    java反射之方法反射的基本操作方法

    下面小編就為大家?guī)硪黄猨ava反射之方法反射的基本操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 在SSM框架中將圖片上傳到數(shù)據(jù)庫中的實現(xiàn)代碼

    在SSM框架中將圖片上傳到數(shù)據(jù)庫中的實現(xiàn)代碼

    這篇文章主要介紹了在SSM框架中將圖片上傳到數(shù)據(jù)庫中的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring?Cloud?OpenFeign模版化客戶端搭建過程

    Spring?Cloud?OpenFeign模版化客戶端搭建過程

    OpenFeign是一個顯示聲明式的WebService客戶端。使用OpenFeign能讓編寫Web Service客戶端更加簡單,這篇文章主要介紹了Spring?Cloud?OpenFeign模版化客戶端,需要的朋友可以參考下
    2022-06-06

最新評論

连城县| 七台河市| 丘北县| 长葛市| 丁青县| 谢通门县| 健康| 乌拉特前旗| 田东县| 射洪县| 吉木乃县| 合水县| 桑日县| 乐昌市| 南澳县| 泗洪县| 康保县| 玉溪市| 平阴县| 海原县| 高密市| 临潭县| 泸溪县| 磐石市| 新兴县| 扎鲁特旗| 剑河县| 莆田市| 沁源县| 和政县| 磴口县| 许昌县| 米易县| 乌审旗| 分宜县| 隆回县| 八宿县| 阳原县| 无锡市| 海阳市| 罗江县|