JAVA核心基礎篇-操作符

Java 操作符是用于操作變量和值的特殊符號,主要分為以下幾類:

1. 算術運算符

用于執行基本的數學運算:

  • +:加法(也可用于字符串拼接)
  • -:減法
  • *:乘法
  • /:除法(整數相除取整數部分)
  • %:取余(模運算)
  • ++:自增(前綴先增后用,后綴先用后增)
  • --:自減(規則同自增)

示例:

int a = 10, b = 3;
System.out.println(a + b);  // 13
System.out.println(a % b);  // 1
System.out.println(a++);    // 10(先輸出后自增)

2. 賦值運算符

用于給變量賦值:

  • =:基本賦值
  • +=:相加后賦值(a += b?等價于?a = a + b
  • -=:相減后賦值
  • *=:相乘后賦值
  • /=:相除后賦值
  • %=:取余后賦值

示例:

int x = 5;
x += 3;  // 等價于 x = x + 3,結果為8

3. 比較運算符

用于比較兩個值,返回布爾值(true/false):

  • ==:等于
  • !=:不等于
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于

示例:

int m = 5, n = 10;
System.out.println(m == n);  // false
System.out.println(m < n);   // true

4. 邏輯運算符

用于連接布爾表達式,返回布爾值:

  • &&:邏輯與(短路與,兩邊都為true才返回true,左邊為false則不執行右邊)
  • ||:邏輯或(短路或,兩邊有一個為true就返回true,左邊為true則不執行右邊)
  • !:邏輯非(取反,!truefalse

示例:

boolean p = true, q = false;
System.out.println(p && q);  // false
System.out.println(p || q);  // true
System.out.println(!p);      // false

5. 位運算符

對整數的二進制位進行操作:

  • &:按位與(對應位都為 1 則為 1)
  • |:按位或(對應位有一個為 1 則為 1)
  • ^:按位異或(對應位不同則為 1)
  • ~:按位非(取反,0 變 1,1 變 0)
  • <<:左移(將二進制位向左移動指定位數,右邊補 0)
  • >>:右移(將二進制位向右移動指定位數,正數左補 0,負數左補 1)
  • >>>:無符號右移(無論正負,左補 0)

示例:

int c = 6;  // 二進制 0110
int d = 3;  // 二進制 0011
System.out.println(c & d);  // 2(二進制 0010)
System.out.println(c << 1); // 12(二進制 1100)

6. 三元運算符(條件運算符)

格式:條件表達式 ? 表達式1 : 表達式2

  • 若條件為true,返回表達式 1 的值;否則返回表達式 2 的值。

示例:

int score = 85;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result);  // 及格

7. instanceof 運算符

用于判斷對象是否為某個類(或接口)的實例,返回布爾值。

示例:

String str = "Hello";
System.out.println(str instanceof String);  // true

這些運算符在 Java 中按優先級從高到低執行,可通過括號()改變執行順序

8. 運算符執行流程

a && b || c
在 Java 里,表達式a && b || c的執行流程是由運算符優先級和短路規則共同決定的。下面為你詳細分析:

優先級規則

  • &&(邏輯與)的優先級要比||(邏輯或)高。
  • 所以,這個表達式會先計算a && b,然后再用計算結果和c進行||運算。

執行步驟

  1. 計算a && b
  • 先對a進行求值。
  • a的值為false,由于&&的短路特性,不會再對b求值,整個a && b的結果直接為false
  • a的值為true,則繼續對b求值:
    • btrue時,a && b的結果為true
    • bfalse時,a && b的結果為false
  1. 計算(a && b) || c
  • a && b的結果是true,基于||的短路特性,不會對c求值,整個表達式的結果就是true
  • a && b的結果是false,則需要對c求值:
    • ctrue,整個表達式的結果為true
    • cfalse,整個表達式的結果為false

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94108.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫字段類型深度解析:從關系型到 NoSQL 的全面指南

數據庫字段類型深度解析&#xff1a;從關系型到 NoSQL 的全面指南 一、引言&#xff1a;數據庫字段類型的重要性 在現代軟件開發和數據管理中&#xff0c;數據庫作為核心組件&#xff0c;其性能、可擴展性和數據完整性在很大程度上取決于字段類型的選擇。作為專業的開發者和數據…

藍牙aoa倉庫管理系統功能介紹

在現代倉儲物流的快節奏運作中&#xff0c;高效管理倉庫人員的位置與行動軌跡&#xff0c;成為提升整體運營效率的關鍵。藍牙AOA&#xff08;Angle of Arrival&#xff0c;信號到達角&#xff09;技術應運而生&#xff0c;以其獨特的優勢和強大的功能&#xff0c;為倉庫人員定位…

【輕量級密碼算法】當安全遇上資源瓶頸:輕量級加密為何成為 IoT 時代的剛需?

在智能家居的場景中&#xff0c;當你輕觸智能門鎖的指紋識別區域&#xff0c;期望它能快速響應并解鎖時&#xff0c;你是否想過在這短短幾秒內&#xff0c;門鎖內部的微控制器&#xff08;MCU&#xff09;正在進行著復雜的安全驗證操作&#xff1f;然而&#xff0c;對于大多數資…

嵌入式開發學習———Linux環境下網絡編程學習(四)

數據庫簡介數據庫是結構化數據的集合&#xff0c;用于高效存儲、檢索和管理數據。常見的數據庫類型包括關系型&#xff08;如MySQL、SQLite&#xff09;和非關系型&#xff08;如MongoDB&#xff09;。關系型數據庫使用表格形式存儲數據&#xff0c;并通過SQL&#xff08;結構化…

在 CentOS 7 上搭建 OpenTenBase 集群:從源碼到生產環境的全流程指南

目 錄什么是OpenTenBaseOpenTenBase源碼編譯安裝安裝依賴創建opentenbase用戶源碼獲取編譯安裝初始化數據庫初始化數據庫集群啟動與停止服務基本使用示例開機自啟動配置總結官網教程鏈接什么是OpenTenBase OpenTenBase 是一個提供寫可靠性&#xff0c;多主節點數據同步的關系數…

LoRaWAN網絡部署全流程:從方案設計到實際落地的關鍵要點

一、覆蓋范圍&#xff1a;從理論到實踐 LoRaWAN的覆蓋距離在理論上可達15公里&#xff0c;但實際部署受地形和環境影響極大。 城市環境中&#xff0c;密集的建筑群和多徑效應常常使網關有效覆蓋半徑縮小至3至5公里&#xff1b;在空曠的農村或農田場景中&#xff0c;覆蓋范圍可提…

portswigger labs XXE漏洞利用實戰

lab1 利用外部實體注入獲取文件解決此 lab 需要讀取到/etc/passwd<!DOCTYPE test [ <!ENTITY cmd SYSTEM "file:///etc/passwd"> ]> <productId>&cmd;</productId>lab2 利用 XXE 執行 SSRF 攻擊通過構造 xxe 請求特定的 url 獲取目錄拼接…

深入理解 hash -r:解決 Linux 命令緩存難題的關鍵密鑰

前言&#xff1a;在 Linux 終端的日常操作中&#xff0c;你是否遇到過這樣的詭異場景&#xff1a;明明已經升級或切換了軟件版本&#xff08;比如 Node.js 從舊版更新到新版 &#xff09;&#xff0c;但執行命令時&#xff0c;系統卻像被“施了魔法”&#xff0c;依舊執著地調用…

onnx入門教程(二)—— PyTorch 轉 ONNX 詳解

在這一節里&#xff0c;我們將詳細介紹 PyTorch 到 ONNX 的轉換函數—— torch.onnx.export。我們希望大家能夠更加靈活地使用這個模型轉換接口&#xff0c;并通過了解它的實現原理來更好地應對該函數的報錯&#xff08;由于模型部署的兼容性問題&#xff0c;部署復雜模型時該函…

嵌入式LINUX——————網絡TCP

一、TCP連接1.TCP特點&#xff1a;&#xff08;1&#xff09;面向鏈接&#xff08;2&#xff09;面向字節流&#xff08;3&#xff09;安全可靠的傳輸協議&#xff0c;因為會先建立連接&#xff08;4&#xff09;占用資源開銷大&#xff0c;效率低&#xff0c;實時性不佳&#…

alicloud 阿里云有哪些日志 審計日志

1: 阿里有哪些audit log: Audit Related Logs Below table describe the logs available in Log Service that might be applicable to the Security Operations Team. 2: 怎么來分析呢? Overview Its recommended to built a program with SLS Consumer Group which real…

如何理解AP服務發現協議中“如果某項服務需要被配置為可通過多個不同的網絡接口進行訪問,則應為每個網絡接口使用一個獨立的客戶端服務實例”?

上一句&#xff1a;[PRS_SOMEIPSD_00238]◎ 「如果某項服務需要在多個網絡接口上提供&#xff0c;則應為每個網絡接口使用一個獨立的服務器服務實例。」(RS_SOMEIPSD_00003) 本句&#xff1a;[PRS_SOMEIPSD_00239] 「如果某項服務需要被配置為可通過多個不同的網絡接口進行訪問…

piecewise jerk算法介紹

piecewise jerk算法介紹 piecewise jerk算法是百度Apollo中的一種用于路徑和速度平滑的算法&#xff0c;該算法假設相鄰點之間的jerk為常數&#xff0c;基于該假設將平滑問題構建為二次規劃問題&#xff0c;調用osqp求解器求解。參考論文為&#xff1a;Optimal Vehicle Path Pl…

分布式蜜罐系統的部署安裝

前陣子勒索病毒泛濫&#xff0c;中小企業由于缺少專業EDR&#xff0c;態勢感知&#xff0c;IPS等設備&#xff0c;往往是在勒索事件發生之后才后知后覺&#xff0c;也因為缺乏有效的備份策略&#xff0c;導致數據&#xff0c;經濟&#xff0c;商業信譽的喪失&#xff0c;甚至還…

定時器互補PWM輸出和死區

定時器互補PWM輸出和死區互補PWM&#xff08;Complementary PWM&#xff09;H橋、全橋、半橋中的應用為什么需要死區時間互補PWM&#xff08;Complementary PWM&#xff09; 是一種特殊的 PWM 輸出模式&#xff0c;通常用于H橋、全橋或半橋電路的驅動。其核心原理是利用定時器…

嵌入式ARM程序高級調試基礎:8.QEMU ARM虛擬機與tftp配置

嵌入式ARM程序高級調試基礎:8.QEMU ARM虛擬機與tftp配置 文章目錄 嵌入式ARM程序高級調試基礎:8.QEMU ARM虛擬機與tftp配置 一.總的網絡配置過程 二.主機配置 三.QEMU ARM 網絡配置 四.主機與虛擬器之間的網絡測試 五.TFTP網絡配置 5.1 ubuntu主機安裝tftp服務器 5.2 設置tft…

【貪心算法】貪心算法六

貪心算法六 1.壞了的計算器 2.合并區間 3.無重疊區間 4.用最少數量的箭引爆氣球 點贊????收藏????關注???? 你的支持是對我最大的鼓勵,我們一起努力吧!???? 1.壞了的計算器 題目鏈接: 991. 壞了的計算器 題目分析: 算法原理: 解法一:正向推導 以3轉化…

直播預約 | CATIA MODSIM SmartCAE帶練營第3期:讓每輪設計迭代都快人一步!

▼▼免費報名鏈接▼▼ 達索系統企業數字化轉型在線研討會https://3ds.tbh5.com/EventDetail.aspx?eid1195&frpt 迅筑官網 ??

OSI參考模型TCP/IP模型 二三事

計算機網絡的學習離不開OSI參考模型&TCP/IP模型對各層功能與任務的了解就是學習的主要內容其二者的區別也是我們應該了解的其中 擁塞控制和流量控制 就是各層功能中 兩個易混淆的概念流量控制&#xff08;Flow Control&#xff09;&#xff1a;解決的是發送方和接收方之間速…

DataStream實現WordCount

目錄讀取文本數據讀取端口數據事實上Flink本身是流批統一的處理架構&#xff0c;批量的數據集本質上也是流&#xff0c;沒有必要用兩套不同的API來實現。所以從Flink 1.12開始&#xff0c;官方推薦的做法是直接使用DataStream API&#xff0c;在提交任務時通過將執行模式設為BA…