一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

2020-09-06 14:11動(dòng)力節(jié)點(diǎn) Java教程

這篇文章主要介紹了Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

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

?
1
2
3
4
5
6
7
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
        低精度到高精度會(huì)自動(dòng)轉(zhuǎn)換,而高精度到低精度則要類型強(qiáng)制轉(zhuǎn)換。

?
1
2
3
4
int a = 7;
double b = 5.33;
b = a;
a = (int) b;

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

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

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

Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

四、位運(yùn)算符:

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

Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

下邊為位&運(yùn)算:

    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
右移是將一個(gè)二進(jìn)制數(shù)按指定移動(dòng)的位數(shù)向右移位,移掉的被丟棄,左邊移進(jìn)的部分或者補(bǔ)0(當(dāng)該數(shù)為正時(shí)),或者補(bǔ)1(當(dāng)該數(shù)為負(fù)時(shí))。這是因?yàn)檎麛?shù)在機(jī)器內(nèi)部采用補(bǔ)碼表示法,正數(shù)的符號位為0,負(fù)數(shù)的符號位為1。
     將一個(gè)數(shù)左移"<<"會(huì)使該值乘以2的冪。
   將一個(gè)數(shù)右移>>"會(huì)使該值除以2的冪。
   右移(補(bǔ)零)運(yùn)算符,即無符號右移,">>>"永遠(yuǎn)不會(huì)產(chǎn)生負(fù)號,因?yàn)槠浞栁豢偸潜谎a(bǔ)零。 不論被移動(dòng)數(shù)是正數(shù)還是負(fù)數(shù),左邊移進(jìn)的部分一律補(bǔ)0。

?
1
2
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
    即運(yùn)算結(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
    即運(yùn)算結(jié)果為z等于二進(jìn)制數(shù)11101110,即z等于十進(jìn)制數(shù)-18。
    右移和左移操作,是整數(shù)機(jī)器數(shù)的補(bǔ)碼表示法。

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

五、賦值運(yùn)算符與其他運(yùn)算符的簡捷使用方式 :

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

Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

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

?
1
2
string [] sa = {"a","b","c","d"};
system.out.println(sa[2]);

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

?
1
2
3
4
string a ="aa";
int c = 555;
string b = a+"bbb"+c;
system.out.println(b);

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

?
1
2
3
int a = 55,b = 132,res;
res = a > b ? a : b;
system.out.println(res);

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

?
1
2
3
4
int a;
double b = 5.66600;
a = (int) b;
system.out.println(a);

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

?
1
2
3
4
string s = new string("sa");
if(s instanceof object){
  system.out.println("string is object class");
}

輸出為:string is object class
⑦點(diǎn)運(yùn)算符
    點(diǎn)運(yùn)算符"."的功能有兩個(gè):一是引用類中成員,二是指示包的層次等級。

?
1
2
3
4
5
6
7
8
9
10
11
12
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

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

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

Java 運(yùn)算符 動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品久久久久久婷婷 | 美女被网站 | 好男人好资源在线观看免费 | 亚洲视频在线观看免费 | 亚洲精品在线免费观看视频 | 天天综合网网欲色 | 我年轻漂亮的继坶2中字在线播放 | 九九精品视频在线观看九九 | 亚洲 日韩经典 中文字幕 | 欧美一级专区免费大片 | 精精国产xxxx视频在线播放器 | 莫莉瑞典1977k | 欧美一区二区三区综合色视频 | 好大好硬好深好爽想要吃奶 | 日韩欧美在线观看综合网另类 | 喷奶水榨乳ova动漫无修 | 久久人妻熟女中文字幕AV蜜芽 | 亚洲精品人成网在线播放影院 | www免费视频com | 青青草成人在线 | 天堂网www在线观看 天堂欧美 | 亚洲精品国产SUV | 憋尿调教绝望之岛 | 欧美日韩一区二区三在线 | 9久re热视频这里只有精品 | 香蕉人人超人人超碰超国产 | 香蕉久久夜色精品国产小优 | 国产精品免费_区二区三区观看 | 日本国产一区二区三区 | 精品欧美一区二区在线观看欧美熟 | 国产愉拍 | 贰佰麻豆剧果冻传媒一二三区 | 免费老外的毛片清高 | 成人尤物| 女人全身裸露无遮挡免费观看 | 国产青草亚洲香蕉精品久久 | 国产福利在线免费观看 | 探花国产| 国产新疆成人a一片在线观看 | 秋霞啪啪网 | 日本免费一区二区三区四区五六区 |