Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)
1.算術(shù)運(yùn)算符
- +表示加法運(yùn)算符
- -表示減法運(yùn)算符
- *表示乘法運(yùn)算符
- /表示除法運(yùn)算符
- %表示取模/取余運(yùn)算符
package com.lagou.Day03;
/**
* 算術(shù)運(yùn)算符
*/
public class Demo01 {
public static void main(String[] args) {
//1.聲明兩個(gè)int類型的變量并初始化
//int ia = 6;ib = 2;//表示聲明兩個(gè)int類型的變量ia和ib,不推薦使用
int ia = 6;
int ib = 2;
//實(shí)現(xiàn)算術(shù)運(yùn)算符
int ic = ia + ib;
System.out.println(ic);//8
System.out.println(ia + ib);//8
//其中ia+ib這個(gè)整體叫做表達(dá)式 ia、ib叫做操作數(shù)
System.out.println(ia + ib);//8
System.out.println(ia - ib);//4
System.out.println(ia * ib);//12
System.out.println(ia / ib);//3
System.out.println(ia % ib);//0
}
}
2.算術(shù)運(yùn)算符的注意事項(xiàng)
package com.lagou.Day03;
public class Demo02 {
public static void main(String[] args) {
//注意一:當(dāng)兩個(gè)整數(shù)相除時(shí)結(jié)果只保留整數(shù)部分,丟棄小數(shù)部分
System.out.println(5 / 2);//2
//注意二:若希望保留小數(shù)部分
//方式一:使用強(qiáng)制類型轉(zhuǎn)換將其中一個(gè)操作數(shù)轉(zhuǎn)換位double類型再運(yùn)算即可
System.out.println((double)5 / 2);//2.5
System.out.println(5/(double)2);//2.5
System.out.println((double)5/(double)2);//2.5
//System.out.println((double) (5/2));//2.0
//方式二:讓其中一個(gè)操作數(shù)乘以1.0即可(推薦)
System.out.println(5*1.0/2);//2.5
//注意三:0不能做除數(shù)
//Exception in thread "main" java.lang.ArithmeticException編譯可以通過(guò),運(yùn)行不行
System.out.println(5 / 0);
System.out.println(5 / 0.0);//Infinity 無(wú)窮
System.out.println(0 / 0.0);//NaN not a Number
}
}
3.算術(shù)運(yùn)算符實(shí)現(xiàn)時(shí)間拆分
- 提示用戶輸入正整數(shù)類型的秒數(shù),拆分秒數(shù)后輸出x小時(shí)x分x秒。
- 如:輸入7199,輸出1小時(shí)59分59秒
package com.lagou.Day03;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入正整數(shù)");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int hour = x / 3600;//拆分小時(shí)數(shù)
int min = x % 3600 /60;//拆分分鐘數(shù)
int sec = x % 60;
System.out.println(x + "秒轉(zhuǎn)換位" + hour + "小時(shí)" + min + "分鐘"+sec+"秒");
}
}
4.字符串鏈接符的概念和使用
+可以實(shí)現(xiàn)字符串的連接,同時(shí)可以實(shí)現(xiàn)字符串與其他數(shù)據(jù)類型"相連"
package com.lagou.Day03;
/**
* +既可以作為字符串連接符,又可以作為加法運(yùn)算符
* 只要+兩邊的操作數(shù)中有一個(gè)操作數(shù)是字符串類型,則該+就被當(dāng)作字符串連接符處理,
* 否則當(dāng)作加法運(yùn)算符處理
*/
public class Demo03 {
public static void main(String[] args) {
int hour = 1;
int min = 1;
int sec = 6;
System.out.println(hour+min+sec);//數(shù)字:8
System.out.println(hour+min+sec+"");//字符串:8
System.out.println(hour+min+""+sec);//26;
System.out.println(hour+""+min+sec);//116
System.out.println(""+hour+min+sec);//116
System.out.println(""+(hour+min+sec));//先算小括號(hào)里面:8
}
}
5.關(guān)系/比較運(yùn)算符
>表示是否大于運(yùn)算符 >=表示是否大于等于運(yùn)算符 <表示是否小于運(yùn)算符 <=表示是否小于等于運(yùn)算符 ==表示是否等于運(yùn)算符 !=表示是否不等于運(yùn)算符
package com.lagou.Day03;
/**
* 關(guān)系運(yùn)算符
*/
public class Demo04 {
public static void main(String[] args) {
int a = 5;
int b = 2;
System.out.println(a > b);//true
System.out.println(a >= b);//true
System.out.println(a < b);//false
System.out.println(a <= b);//false
System.out.println(a == b);//false
System.out.println(a != b);//true
}
}
6.關(guān)系運(yùn)算符實(shí)現(xiàn)負(fù)數(shù)判斷
提示用戶輸入一個(gè)整數(shù),使用關(guān)系運(yùn)算符判斷該整數(shù)是否為負(fù)數(shù),若是則打印true,若不是則打印false。
package com.lagou.Day03;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入一個(gè)整數(shù)");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(num<0);
}
}
7.自增減運(yùn)算符概念和使用
- ++表示自增運(yùn)算符,用于使得當(dāng)前變量自身的數(shù)值加1的效果
- –表示自減運(yùn)算符,用于使得當(dāng)前變量自身的數(shù)值減1的效果
package com.lagou.Day03;
public class Demo05 {
public static void main(String[] args) {
int a = 10;
System.out.println(a);//10
//表示讓變量a自身數(shù)值加1,并覆蓋變量原來(lái)的數(shù)值
a++;
System.out.println(a);//11
++a;
System.out.println(a);//12
}
}
8.前后加加的區(qū)別
package com.lagou.Day03;
/**
* a++這個(gè)整體叫做表達(dá)式,其中a叫做操作數(shù)/變量。
* 也就是a++和a表示不同含義,因此所占的內(nèi)存空間應(yīng)該不同
*/
public class Demo06 {
public static void main(String[] args) {
int a = 10;
//此處打印表達(dá)式結(jié)果
//后++表示先讓變量a的數(shù)值作為整個(gè)表達(dá)式的結(jié)果,然后再讓a變量自身的數(shù)值加1
System.out.println(a++);//10
//此處打印變量的結(jié)果
//前++先讓a變量自身數(shù)值加1,然后再讓變量的數(shù)值作為整個(gè)表達(dá)式的結(jié)果
System.out.println(a);//11
System.out.println(++a);//12
System.out.println(a);//12
}
}

9.自增減運(yùn)算符的筆試考點(diǎn)
package com.lagou.Day03;
public class Test04 {
public static void main(String[] args) {
int a = 12;
int b = a++;
System.out.println(b);//12
System.out.println(a);//13
int c = ++a;
System.out.println(c);//14
System.out.println(a);//14
System.out.println(a++ + ++a);//30
System.out.println(a);//16
}
}
10.邏輯運(yùn)算符
- &&表示邏輯與運(yùn)算符,相當(dāng)于“并且”,同真為真,一假為假。
- ||表示邏輯或運(yùn)算符,相當(dāng)于“或者”,一真為真,同假為假。
- !表示邏輯非運(yùn)算符,相當(dāng)于“取反”,真為假,假為真。
- 邏輯運(yùn)算符的操作數(shù)均為boolean表達(dá)式。
package com.lagou.Day03;
public class Demo07 {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
System.out.println(b1 && b2);//false
System.out.println(b1 || b2);//true
System.out.println(!b1);//false
}
}

11.邏輯運(yùn)算符的短路特性
- 對(duì)于邏輯與運(yùn)算符來(lái)說(shuō),若第一個(gè)表達(dá)式為假則結(jié)果為假,此時(shí)跳過(guò)第二個(gè)表達(dá)式;
- 對(duì)于邏輯或運(yùn)算符來(lái)說(shuō),若第一個(gè)表達(dá)式為真則結(jié)果為真,此時(shí)跳過(guò)第二個(gè)表達(dá)式;
package com.lagou.Day03;
public class Test04 {
public static void main(String[] args) {
int a = 3;
int b = 5;
boolean c = (++a == 3) && (++b == 5);
System.out.println(c);//false
System.out.println(a);//4
System.out.println(b);//5
}
}
12.邏輯運(yùn)算符判斷三位數(shù)
package com.lagou.Day03;
import java.util.Scanner;
/**
* 編程使用邏輯運(yùn)算符判斷三位數(shù)
*/
public class Demo09 {
public static void main(String[] args) {
//1.提示用戶輸入一個(gè)正整數(shù)并使用變量記錄
System.out.println("請(qǐng)輸入一個(gè)正整數(shù)");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//2.使用邏輯運(yùn)算符判斷是否為三位數(shù)并打印
System.out.println(num>=100 && num<=999);
}
}
13.條件/三目運(yùn)算符
條件表達(dá)式?
表達(dá)式1:
表達(dá)式2
14.三目運(yùn)算符查找最大值
15.賦值運(yùn)算符
- =表示賦值運(yùn)算符,用于將=右邊的數(shù)據(jù)賦值給=左邊的變量,覆蓋變量原來(lái)的數(shù)值。
- 賦值表達(dá)式本身也是有值,其本身之值即為所賦之值
- +=、-=、*=、/=、…
package com.lagou.Day03;
public class Demo11 {
public static void main(String[] args) {
//1.聲明一個(gè)int類型變量并初始化
int a = 3;
System.out.println(a);//3
System.out.println("--------------");
//2.簡(jiǎn)單賦值運(yùn)算符的使用
//表示將數(shù)據(jù)5賦值給變量a并且覆蓋變量a原來(lái)的數(shù)值
a = 5;
System.out.println(a);//5
//下面的代碼是在打印表達(dá)式的結(jié)果
System.out.println(a=5);//5
int b = a = 6;
System.out.println(a);//6
System.out.println(b);//6
int c;
c = b = a = 8;
System.out.println(a);//8
System.out.println(b);//8
System.out.println(c);//8
System.out.println("--------------");
//3.復(fù)合賦值運(yùn)算符的使用
a = a + 2;
System.out.println(a);//10
}
}
16.賦值運(yùn)算符的考點(diǎn)一
package com.lagou.Day03;
public class Test05 {
public static void main(String[] args) {
byte b1 = 10;
System.out.println(b1);//10
/**
* 錯(cuò)誤:不兼容的類型:從int轉(zhuǎn)換到byte可能會(huì)有損失
* byte + int 相加結(jié)果還是int類型
*/
//b1 = b1 + 2;
/**
* 錯(cuò)誤:不兼容的類型:從int轉(zhuǎn)換到byte可能會(huì)有損失
* byte + byte 相加結(jié)果還是int類型
*/
//b1 = b1 + (byte)2;
b1 += 2;
}
}
17.賦值運(yùn)算符的考點(diǎn)二
package com.lagou.Day03;
public class Test06 {
public static void main(String[] args) {
/**
* a == 2;-表示判斷變量a的數(shù)值是否等于2
* 2 == a;-表示判斷2是否等于變量a的數(shù)值,從結(jié)果上來(lái)講等價(jià),推薦該方式。
* a = 2; -表示講2賦值給變量a,覆蓋變量a原來(lái)的數(shù)值
* 2 = a; -編譯報(bào)錯(cuò)
*/
}
}
18.移位運(yùn)算符
<<左移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向左移動(dòng),右邊使用0補(bǔ)充>>右移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向右移動(dòng),左邊使用符號(hào)位補(bǔ)充>>>表示邏輯右移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向右移動(dòng),左邊使用0補(bǔ)充
19.移位運(yùn)算符使用
package com.lagou.Day03;
/**
* 編程實(shí)現(xiàn)移位運(yùn)算符的使用
*/
public class Demo13 {
public static void main(String[] args) {
//1.聲明一個(gè)byte類型的變量并初始化
byte b1 = 13;
//2.打印變量的數(shù)值
System.out.println("b1 = "+b1);//b1=13
System.out.println("--------");
//3.移位運(yùn)算符的使用
/**
* 13的二進(jìn)制位是:0000 1101 =>左移1位的結(jié)果是:000 11010=>換算位十進(jìn)制整數(shù)的:26
*/
//byte b2 = b1 << 1;//錯(cuò)誤:不兼容的類型:從int轉(zhuǎn)換到byte可能會(huì)有損失 自動(dòng)提升位int類型,也就是32位
byte b2 = (byte)(b1 << 1);
System.out.println("b2 = " + b2);//26 左移1位相當(dāng)于當(dāng)前整數(shù)的數(shù)值*2
System.out.println(b1 << 2);//52
System.out.println("----------");
System.out.println(b1 >> 1);//6
System.out.println(b1 >> 2);//3
System.out.println("----------");
System.out.println(b1 >>> 2);//3
}
}
20.位運(yùn)算符
- &表示按位與運(yùn)算符,按照二進(jìn)制位進(jìn)行與運(yùn)算,同真為真,有假為假(同1為1,一0為0)
- |表示按位或運(yùn)算符,按照二進(jìn)制位進(jìn)行或運(yùn)算,有真為真,同假為假
- ~表示按位取反運(yùn)算符,按照二進(jìn)制位進(jìn)行取反,1為0,0為1
- ^表示按位異或運(yùn)算符,按照二進(jìn)制位進(jìn)行異或運(yùn)算,同為0,不同為1
21.位運(yùn)算符使用
package com.lagou.Day03;
/**
* 位運(yùn)算符
*/
public class Demo14 {
public static void main(String[] args) {
//1.聲明兩個(gè)byte類型的變量并初始化
byte b1 = 11;
byte b2 = 13;
//2.實(shí)現(xiàn)位運(yùn)算符的使用
/**
* b1的二進(jìn)制:0000 1011
* b2的二進(jìn)制:0000 1101
*/
System.out.println(b1 & b2);//同1為1,一0為0 0000 1001=>轉(zhuǎn)為十進(jìn)制是:9
System.out.println(b1 | b2);//一1為1,同0為0 0000 1111=>轉(zhuǎn)為十進(jìn)制是:15
System.out.println(b1 ^ b2);//相同為0,不同為1 0000 0110=>轉(zhuǎn)為十進(jìn)制是:6
System.out.println(~b1);//1為0,0為1 1111 0100=> -12
//二進(jìn)制1111 0100轉(zhuǎn)為十進(jìn)制 先減1:1111 0011 按位取反 0000 1100 轉(zhuǎn)為十進(jìn)制:12 結(jié)果:-12
}
}
22.運(yùn)算符的優(yōu)先級(jí)
- ()的優(yōu)先級(jí)極高
- =的優(yōu)先級(jí)極低
- 若無(wú)法確認(rèn)優(yōu)先級(jí),則使用()來(lái)確保即可
到此這篇關(guān)于Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Java運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中如何計(jì)算一段程序的運(yùn)行時(shí)間
這篇文章主要介紹了Java中如何計(jì)算一段程序的運(yùn)行時(shí)間問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Java將字節(jié)轉(zhuǎn)換為十六進(jìn)制代碼分享
我們知道,在java中,一個(gè)byte 就是一個(gè)字節(jié),也就是八個(gè)二進(jìn)制位;而4個(gè)二進(jìn)制位就可以表示一個(gè)十六進(jìn)制位,所以一個(gè)byte可以轉(zhuǎn)化為2個(gè)十六進(jìn)制位。下面我們就來(lái)詳細(xì)看下具體方法吧。2016-01-01
IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟
SpringBoot后端服務(wù)重定向的實(shí)現(xiàn)示例
SpringBoot同時(shí)啟動(dòng)不同端口圖示解析

