java——Byte類/包裝類的使用說明
Byte類/包裝類
包裝類是一個常量類,可實例化 (意義:幫助對應(yīng)的數(shù)據(jù)類型進行數(shù)據(jù)類型)
java數(shù)據(jù)類型包括內(nèi)置數(shù)據(jù)類型和引用數(shù)據(jù)類型
內(nèi)置數(shù)據(jù)類型 :含6中數(shù)字類型(四個整數(shù)型,兩個浮點型),一種字符類型,還有布爾類型
byte
byte:數(shù)據(jù)類型占用1個字節(jié)=8bit,以二進制補碼表示的整數(shù)
取值范圍:默認值為0,最小值為-128(-2^7);最大值是127(2^7-1)
| 數(shù)據(jù)類型 | 關(guān)鍵字 | 內(nèi)存中占用字節(jié)數(shù) | 取值范圍 | 默認值 |
| 布爾型 | boolean | 1 | true/false | FALSE |
| 字節(jié)型 | byte | 1 | -128~127 | 0 |
| 短整型 | short | 2 | -2^15~2^15-1 | 0 |
| 整型 | int | 4 | -2^31~2^31-1 | 0 |
| 長整型 | long | 8 | -2^63~2^63-1 | 0 |
| 字符型 | char | 2 | 0~2^16-1 | '\u000' |
| 單精度浮點型 | float | 4 | 1.4013E-45~3.4028E+38 | 0.0F |
| 雙精度浮點型 | double | 8 | 4.9E-324~1.7977E+308 | 0.0D |
用途:byte類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因byte變量占用內(nèi)存的空間只有int類型的1/4;不足是這個數(shù)取值范圍大,byte不能全部替代

常用方法
A.構(gòu)造方法
public Byte(byte value) public Byte(String s)
B.普通方法+類方法(對數(shù)據(jù)類型做轉(zhuǎn)換)
piublic byte byteValue() public short shortValue() public int intVlaue() public long longValue() public float floatValue() public double doubleValue() public String toString() public static String toString(byte b)
包裝類和基本數(shù)據(jù)類型的對象關(guān)系

注:常量類是否可以被實例化主要看構(gòu)造方法
package com.youceedu.test.wrapper;
public class TestByte {
public static void main(String[] args) {
// TODO Auto-generated method stub
byte a = 9;
byte b = -7;
String result = Byte.toString(a);
Byte c = new Byte((byte) 9);
System.out.println(c.floatValue());
System.out.println(result+b);
}
}
補充:java的byte數(shù)據(jù)類型總結(jié)||二進制的原碼、反碼和補碼
二進制的原碼、反碼和補碼
原碼就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數(shù)值的大小。
反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負數(shù)的反碼是對其原碼逐位取反,但符號位除外。
補碼表示法規(guī)定:正數(shù)的補碼與其原碼相同;負數(shù)的補碼是在其反碼的末位加1。
正數(shù)
首位表示符號位,原碼、反碼和補碼都是本身。
負數(shù)
如何計算負數(shù)在計算機中的二進制(即它的補碼)?
首先對負數(shù)的絕對值取反,然后+1得到負數(shù)的補碼。
例如:byte a=-5
-5的絕對值=5 5的二進制表示是 0000 0101 取反得到 1111 1010 +1運算得到 1111 1011 ,那么1111 1011就是-5的補碼。
也可以這樣,用原碼計算
例如:byte a=-5 原碼表示 1000 0101
計算其反碼為 1111 1010
計算其補碼為 1111 1011
所以 -5在計算機中表示為1111 1011
byte
byte的取值范圍為什么是-128~127
byte 表示一個字節(jié),8bit,其中最高位是符號位。因此,最大值為 0111 1111,即127;最小值是負數(shù)為 1000 0000(規(guī)定)【其他數(shù)據(jù)類型的最大最小值也可以這樣以此類推】。在計算機中二進制都是以補碼的形式表示的,我們也可以這樣來理解,為什么最小是-128
最小負數(shù)補碼表示為:1000 0000
由補碼計算原碼:
1000 0000 作-1 運算 得到 0111 1111,取反 1000 0000 因為負數(shù)的補碼是其絕對值取反,即10000000為最小負數(shù)的絕對值,而10000000的十進制表示是128,所以最小負數(shù)是-128
byte與ASCII
標準ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位二進制數(shù)(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數(shù)字0 到9、標點符號, 以及在美式英語中使用的特殊控制字符。
ASCII碼表示的范圍是0~127 剛好byte類型可以覆蓋到。因此byte類型和ASCII可以互相轉(zhuǎn)換??梢愿鶕?jù)ASCII對照表進行查看http://tool.oschina.net/commons?type=4
當byte類型的變量的值實時是在''單引號里面的時候,該byte變量的值表示的是ASCII碼,可以通過ASCII對照表查看其真實的數(shù)值。
比如:
public class ByteTest {
public static void main(String args[]) {
byte a = 'a';
byte b = 'B';
byte c = '4';
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c);
}
}
輸出:
a=97 b=66 c=52
byte&0xff的作用
byte->int 因為byte是8位,而int是32位,當byte類型轉(zhuǎn)換為int類型的時候,會自動用符號位補足高位。例如 -5 1111 1011 轉(zhuǎn)為int 類型會表示為 1111 1111 1111 1111 1111 1111 1111 1011 其表示的十進制的數(shù)值不變。
有的時候,我們只想保留二進制的補碼形式,我們可以用byte&0xff。0xff是十六進制,默認是int類型,其二進制表示為 0000 0000 0000 0000 0000 0000 1111 1111 將byte類型的數(shù)值跟0xff作&操作,可以將高24位變?yōu)?,保留低8位。當然對應(yīng)的十進制數(shù)也發(fā)生了變化。(相當于將byte變成無符號int類型)
例如:byte a=-5 ((int)-5)&0xff
1111 1111 1111 1111 1111 1111 1111 1011 & 0000 0000 0000 0000 0000 0000 1111 1111 = 0000 0000 0000 0000 0000 0000 1111 1011
int強轉(zhuǎn)換為byte
例如:
int a=234 byte b=(byte)a -->得到b=-22 因為234已經(jīng)超出了byte類型的表示范圍,強轉(zhuǎn)會直接丟棄高位,保留低8位。
int類型的234的二進制表示為:1110 1010【高24位全是0】 強轉(zhuǎn)為byte類型,舍棄高24位得到1110 1010 ,第一位為符號位1,得到一個負數(shù)-22。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Spring Boot構(gòu)建系統(tǒng)安全層的步驟
這篇文章主要介紹了Spring Boot構(gòu)建系統(tǒng)安全層的步驟,幫助大家更好的理解和學習使用Spring Boot框架,感興趣的朋友可以了解下2021-04-04
Redisson RedLock紅鎖加鎖實現(xiàn)過程及原理
本文主要介紹了Redis中Redisson紅鎖(Redlock)使用原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
Java使用aspose實現(xiàn)pdf轉(zhuǎn)word
Aspose是一套強大的文檔處理工具,被超過80%的財富100強公司信賴,用于在應(yīng)用程序中創(chuàng)建、編輯、導出和轉(zhuǎn)換100多種文件格式,本文將給大家介紹Java使用aspose實現(xiàn)pdf轉(zhuǎn)word的操作方法,需要的朋友可以參考下2025-02-02
HttpServletRequest對象簡介_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了HttpServletRequest對象簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Java多線程編程之訪問共享對象和數(shù)據(jù)的方法
這篇文章主要介紹了Java多線程編程之訪問共享對象和數(shù)據(jù)的方法,多個線程訪問共享對象和數(shù)據(jù)的方式有兩種情況,本文分別給出代碼實例,需要的朋友可以參考下2015-05-05
關(guān)于Selenium的UI自動化測試屏幕截圖功能實例代碼
今天小編就為大家分享一篇關(guān)于Selenium的UI自動化測試屏幕截圖功能實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
SpringBoot自定義工具類實現(xiàn)Excel數(shù)據(jù)存入MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了如何使用EasyExcel讀取Excel內(nèi)數(shù)據(jù)并轉(zhuǎn)換為csv格式數(shù)據(jù),然后實現(xiàn)字符串分割,分割出屬性名和屬性值建表插入MySQL數(shù)據(jù)庫中,感興趣的可以了解下2024-03-03

