Java基礎:Java數字類型

Java 中包含多種運算符:算數運算符、關系運算符、邏輯運算符、位運算符。在 Math 類中,包含了各種各樣的數學函數。在編寫不同類別的程序時,可能需要的函數也不同。要生成一個隨機數,可以使用 Random 對象。

本篇主要記錄內容包括:運算符、數學工具類


  • 上一篇內容:Java基礎:Java數據類型
  • 下一篇內容:Java基礎:Java流程控制
  • 更多知識學習:全網最全的 Java 技術棧內容梳理(持續更新中)

文章目錄

    • 一、運算符
        • 1、算數運算符
        • 2、關系運算符
        • 3、邏輯運算符
        • 4、位運算符(與邏輯運算符不是同一個概念)
    • 二、數學工具類
        • 1、Math 數學類
        • 2、Random 類


一、運算符

Java 中包含多種運算符:算數運算符、關系運算符、邏輯運算符、位運算符。

1、算數運算符

在 Java中,使用算術運算符 + - * / 表示加、減、乘、除運算。整數的求余操作(有時稱為取模)用 % 表示。

程序員都知道加 1、減 1 是數值變量最常見的操作。在 Java 中,借鑒了 C 和 C++ 的做法,也提供了自增、自減運算符:n++ 將變量 n 的當前值加 1,n-- 則將 n 的值減1。

注意事項:①加法運算符在連接字符串時要注意,只有直接與字符串相加才會轉成字符串;②當參與 / 運算的兩個操作數都是整數時,表示整數除法;否則,表示浮點除法。③%為整除取余符號,小數取余沒有意義,結果符號與被取余符號相同;④整數做被除數,0 不能做除數,否則報錯;⑤小數做被除數,整除 0 結果為 Infinity,對 0 取模結果為 NaN

2、關系運算符

Java 包含豐富的關系運算符。要檢測相等性,可以使用兩個等號 ==。例如,3==7 的值為 false,另外可以使用 != 檢測不相等。例如,例如,3!=7 的值為 true。最后,還有經常使用的 <(小于)、>(大于)、<=(小于等于)和 >=(大于等于)運算符。

注意事項:①結果只能是truefalse;②字符間的比較,比較的是其ASCII值;③浮點數與整數比較,只要值相等,就返回true

3、邏輯運算符

Java 沿用了 C++ 的做法,使用 && 表示邏輯 “與” 運算符,使用||表示邏輯 “或” 運算符。從 != 運算符可以想到,感嘆號 ! 就是邏輯非運算符。&&|| 運算符是按照 “短路” 方式來求值的:如果第一個操作數已經能夠確定表達式的值,第二個操作數就不必計算了。

注意事項:①&& : 又叫短路運算符,A&&B,如果A為假,不會去計算B的值,直接得到結果為 false;②& : A&B,即使A為假,也會計算B的值;③|| : 也是短路運算符,A||B,如果A為真,不會去計算B的值,直接得到結果為 true;④| : A|B,即使A為真,也會計算 B 的值;⑤^ : 異或,左右兩邊條件結果相同,結果就為 false,左右兩邊結果不同,結果就為 true。

4、位運算符(與邏輯運算符不是同一個概念)

處理整型類型時,可以直接對組成整型數值的各個位完成操作。這意味著可以使用掩碼技術得到整數中的各個位。位運算符包括:& | ~ ^ >> << >>>

注意事項:①&:“與” 運算符,兩個都為 1 時才為 1,其他情況均為 0;②|:“或” 運算符,兩個都為 0 時才為 0,其他情況均為 1;③~:“非” 運算符,取反,即 1 變為 0,0 變為1;④^:“異或” 運算符,相同值為 0,不同值為 1 ;⑤>>:“右移” 運算符,m>>n,把 m 的二進制數右移 n 位,m 為正數,高位全部補 0,m 為負數,高位全部補 1;⑥<<:“左移” 運算符,m<<n,把 m 的二進制數左移 n 位,高位超出 n 位都舍棄,低位補 0 (此時可能出現正數變負數);⑦>>>:“無符號右移” 運算符,m>>>n,整數 m 表示的二進制右移 n 位,不論正負數,高位都補 0。


二、數學工具類

1、Math 數學類

在 Math 類中,包含了各種各樣的數學函數。在編寫不同類別的程序時,可能需要的函數也不同。下面的匯總了一部分最常用的方法。

方法名方法說明方法名方法說明
Math.sqrt(i);求平方根Math.rint(f);奇數向上,偶數向下取整(浮點型)
Math.ceil(f);向上取整Math.floor(f);向下取整
Math.pow(m, n);m 的 n 次冪Math.round(i);四舍五入取整(整形)
Math.random();0-1 的隨機數(浮點型)Math.abs(-i);取絕對值
Math.max(a, b);返回大值Math.min(a, b); 返回小值
Math.signum(i)小于 0 返回 -1 / 等于 0 返回 0 / 大于 0 返回 1

Math 數學類還提供了三角函數:

Math.sin(3.14); // 0.00159...
Math.cos(3.14); // -0.9999...
Math.tan(3.14); // -0.0015...
Math.asin(1.0); // 1.57079...
Math.acos(1.0); // 0.0

Math 還提供了幾個數學常量:

double pi = Math.PI; // 3.14159...
double e = Math.E; // 2.7182818...
Math.sin(Math.PI / 6); // sin(π/6) = 0.5

2、Random 類

要生成一個隨機數,可以使用 Random 對象。下面的匯總了一部分最常用的方法。

方法名方法說明方法名方法說明
nextInt();隨機生成 int 數據類型范圍的數nextInt(i);從0開始,左閉右開隨機生成
nextLong()隨機生成 long 數據類型范圍的數nextFloat()生成一個 [0,1) 之間的 float
nextDouble()生成一個 [0,1) 之間的 double

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

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

相關文章

Java基礎:Java流程控制

塊&#xff08;即復合語句&#xff09;是指由一對大括號括起來的若干條簡單的 Java 語句。塊確定了變量的作用域。一個塊可以嵌套在另一個塊中。但是&#xff0c;不能在嵌套的兩個塊中聲明同名的變量。使用塊&#xff08;有時稱為復合語句&#xff09;可以在Java程序結構中原本…

Java基礎:Java類與對象

面向對象程序設計&#xff08;簡稱OOP&#xff09;是當今主流的程序設計范型&#xff0c;它已經取代了20世紀70年代的“結構化”過程化程序設計開發技術。Java是完全面向對象的&#xff0c;必須熟悉OOP才能夠編寫Java程序。面向對象的程序是由對象組成的&#xff0c;每個對象包…

SVN備份腳本

#!/bin/bash #svn全量備份腳本 wwytcode_path/home/wwytcode/project backup_path/home/bak Datedate %Y%m%d cd $backup_path echo date >> $back_path/svn_backup.log svnversionsvnlook youngest $wwytcode_path svnadmin dump --revision 0:$svnversion $wwytcode_pa…

Java基礎:Java面向對象

面向過程的優點是性能比面向對象高&#xff0c;不需要面向對象的實例化&#xff1b;缺點是不容易維護、復用和擴展。面向對象的優點是具有封裝、繼承、多態的特性&#xff0c;因而容易維護、復用和擴展&#xff0c;可以設計出低耦合的系統&#xff1b;缺點是由于需要實例化對象…

薪資生成

import openpyxl from openpyxl.styles import Font,Alignment,Side,Border#設置字體樣式 fontFont(name宋體,size20,boldTrue) font2Font(name宋體,size12,boldTrue) alignmentAlignment(horizontalcenter,verticalcenter,wrap_textTrue) sideSide(stylethin ,color000000) …

Java基礎:Java抽象接口

在Java中&#xff0c;一個沒有方法體的方法應該定義為抽象方法&#xff0c;而如果一個類中含有抽象方法&#xff0c;則該類必須定義為一個抽象類。接口是功能的集合&#xff0c;同樣可看做是一種特殊的數據類型&#xff0c;是比抽象類更為抽象的類&#xff0c;接口只描述所應該…

13 張圖帶你學懂 Kubernetes Service(轉載)

在 Kubernetes 中 Service 主要有4種不同的類型&#xff0c;其中的 ClusterIP 是最基礎的&#xff0c;如下圖所示&#xff1a; 當我們創建一個 NodePort 的 Service 時&#xff0c;它也會創建一個 ClusterIP&#xff0c;而如果你創建一個 LoadBalancer&#xff0c;它就會創建一…

Java基礎:Java異常機制

異常是程序運行過程中出現的錯誤。Java 把異常當作對象來處理&#xff0c;把異常信息封裝成了一個類&#xff0c;并定義一個基類java.lang.Throwable作為所有異常的超類。Throwable : 它是所有錯誤與異常的超類&#xff08;祖宗類&#xff09;,有兩個子類 Error 和 Exception。…

JavaWeb:Servlet的應用及接口介紹

廣義的 Servlet 泛指在服務器上運行的 Java 程序&#xff0c;但是這個 Java 程序&#xff0c;并不能獨立運行&#xff08;因為 Servlet 沒有 main 方法&#xff09;&#xff0c;需要部署在相應的 Servlet 容器中&#xff0c;比如 Tomcat 和 Jetty。Servlet 主要功能在于交互式地…

DOCKERFILE參數注解

Dockerfile由一行行命令語句組成&#xff0c;并且支持以#開頭的注釋行。 一般的&#xff0c;Dockerfile 分為四部分&#xff1a;基礎鏡像信息、維護者信息、鏡像操作指令和容器啟動時執行指令。 Dockerfile的指令是忽略大小寫的&#xff0c;建議使用大寫&#xff0c;使用 # 作為…

Zookeeper:分布式過程協同技術

Zookeeper 是一個高性能的分布式一致系統&#xff0c;在分布式系統中有著廣泛的應用。基于它&#xff0c;可以實現諸如“分布式同步”、“配置管理”、“命名空間管理”等眾多功能&#xff0c;是分布式系統中常見的基礎系統。Zookeeper 主要用來解決分布式集群中應用系統的一致…

面試題2021-2-24

給某CentOs6慮擬機添加了新的數據盤&#xff0c;設備名為/de/sdd.寫命令格式化滿加的效的并掛載到指定目錄/opt fdisk -l mkfs.ext4 /de/sdd mount /de/sdd /opt 如何查看與RabbtMQ服務器之間的establish狀態連接數&#xff1f;netstat -an |grep ESTABLISHED |grep tcp |wc -l…

Zookeeper:在三種模式下的部署

zookeeper 安裝模式有三種&#xff1a;單機模式&#xff1a;單機單 server&#xff1b;集群模式&#xff1a;多機多 server&#xff0c;形成集群&#xff1b;偽集群模式&#xff1a;單機多 server&#xff0c;形成偽集群。 ~ 本篇內容包括&#xff1a;Zookeeper 官網下載、Zook…

Linux namespace概述

操作系統通過虛擬內存技術&#xff0c;使得每個用戶進程都認為自己擁有所有的物理內存&#xff0c;這是操作系統對內存的虛擬化。操作系統通過分時調度系統&#xff0c;每個進程都能被【公平地】調度執行&#xff0c;即每個進程都能獲取到CPU&#xff0c;使得每個進程都認為自己…

Zookeeper:Zookeeper的主從選舉機制

ZAB 協議&#xff0c;全稱 Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子廣播協議&#xff09;&#xff0c;是為分布式協調服務 ZooKeeper 專門設計的一種支持崩潰恢復的一致性協議。基于該協議&#xff0c;ZooKeeper 實現了一種主從模式的系統架構來保持集群中各個副…

Linux namespace之:uts namespace

理解uts namespace uts(UNIX Time-Sharing System) namespace可隔離hostname和NIS Domain name資源&#xff0c;使得一個宿主機可擁有多個主機名或Domain Name。換句話說&#xff0c;可讓不同namespace中的進程看到不同的主機名。 例如&#xff0c;使用unshare命令(較新版本L…

Zookeeper:事件監聽和通知機制

Zookeeper 允許客戶端向服務端的某個 Znode 注冊一個 Watcher 監聽&#xff0c;當服務端的一些指定事件觸發了這個 Watcher&#xff0c;服務端會向指定客戶端發送一個事件通知來實現分布式的通知功能&#xff0c;然后客戶端根據 Watcher 通知狀態和事件類型做出業務上的改變。 …

Linux namespace之:mount namespace

理解mount namespace 用戶通常使用mount命令來掛載普通文件系統&#xff0c;但實際上mount能掛載的東西非常多&#xff0c;甚至連現在功能完善的Linux系統&#xff0c;其內核的正常運行也都依賴于掛載功能&#xff0c;比如掛載根文件系統/。其實所有的掛載功能和掛載信息都由內…

Linux namespace之:network namespace

理解network namespace network namespace用來隔離網絡環境&#xff0c;「在network namespace中&#xff0c;網絡設備、端口、套接字、網絡協議棧、路由表、防火墻規則等都是獨立的」。 因network namespace中具有獨立的網絡協議棧&#xff0c;因此每個network namespace中都…

Kubernetes 的原理

kubernetes 已經成為容器編排領域的王者&#xff0c;它是基于容器的集群編排引擎&#xff0c;具備擴展集群、滾動升級回滾、彈性伸縮、自動治愈、服務發現等多種特性能力。 本文將帶著大家快速了解 kubernetes &#xff0c;了解我們談論 kubernetes 都是在談論什么。 kuberne…