[三]基礎數據類型之Integer詳解

来源:https://www.cnblogs.com/noteless/archive/2018/09/28/9716675.html
-Advertisement-
Play Games

Integer內部組成解析,常用方法簡介以及使用註意事項說明 ...


    Integer 基本數據類型int  的包裝類 Integer 類型的對象包含一個 int 類型的欄位 image_5bad74d2_25ec    

屬性簡介


值為 2^31-1 的常量,它表示 int 類型能夠表示的最大值 @Native public static final int   MAX_VALUE = 0x7fffffff;
值為 -2^31 的常量,它表示 int 類型能夠表示的最小值 @Native public static final int   MIN_VALUE = 0x80000000;
用來以二進位補碼形式表示 int 值的比特位數 @Native public static final int SIZE = 32;
二進位補碼形式表示 int 值的位元組數 public static final int BYTES = SIZE / Byte.SIZE;
表示基本類型 int 的 Class 實例 public static final Class<Integer>  TYPE = (Class<Integer>) Class.getPrimitiveClass("int");
   

構造方法

  構造方法都是新創建對象,分配新的空間 字元串形式構造,預設以十進位的字元串形式解析
包裝類
使用對應的基本數據類型int 構造
image_5bad74d2_7bbd
包裝類 使用對應的基本數據類型int的字元串String形式構造 image_5bad74d2_535b
   

常用方法

 

比較

static int compare(int x, int y) 靜態方法 0   x == y; -1   x < y; 1    x > y image_5bad74d2_2b3c
int compareTo(Integer anotherInteger) 實例方法
兩個對象進行比較   ,實際比較兩個對象的value值
根本調用通過static int compare(int x, int y)
image_5bad74d2_999
static int compareUnsigned(int x, int y) 靜態方法
兩個基本類型int 當做無符號數進行比較   通過+MIN_VALUE進行轉換
根本是調用static int compare(int x, int y)

image_5bad74d2_75f3
 

parseXXX系列

字元串解析 為 基本類型, 不需要對象,所以都是靜態方法 image_5bad74d2_2e41  
static int parseInt(String s, int radix) 靜態方法
使用第二個參數指定的基數(進位),將字元串參數解析為有符號的整數
除了第一個字元可以是用來表示負值的 ASCII 減號 '-' ('\u002D’),加號'+' ('\u002B')  外
字元串中的字元必須都是指定基數的數字
static int parseInt(String s) 靜態方法
static int parseInt(String s, int radix)  的十進位簡化形式
image_5bad74d2_1233
static int parseUnsignedInt(String s, int radix) 靜態方法 使用第二個參數指定的基數(進位),將字元串參數解析為無符號的整數 除了第一個字元可以是用來表示正值的 ASCII 加號 '+' ('\u002B’)外 字元串中的字元必須都是指定基數的數字
static int parseUnsignedInt(String s)  靜態方法
static int parseUnsignedInt(String s, int radix) 的十進位簡化形式

image_5bad74d2_70fd
 

valueOf系列

把基本基本類型 包裝為對象 用來創建獲得對象,所以無需對象,全都是靜態方法 image_5bad74d2_612e   VaueOf系列都有對應的緩存區, 緩存區範圍內對象為同一個  緩衝區為靜態內部類中的數組 image_5bad74d2_259f 緩衝範圍為  -128~127  
static Integer valueOf(int i) 靜態方法
讀取緩存中的對象或者創建新的對象
image_5bad74d2_2931
static Integer valueOf(String s, int radix)
靜態方法
根據指定的基數(進位)解析字元串
根本調用static Integer valueOf(int i)
image_5bad74d2_3bf9
static Integer valueOf(String s) 靜態方法
十進位 解析字元串,   static Integer valueOf(String s, int radix) 的十進位簡化形式
根本調用static Integer valueOf(int i)
image_5bad74d2_3a99
 

decode

接受通過以下語法給出的十進位、十六進位和八進位數字 Sign是可選的 再往後就是指定基數的字元序列的正值,不能是負數,想要設置負數請僅僅使用符號位 也就是+-1  --1這種肯定不行
Sign DecimalNumeral Sign 0x HexDigits Sign 0X HexDigits Sign # HexDigits Sign 0 OctalDigits Sign: - + 
     

XXXValue系列

獲取對象的某種基本類型的值 需要獲取對象的所以必然全部都是實例方法 image_5bad74d2_2b7f 強制類型轉換的形式,將內部的int值轉換為指定的類型  
byte byteValue() image_5bad74d2_1d6c
short shortValue() image_5bad74d3_18fa
int intValue() image_5bad74d3_14be
long longValue() image_5bad74d3_6ed6
float floatValue() image_5bad74d3_6e50
double doubleValue() image_5bad74d3_24ce
 

toUnsignedXXX 系列

無符號相關的轉換
static long toUnsignedLong(int x) 靜態方法
給定參數int轉換為無符號的long
無符號轉換為long時,高32位為擴充為0,也就是零位擴展
低32位同參數  int
因此,0和int正數 與對應的long的值相同
負數等於參數int+232
image_5bad74d3_19ff
static String toUnsignedString(int i, int radix)
靜態方法
在第二個參數指定的基數中,返回第一個參數的字元串表示的無符號整數值 如果基數不在Character.MIN_RADIX 和 Character.MAX_RADIX的範圍內, 預設基數為10   基數和表示數字的字元的用法和表現和toString中一樣 image_5bad74d3_222
static String toUnsignedString(int i) 靜態方法
toUnsignedString(int, int) 十進位的簡化形式  同toUnsignedString(int, 10)
image_5bad74d3_3cb6
 

toString  toXXXString  系列

  根本都是為了轉換為字元串形式

static String toString(int i, int radix)
靜態方法
根據指定基數,int    返回一個String 
如果基數小於 Character.MIN_RADIX 或者大於 Character.MAX_RADIX,預設設置為基數 10
如果是負數 第一個符號位負號 '-' ('\u002D'),如果不是負數,將不會有符號
剩下的字元表示第一個參數的大小
如果大小是0  由字元  '0' ('\u0030') 表示,否則用來表示數值的第一個字元不會是0

用以下 ASCII 字元作為數字: 0123456789abcdefghijklmnopqrstuvwxyz 其範圍是從 '\u0030' 到 '\u0039' 和從 '\u0061' 到 '\u007A' 如果 radix 為 N, 則按照所示順序,使用這些字元中的前 N 個作為其數字 因此,十六進位(基數為 16)的數字是 0123456789abcdef
static String toString(int i)  靜態方法
toString(int i, int radix) 的十進位簡化形式
同toString(int i, 10)
String toString() 實例方法
等同於把對象的value直接調用  toString(int i)
image_5bad74d3_c77
static String toBinaryString(int i) 靜態方法
以二進位(基數 2)無符號整數形式返回一個整數參數的字元串表示形式
image_5bad74d3_5568
static String toOctalString(int i) 靜態方法
以八進位(基數 8)無符號整數形式返回一個整數參數的字元串表示形式
image_5bad74d3_6de3
static String toHexString(int i) 靜態方法
以十六進位(基數 16)無符號整數形式返回一個整數參數的字元串表示形式
image_5bad74d3_36bc
  內部有一個私有方法用於轉換為無符號形式 image_5bad74d3_20c8  

equals


Integer重寫了equals方法
比較的是兩個Integer對象中內部的 int value值
image_5bad74d3_628c
 

hashCode

 
static int hashCode(int value)
靜態方法
返回某個int 數值的hashcode
image_5bad74d3_7477
int hashCode() 實例方法
獲取某個Integer對象的hashcode
等同於static int hashCode(int value) 調用 內部value值
image_5bad74d3_7446
   

getXXX系列

獲取系統屬性的數值
static Integer getInteger(String nm, Integer val) 確定具有指定名稱的系統屬性的整數值

第一個參數被視為系統屬性的名稱
通過 System.getProperty(java.lang.String) 方法可以訪問系統屬性

第二個參數是預設值
如果未具有指定名稱的屬性,或者屬性的數字格式不正確,或者指定名稱為空或 null
則返回一個表示第二個參數的值的 Integer 對象
image_5bad74d3_6295
static Integer getInteger(String nm, int val)
getInteger(String nm, Integer val) 的便捷轉換形式
image_5bad74d3_6321
static Integer getInteger(String nm) getInteger(String nm, int val)省略第二個參數的簡化形式版本
image_5bad74d3_106
   

其他方法

   
最高1  位  最低1   位
前置零個數 和 後置0個數
highestOneBit(int) / lowestOneBit(int)
numberOfLeadingZeros(int) / numberOfTrailingZeros(int) 
位數
迴圈左移/迴圈右移
按位翻轉 按照位元組翻轉
bitCount(int)     返回二進位補碼表示形式的 1 位的數量,不是全部位數 rotateLeft(int, int)  /  rotateRight(int, int)   reverse(int)   /   reverseBytes(int)   
取整
求餘
divideUnsigned(int, int) remainderUnsigned(int, int)
Integer還提供了上面幾個方法,在開篇中已經描述 Long也有提供    語義一致      
static int signum(int i)  靜態方法
返回指定 int 值的符號函數
(如果指定值為負,則返回 -1;如果指定值為零,則返回 0;如果指定的值為正,則返回 1 )
image_5bad74d3_2ec
static int sum(int a, int b) 靜態方法
求和
image_5bad74d3_7bea
static int max(int a, int b) 靜態方法
最大值
image_5bad74d3_2092
static int min(int a, int b) 靜態方法
最小值
image_5bad74d3_20a3
         
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前段時間,公司在項目上用到了xhEditor編輯器來給用戶做一個上傳圖片的功能當時做的時候覺得很有意思,想想 基本的用戶圖片上傳到自己伺服器,還有點小占地方; 後來....然後直接上傳到阿裡雲 。接下來就是基本操作: 首先,引入官方提供的js庫 註:xhEditor插件下載官網:https://xh ...
  • TSAD的來源: TSAD由Open-test、Open-stor、Open-api、Open-dev四大系統組成,提供API測試平臺Open-test;測試通過版本可發佈服務倉庫Open-stor,倉庫抽離單一服務,其他產品部可任意裝配服務;根據業務需求將服務開放到Open-api與Open-de ...
  • 教程:高能:語句結構都是由關鍵字開頭,用冒號結束! 一:語句結構for <variable> in <sequence>: <statements>else: # else可有可無 <statements>二:基本規則 (1)使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。 (2)seq ...
  • ![](https://img2018.cnblogs.com/blog/711958/201809/711958-20180928091826555-1354813331.jpg) ...
  • ![](https://img2018.cnblogs.com/blog/711958/201809/711958-20180928091434379-573436458.jpg) ...
  • 原文出自: "http://cmsblogs.com" import 標簽解析完畢了,再看 Spring 中最複雜也是最重要的標簽 bean 標簽的解析過程。 在方法 中,如果遇到標簽 為 bean 則調用 方法進行 bean 標簽解析,如下: 整個過程分為四個步驟 1. 調用 進行元素解析,解析過 ...
  • 前言 此系列是針對springboot的啟動,旨在於和大家一起來看看springboot啟動的過程中到底做了一些什麼事。如果大家對springboot的源碼有所研究,可以挑些自己感興趣或者對自己有幫助的看;但是如果大家沒有研究過springboot的源碼,不知道springboot在啟動過程中做了些 ...
  • 前言 為了攔截大部分請求,秒殺案例前端引入了驗證碼。淘寶上很多人吐槽,等輸入完秒殺活動結束了,對,結束了...... 當然了,驗證碼的真正作用是,有效攔截刷單操作,讓羊毛黨空手而歸。 驗證碼 那麼到底什麼是驗證碼呢?驗證碼作為一種人機識別手段,其終極目的,就是區分正常人和機器的操作。我們常見的互聯網 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...