大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java數據類型及使用方法

Java數據類型及使用方法

更新時間:2019-07-29 11:15:20 來源:動力節點 瀏覽3036次

一、基本數據類型

  • 整型:byte、short、int、long (在計算機中以二進制補碼格式存儲)
  • 浮點型:float、double (在計算機中以IEEE754格式存儲)
  • 字符型:char (在計算機中以unicode碼格式存儲)
  • 布爾型:boolean (只有true和false兩個值)

二、1、長整型:long

定義 :long a=100;int b=a; (編譯出錯)

給a重新賦值:long a=2147483648; (編譯出錯)

定義:long a=2147483648L;(正確,說明此時可以是long型的取值范圍)

說明在long型的數據后不加L/l時,數據仍為long型,但其取值范圍卻是int型的取值范圍;數據后加L/l時,取值范圍才是long型的取值范圍。

2、浮點型:long

定義:float a=19; 輸出a時為19.0

定義:float a=19.1; (編譯出錯)

定義:float a=19.1f; (正確)

說明在 float型的數據后不加F/f,則數據不能有小數位,但輸出時,能夠輸出一位小數;若在float型的數據后加上F/f,則數據可以有小數位;

三、類型轉換(注:boolean型不會發生類型轉換,基本類型和復合類型不能相互轉換)

1、自動轉換

  • 賦值轉換:用于短字節的數據類型轉換成長字節的數據類型(byte型的數據不能轉換成char型,short型和char型數據也不能相互轉換)
  • 單目運算符提升:++、――運算符不會自動提升,+(正)、-(負)會將byte、short、char型的數據自動轉換成int型的數據
  • 雙目運算符提升:如果有一個操作數是double型的,則把另一個轉換成double型;否則 如果有一個操作數是float型的,則把另一個轉換成float型;否則 如果有一個操作數是long型的,則把另一個轉換成long型;否則 兩個操作數都轉換成int型。
  • 三目運算符 ? : 其中op1必須是boolean型的,而op2和op3兩操作數必須是能夠自動轉換成相同類型的數據,op2和op3會自動提升為兩操作數中字節較長的一個,并且結果為提升后的類型。

如:

byte a1=20;
short a2=10;
boolean b=true;
short c = b ?
a1 : a2;

結果為short型的數據c

2、強制轉換

例子:

int a;

byte b=(byte)a;

定義:a=-126;

(分析:int形的數據有4個字節,而byte形的數據只有1個字節,所以只取int型數據的最后一個字節)

a的原碼: 10000000,00000000,00000000,01111110

補碼: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此時將 10000010 看成是純的二進制數去計算,而不考慮它的符號位); byte型數據范圍[-128,127],由于 r>127,所以 r=r-M (若整型數據值域[-L,R],則M=L+R+1),如果r還不在byte型數據的取值范圍內,則繼續 r=r-M 直至r在其取值范圍內,取得r后,即為byte型的 b .此處r=-126,所以輸出b為-126.

法二:直接將int型數據的最后一個字節看成是byte型數據的補碼形式,在將補碼轉換成原碼,即得到 b

四、邏輯運算符

1、&&和|| (&&的優先級要高于||的)

特點:只要左操作數已經得出整個表達式的值,就不再計算右操作數的之值,左右操作數必須為boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;
boolean test2= ++y==-1 || ++y==1 && ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果:
1 false
2 true

2、&和| (邏輯位運算符)

特點:先把兩個操作數的值計算出來,然后再進行邏輯運算

int x=-1,y=-1;
boolean test1= ++x==-1 & ++x==1 | ++x=2;
boolean test2= ++y==-1 | ++y==1 & ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果: 
2 false
2 true

五、移位運算

<< (左移) 高位丟失、低位以0填充

>> (右移) 低位丟失、高位以符號位填充

>>> (無符號位右移) 低位丟失、高位以0填充

此運算符不會對左右兩操作數作算術提升,但會對左操作數進行單獨提升,若為byte、short、char、int型,則得到結果為int型,若為long型,則結果為long型,但左右操作數均不能為浮點型,否則出錯。

當左操作數為int型時,右操作數的低5位才有用,這樣可以防止移位超過int型所具有的位數, 當左操作數為long型時,右操作數的低6位才有用。

例子:

int a=-2;

short b=-10;

int c=a>>b;

b的補碼:11111111,11111111,11111111,11110110

取b的最后5位, r=(10110)=22;

a的補碼:11111111,11111111,11111111,11111110

將a向右移動22位,再在高位補上1,得到 11111111,11111111,11111111,11111111 ,轉換成原碼得到 c=-1

六、賦值運算

1.簡單賦值運算

表達式: =

左操作數可以事先沒有賦值

表達式的類型必須和變量的類型相同,或能賦值轉換成變量的類型,

2.組合賦值運算

表達式: op=

int a=10;

double b=23.3;

a*=b;

左操作數事先一定要賦值

左邊的類型和右邊的類型不一定要相同,此處a*b得到的是double型的,組合運算符會自動把double型的值轉換成int型的值存入變量a中。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产毛片儿 | 四虎海外在线永久免费看 | 真实偷拍激情啪啪对白 | 国产一区二区高清在线 | 日韩成人免费一级毛片 | 欧洲美女a视频一级毛片 | 久久久久蜜桃 | 色久网站 | 在线亚洲黄色 | 波多野结衣3女同在线观看 波多野结衣av1区2区3区 | 中文字幕在线激情日韩一区 | 亚洲精品一区二区不卡 | 久久青青视频 | 奇米影视9999 | 中文字幕亚洲欧美 | 成年女人18级毛片毛片免费观看 | 国产女人伦码一区二区三区不卡 | 亚洲综合精品香蕉久久网 | 天天射天天添 | 国产色影院 | 亚洲黄色免费看 | 久久久精品午夜免费不卡 | 日本一区二区在线 | 国产精品视频免费在线观看 | 免费国产不卡午夜福在线观看 | 在线视频97 | 国产一级免费在线观看 | 亚洲视频在线观看一区 | 毛片精品 | 在线观看人成午夜影片 | 亚洲精品欧美精品国产精品 | 欧美xxxx成人免费网站 | 久久亚洲精品中文字幕 | 欧美日韩第二页 | 欧美成人另类69 | 亚洲国产欧美在线人成 | 激情5月婷婷| 特级特黄一级乱仑 | 欧美色插| 这里只有精品视频 | 国产精品一区久久精品 |