java中運算符使用步驟(超詳細!)
前言
運算符是什么呢?其實這個問題很簡單,運算符在我們的生活中很常見,失去了它,我們的數(shù)學(xué)基本報廢了,像“+ , - ,* , /”都是我們最基本的運算符。即:對操作數(shù)進行操作時使用的符號,不同操作符的含義各不相同。
java作為一門優(yōu)秀的程序設(shè)計語言,同樣也提供有一整套豐富的運算符來操作變量。Java中的運算符分為:算術(shù)運算符(±*/),邏輯運算符(&&,||等),位運算符(& 、|等),關(guān)系操作符(><等),移位操作符和條件操作符等。
一、運算符
1.什么是運算符
計算機的最基本的用途之一就是執(zhí)行數(shù)字運算
在數(shù)字運算中的"+"和"-"等就是運算符
即:對操作數(shù)進行操作時的符號,不運算符操作的含義不同。
作為一門計算機語言,java也提供了一套豐富的運算符來操作變量。
java中將運算符分為以下部分:算數(shù)運算符,關(guān)系運算符,邏輯運算符,位運算符,移位運算符以及條件運算符等。
2.算數(shù)運算符
1.基本運算符:加減乘除取模(+-*/ % )

注意:
- 都是二元運算符,使用時必須要有左右兩個操作數(shù)
int / int 結(jié)果還是int型,結(jié)果會向下取整,即小數(shù)點后的數(shù)舍去,取整數(shù)。

結(jié)果為:

若想保留小數(shù)點的數(shù)字,可采用如下方法:

- 做除法和取模時,右操作數(shù)不能為0,否則將會報錯
- %不僅可以對整型取模,也可以對double類型取模,但沒有意義,一般都對整型取模。
- 兩側(cè)操作數(shù)類型不一致時,向類型大的提升:

結(jié)果為:

在進行+的之前,int型的a被提升為double型輸出
2.增量運算符 += -= *= %=
該種類型運算符操作完成后,會將操作的結(jié)果賦值給左操作數(shù)

結(jié)果為:

注意:增量運算符在計算時,可以不進行強制類型轉(zhuǎn)換
3.自增/自減運算符 ++/--
如果單獨使用,[前置++]和[后置++]沒有任何區(qū)別
如果混合使用,[前置++]先+1,然后使用變量+1之后的值,[后置++]先使用變量原來的值,表達式結(jié)束時給變量+1
只有變量才能使用自增/自減運算符,常量不能使用,因為常量不允許被修改
3.關(guān)系運算符
關(guān)系運算符主要有六個:== != > < <= >=,其計算結(jié)果是true或者false。
注意:
當(dāng)需要多次判斷時,不能連著寫,比如2<a<4,java程序與數(shù)學(xué)中的區(qū)別
4.邏輯運算符(重點)
邏輯運算符主要有三個 && || ! ,運算結(jié)果都是boolean類型
語法規(guī)則:表達式1&&(|| ?。┍磉_式2,左右表達式必須是boolean類型的結(jié)果
4.1邏輯與&&
左右表示式中存在一個false的,則結(jié)果為false
示例:

結(jié)果為:

4.3 邏輯 或||
當(dāng)左右表達式中存在一個true,則輸出結(jié)果為true

示例:

結(jié)果為:

4.3邏輯非!
表達式true變?yōu)閒alse,false變?yōu)閠rue

4.4短路求值
邏輯與和邏輯或遵守短路求值的規(guī)則。
對于邏輯與&&,如果左側(cè)表達式值false, 則表達式結(jié)果一定是false,無需計算右側(cè)表達式
對于邏輯或||,如果左側(cè)表示式值為true,則表示式結(jié)果一定是true,無需計算右側(cè)表達式
&和| ,如果表達式結(jié)果為boolean類型,也表達邏輯算計,但與&&和||相比,它們不支持短路求值
5.位運算符
java中數(shù)據(jù)存儲的最小單位是字節(jié),而數(shù)據(jù)操作的最小單位是比特位。字節(jié)是最小的存儲單位,每個字節(jié)是由8個二進制比特位組成的,多個字節(jié)組合在一起可以表示各種不同的數(shù)據(jù)。
位運算符主要有四個:& | ~ ^,除~是一元運算符外,其他都是二元運算符。
位操作表示按二進制計算.計算機中都是使用二進制來表示數(shù)據(jù)的(01構(gòu)成的序列),按位運算就是在按照二進制的每一位依次進行計算。
1.按位與&:
如果兩個二進制都是1,則結(jié)果為1,否則結(jié)果為0.

2.按位或|:
如果兩個二進制位都是0,則結(jié)果位0,否則結(jié)果為1

注意:
當(dāng)&和 | 的操作數(shù)為整數(shù)(int short long byte)的時候,表示按位計算機,當(dāng)操作數(shù)為boolean類型的時候,表示邏輯計算。
3.按位取反~:
如果該位為0,則轉(zhuǎn)為1,如果該位為1,則轉(zhuǎn)為0

注意:
0x前綴的數(shù)字為十六進制數(shù)字,十六進制可以看成二進制的簡化表達方式.一個十六進制數(shù)字對應(yīng)4個二進制位。
0xf表示10進制的15,也就是二進制的1111
printf能夠格式化輸出內(nèi)容,%x表示按照十六進制輸出
\n表示換行符
4.按位異或^:
如果兩個數(shù)字的二進制相同,則結(jié)果為0,相異則結(jié)果為1

如果兩個數(shù)字相同,則異或的結(jié)果為
6.移位運算符(了解)
移位運算符有三個:>> << >>> ,都是二元運算符,且都是按照二進制比特位來運算的。
1.左移位 <<
在二進制中,最左側(cè)位不要,最右側(cè)補0.
例如:0101 0101 << 1 ——> 1010 1010
2.右移 >>
最右側(cè)位不要,最左側(cè)補符號位(符號是1補1,否則補0)
例如:0101 0101 >>1 ——> 0010 1010
3.無符號右移 >>>
最右側(cè)位不要了,最左側(cè)補0
例如 1111 1111 >>>1 ——> 0111 1111
7.條件運算符
條件運算符只有一個:
表達式1 ? 表達式2 : 表達式3
表達式1為boolean類的結(jié)果,
當(dāng)結(jié)果為true時,整個表達式的結(jié)果值為表達式2 的值
當(dāng)結(jié)果為false時,整個表達式的結(jié)果值為 表達式3的值
java中唯一的一個三目運算符,是條件判斷語句的簡化寫法

結(jié)果為:

注意:
1.表達式2和表達3的結(jié)果要是同類型的,除非能發(fā)生隱式類型轉(zhuǎn)換
2.表達式不能單獨存在,其產(chǎn)生的結(jié)果必須要被使用
8.運算符的優(yōu)先級
運算符之間是有優(yōu)先級的,但具體的規(guī)則我們不必記憶。
在可能存在歧義的代碼中加上括號即可
總結(jié)
到此這篇關(guān)于java中運算符使用步驟的文章就介紹到這了,更多相關(guān)java中運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA?服務(wù)器熱部署圖文詳解(On?Update?action/On?frame?deactivation)
這篇文章主要介紹了IDEA?服務(wù)器熱部署詳解(On?Update?action/On?frame?deactivation),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Spring?@DateTimeFormat日期格式化時注解場景分析
這篇文章主要介紹了Spring?@DateTimeFormat日期格式化時注解場景分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
MyBatis saveBatch 性能調(diào)優(yōu)的實現(xiàn)
本文主要介紹了MyBatis saveBatch 性能調(diào)優(yōu)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Java中大數(shù)據(jù)流處理的7大性能優(yōu)化對比
這篇文章主要為大家詳細介紹了Java中大數(shù)據(jù)流處理的相關(guān)方法和性能優(yōu)化技巧,文中的示例代碼講解詳細,有需要的小伙伴可以了解下2025-09-09
怎樣將一個JAR包添加到Java應(yīng)用程序的Boot?Classpath中
本文文章給大家介紹如何將一個JAR包添加到Java應(yīng)用程序的Boot?Classpath中,本文通過實例代碼給大家介紹的非常詳細,需要的的朋友參考下吧2023-11-11
Spring接口版本控制方案及RequestMappingHandlerMapping接口介紹(最新推薦)
RequestMappingHandlerMapping接口是Spring MVC中的一個核心組件,負(fù)責(zé)處理請求映射和處理器的匹配這篇文章主要介紹了Spring接口版本控制方案及RequestMappingHandlerMapping接口介紹,需要的朋友可以參考下2024-07-07
SpringBoot整合Redis實現(xiàn)高并發(fā)數(shù)據(jù)緩存的示例講解
這篇文章主要介紹了SpringBoot整合Redis實現(xiàn)高并發(fā)數(shù)據(jù)緩存,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03

