跟我學java編程—認識java的整數類型

2021-01-10 米粒教育

Java語言中,基本的整型數據類型有byte、short、int、long四種類型,用於需要不同存儲空間的數據使用。整型有正整數和負整數之分,在Java語言中,規定整型的最高位為符號位,最高位為「0」表示正數,最高位為「1」表示負數,其它位表示數值。因此整型類型的數據能夠表示的最小值為:-2n-1 —2n-1-1(n為該類型所佔存儲空間的二進位位數)。

其中,byte佔用一個字節的存儲空間,可表示的最小數值為-128,最大數值為127;

short佔用二個字節的存儲空間,可表示的最小數值為-32768,最大數值為32767;

int佔用四個字節的存儲空間,可表示的最小數值為-2147483648,最大數值為2147483647;

long佔用四個字節的存儲空間,可表示的最小數值為-9223372036854775808,最大數值為9223372036854775807。

整型變量可按如下方式聲明:

在一條語句中,可以聲明多個同一類型的整型變量,每個變量之間用英文逗號分隔:

整型變量可按如下方式初始化:

在初始化變量或為變量賦值時,常常會用到一些數值,這些值通常稱為常量。Java語言中整型常量有三種不同的表示形式:十進位、八進位和十六進位。

① 八進位整型常量:在八進位數值前面加前綴數字0,其數碼取值為0—7,例如:023、0457、01329等;

② 十六進位整型常量:前綴為「0X」或「0x」,數碼取值0—9、A—F、或a—f。例如:0X2A、0XA0、0Xffff等;

③ 十進位整型常量:既無前綴也無後綴。例如:236、56、7890等。

示例1: 整型常量聲明:

當整型數據數值大小超出了可以表示的範圍,而程序中又沒有做數值範圍的檢查時,這個整型變量所輸出的值將發生紊亂,且不是預期的運行結果,這種現象稱為溢出。

示例2:int類型的溢出

在D盤Java目錄下,新建「OverFlow.java」文件。用記事本打開「OverFlow.java」文件,輸入以下代碼:

編譯「OverFlow.java」文件,在命令行窗口輸入「javac OverFlow.java」並執行命令,編譯器顯示如下信息:

編譯器給出過大的整數錯誤信息,num的數值明顯超出的int所能表示的最大值。

示例2:byte類型的溢出

在D盤Java目錄下,新建「ByteOverFlow.java」文件。用記事本打開「OverFlow.java」文件,輸入以下代碼:

編譯「ByteOverFlow.java」文件,在命令行窗口輸入「javac ByteOverFlow.java」並執行命令,編譯器顯示如下信息:

編譯器給出可能損失精度的錯誤信息,原因是byte變量的最大值為127,數值129超出了byte所能表示的範圍。編譯器將數值129賦值給byCode時,將129強制轉換為byte所能表示的範圍,因此報出損失精度的錯誤信息。

程序聲明的所有變量都要佔用程序運行存儲空間,對程序運行存儲空間比較小的單片機、手機等設備,在程序設計時,要充分考慮變量所佔的存儲空間對內存空間的影響,使用byte可以表示的數值範圍儘量不要用int類型,更不能使用long類型,在賦值時,一定要判斷數值的範圍大小,以免發生數值溢出問題。

(1)要存儲一個long型的值,需要()字節的存儲空間。

A.4

B.8

C.2

D.1

(2)程序需要存儲一個數值為128的常量,可用的佔用存儲空間最小的的數據類型為()。

A. byte

B . long

C. int

D.short

(3)在Java語言中,數值128用十六進位表示為()。

A.80H

B.0X80

C.80

D.080

相關焦點

  • 跟我學java編程—認識java語言的字符類型
    前面兩個小節討論了用於存儲數值的數據類型。另外還經常會遇到需要存儲並操縱字符型數據的情況。例如:計算數值表達式時,需要存儲運算符,這時需要一種可以存儲單個字符數據的數據類型。Java語言提供了一種char數據類型,可以滿足存儲單個字符的需要。
  • 跟我學java編程—Java邏輯運算符
    邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。示例1:邏輯運算符在D盤Java目錄下,新建「LogicSample.java」文件。
  • 跟我學java編程—深入理解for語句的嵌套循環
    示例1:用「*」輸出一個菱形圖案,圖案如下: 在D盤Java目錄下,新建「ForSample1.java」文件。用記事本打開「ForSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示for嵌套循環的使用方法。
  • 跟我學java編程—Java類的類型轉換和動態綁定
    1、類型轉換在前面的章節中,我們了解了父類和子類的關係,子類是對父類的擴展,父類是子類的抽象。也許同學們會有疑問,如果在程序中聲明了一個父類變量,該父類變量能不能指向其子類對象呢?或者聲明了一個子類變量,該子類變量能不能指向其父類對象呢?答案是肯定的。
  • 開發崗位這麼多,為什麼選Java?你學Java了嗎-開課吧
    TIOBE程式語言指數排行榜,Java仍然排名前三位。TIOBE編程排行榜根據全球工程師、課程和搜尋引擎數量為指數得出,在一定程度上反映了程式語言的發展趨勢。其他程式語言與Java相比,Java語法相對簡單,並且是很多計算機語言的基礎。提到C++語言,很多人發現在使用過程中最容易出現的錯誤就是內存管理,而java有自動垃圾回收器,不用擔心內存。
  • Java基礎學習:java中的基本數據類型
    強制轉換:把一種數據類型轉換為另外一種數據類型。 類型提升:表達式運算中有不同的數據類型,類型會自動向範圍大的提升。 +=運算符是java語言規定的,編譯器會對它進行識別處理,因此可以正確編譯。
  • 適合Java新手的開源項目集合——在 GitHub 學編程
    先 clone 把源碼下載後,可以通過 java -jar FlappyBird.jar 直接運行,也可以通過運行源碼中的 GameApp:main 方法來啟動整個遊戲。在歷史的長河中誕生過無數的著作,計算機領域也不例外,而《Think in Java》就是我要重點介紹的一本著作,這本書給我的第一印象就是:全!從最基本的數據類型到之後的面向對象再到後面的泛型反射的高級話題,無所不包。我之前閱讀的是第四版實體書,現在的好消息是,第五版來了!而且是以開源的形式。
  • 提升java編程性能優化知識 程式設計師必看這幾點
    對於學習java的學子也是如此,那麼java程式設計師如何提高編程性能呢,有哪些小知識或者技巧呢,怎麼樣才能在編程性能優化方面有所提升呢?  1.儘量在合適的場合使用單例  使用單例可以減輕加載的負擔,縮短加載的時間,提高加載的效率,但並不是所有地方都適用於單例,簡單來說,單例主要適用於以下三個方面:
  • Java編程中基礎反射詳細解析
    類加載器負責加載所有的類,系統為所有加載到內存中的類生成一個java.lang.Class 的實例。2.1 反射基本信息java程序中許多對象在運行時會出現兩種類型:運行時類型和編譯時類型,例如Person p = new Student();這句代碼中p在編譯時類型為Person,運行時類型為
  • Java反射機制深入詳解
    )這樣就列出了java.util.Stack 類的各方法名以及它們的限制符和返回類型。中構造方法沒有先後順序,通過類型和參數個數區分。/** * Java學習交流QQ群:589809992 我們一起學Java!
  • 淺談Java中的幾種隨機數
    眾所周知,隨機數是任何一種程式語言最基本的特徵之一。而生成隨機數的基本方式也是相同的:產生一個0到1之間的隨機數。看似簡單,但有時我們也會忽略了一些有趣的功能。我們從書本上學到什麼?那麼通過上面的信息,開發人員要產生0.0和10.0之間的雙精度浮點數會這樣來寫:Math.random() * 10 而產生0和10之間的整數,則會寫成:Math.round(Math.random() * 10) 進階通過閱讀Math.random()的源碼,或者乾脆利用IDE的自動完成功能
  • 深入分析java中的多態(從jvm角度分析)
    對於java中多態概念的理解一直是面試常問的問題,所以今天花了一些時間好好地整理了一下,力求從java虛擬機的角度來分析和理解多態。一、認識多態1、方法調用在Java中,方法調用有兩類,動態方法調用與靜態方法調用。
  • 尚學堂知識整理:Java double數據類型
    double數據類型使用64位來存儲浮點數。double值也稱為雙精度浮點數。它可以表示一個最小為4.9 x 10^-324,最大為1.7 x 10^308的數字。它可以是正的或負的。所有實數被稱為double字面量。
  • 世界排行第一的程式語言:java迎來25歲生日
    作為全球排名第一的程式語言,本周末Java將迎來 25 歲生日。Java起源於 1991 年的「 Oak」項目,由James Gosling領導。面向對象的Java以其「一次編寫,隨處運行」的可移植性而聞名,因為Java虛擬機支持多種硬體平臺和作業系統以及Java applet可以從網頁上運行。
  • 一起學JAVA——數組和函數
    之前我們介紹了java的數據類型、變量、流程控制等內容。今天我們高級數據類型——數組以及函數的作用。函數(方法)函數的定義函數就是一段有名字的代碼,可以完成某一特定功能。方法(函數)是java的最小代碼重用單位,方法(函數)是為了重用代碼。方法不能嵌套方法,不能在一個方法內部定義另外一個方法。可以在一個方法內部調用另外一個方法。
  • Java程式設計師必備基礎:Java代碼是怎麼運行的?
    java源文件編譯為class字節碼 類加載器把字節碼加載到虛擬機的方法區。 虛擬機把描述類的數據從 Class 文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的 Java 類型,這就是虛擬機的類加載機制。
  • 「JAVA」萬字長篇詳述字節碼對象與反射機制完成動態編程
    java.lang.String類的字節碼類型:Class<java.lang.String>;java.util.Date類的字節碼類型:Class<java.util.Date>;java.util.ArrayList
  • Java8 lambda表達式
    這也是為什麼人們把lambda表達式當做閉包看待,在程式語言的爭論中,有許多關於java是否有閉包的爭論,因為其只能引用final變量,為了避免這一個無端的爭論,我在本書中將他們稱之為lambda表達式。但是無論我如何稱呼他們,我已經提到過lambda表達式是靜態類型的,因此讓我們研究表達式本身:他們稱之為函數式接口。
  • 零基礎java入門教程函數function實例化格式案例void返回值說明
    哈哈哈哈函數的英文單詞function這個一定要認識下面實例化下函數的格式:修飾符 返回值類型 函數名(參數類型 形參1,參數類型 形參2, ……){參數類型:是形參的數據類型;形參:是一個變量,用於存儲調用函數時傳遞給函數的實參;實參:傳遞給形參的具體數值;return:用於結束函數;返回值:該值會返回給調用者;
  • 如何使用java語言求一個正整數的平方根?(不使用庫函數)
    今天的這篇文章是我在刷算法題的時候遇到的,最簡單的方法是直接調用java裡面的Sqrt函數,不過有時候題目中會要求我們不能使用庫函數,所以在這裡我們自己定義Sqrt方法。最常見的思路有兩種,第一種是二分法,第二種是牛頓的微積分思想。