日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【JAVA】【基础类型】Java中的基础类型定义&转换&运算符

發布時間:2023/12/31 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 【JAVA】【基础类型】Java中的基础类型定义&转换&运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Java中的基本數據類型

java中有8種基本數據類型,包括:6種數字類型1種字符類型1種布爾類型

  1) boolean:1個bit。true/false,java中默認值false

  2) char:2Byte的Unicode 字符(Java采用UniCode,2個字節來表示一個字符),java中默認值'u0000'

  3) byte:1Byte,有符號數,java中默認值0

  4) short:2Byte,有符號數,java中默認值0

  5) int:4Byte,有符號數,java中默認值0

  6) long:8Byte,有符號數,java中默認值0

  7) float:4Byte,浮點數,java中默認值0.0f

  8) double:8Byte,浮點數,java中默認值0.0d

Java中的基本類型的字節長度是和平臺無關的。

1、boolean類型

  注:java中的boolean類型使用比其他語言嚴格的多,boolean類型即不能是整數也不能是對象。如:

  Object 0 = new Object();

  int i = 1;

  if(o)、if(i)使用方式都是不合法的。需要使用if(o != null)

2、字符型

  java中的字符型,支持三種方式表達:

(1)把字符放到單引號內。

(2)字符對應的Assic數值,可以是十進制、二進制、八進制、十六進制。

(3)也可使用unicode轉義序列。

(4)也可使用特殊轉義字符

如:

  Tab鍵:' '

  nul:'000’

  aleph:'u05D0’

  slash:'\’

  更多轉義字符:

   退格符

   水平制表符

  
換行符

  f 換頁符

   回車符

  ” 雙引號

  ’ 單引號

  \ 反斜杠

  xxx xxx是8進制,表示Latin-1字符

  uxxxx xxxx是十六進展數,標識Unicode字符。

(1)其中Unicode碼采用uxxxx形式表示一個字符。這種表示法只限于碼點在u0000~uFFFF之間的字符。超出這個范圍的字符,必須用兩個雙字節的形式表示,如:uD842uDFB7。

(2)Unicode碼不能省略前面的幾位0,如:'u20'在java中會報錯。

3、整數類型

  byte、short、int、long四種類型,每種類型都是有符號,只是標識范圍不同。

  支持十進制、十六進制、八進制、二進制標識。

  0x 0X開頭,表示十六進制

  0b開頭,表示二進制

  0開頭,標識八進制

  123L 表示是Long類型數字。

  如果運算結果超出了變量范圍,會如何?

  Java中不會上溢或下溢,而是直接回繞,如:

    byte b1 = 127, b2 = 1; //byte類型的最大值是127

    byte sum = (byte)(b1 + b2); //加法運算的結果直接回繞到-128,即byte類型的最小值

  如果發生了這種情況,Java編譯器和解釋器都不會發出任何形式的警告。進行整數運算時,必須確保使用的類型取值范圍能滿足計算需要。

4、浮點類型

  包含float、double

  浮點數的字面表示格式,如:

    123.45

    1.1

    .12

    1e-6

  默認字面的浮點數都是double的,如果需要使用float的字面數,需要添加f標識。如:123.45f

浮點數比較的方法:Math.abs(a - b) < 1E-6F

所以,如下采用浮點數作為循環變量,在Java中實際會導致死循環(float和dobule不能作為for語句的循環變量)。如:

for(float f =100000000;f<100000010;f++){

System.out.println(f);

}

實際測試是死循環。

  注:如果浮點數的運算結果超出了float或double的范圍上限,得到的是無窮大。如果浮點數運算結果超出了float或double的范圍下限,得到的是無窮小

  浮點數運算中有個特殊值NaN,標識Not a number,如果浮點數運算不合法(如:0.0/0.0),得到的是NaN。

  Java 浮點數類型能處理到無窮大的上溢以及到零的下溢,因此浮點數運算從不拋出異常, 就算執行非法運算也沒事,例如零除以零,或計算負數的平方根。

注意:禁止嘗試與NaN進行比較運算,相等操作使用double或float的isNaN方法。

NaN(Not a Number,非數值)是無序的,

(1)當一個或兩個操作數是NaN時,數值比較符<、<=、>、>=會返回false。

(2)當任意一個操作數是NaN,==運算符會返回false

(3)當任意一個操作數是NaN時,!=運算符會返回true。

因為無序的特性常常會導致意外結果,所以不能直接與NaN進行比較。使用方法Double.isNaN(result)方法來檢查result是否為一個NaN數值,可以獲得正確的結果。

二、java中基本數據類型之間的轉換

1、自動類型轉換(隱式轉換):

Java的基本類型運作過程中可以混合使用,Java會自動進行類型轉換:byte/short/char →int → long → float → double

什么情況下不能隱式轉換:如果會丟失精度,則不能隱式轉化,比如long轉int或者double轉long這種。編譯器會強制我們使用強制轉化。

2、強制類型轉換:

樣例:

  int i = 3;

  byte b = (byte)i;

在java中,允許:

1)整數和浮點數之間相互轉換

2)字符型 和 整數/浮點數之間相互轉換

3)boolean類型不能相互轉換

放大轉換:把某種類型轉換為取值范圍更廣的類型。如:int轉換為double

縮小轉換:把某種類型轉換為取值范圍沒那個廣的類型。縮小轉換可能會導致丟失數據,是不安全的。所以縮小轉換時java編譯器會發生告警

浮點數轉換為整數,浮點數的小數部分會被直接截掉,而不是四舍五入。

如果采用其他的舍入方式,請使用如下Java中的數據運算封裝類的方法:Math.round()、Math.floor()、Math.ceil()。

字符和整數轉換,如下很有趣:

  short s = (short) 0xffff; // 這些比特表示數字-1

  char c = 'uffff'; // 還是這些比特,表示一個Unicode字符

  int i1 = s; // 把short類型轉換成int類型,得到的是-1

  int i2 = c; // 把字符轉換成int類型,得到的是65535

三、java中運算符

1、運算符種類

類同C、C++。

1) 算術運算符

   + - * / % ++ --

2) 條件運算符:

   == != > < >= <=

3) 位運算符:

   Java中位運算符應用于char、byte、short、int、long類型。

   & | ^ ~ << >> >>>

4) 邏輯運算符:

   && || !

5) 賦值運算符

   = += -= *= /= (%)= <<= >>= &= ^= |=

6) 條件運算符

   ? :

   樣例:a>b?a:b;

7) instanceof運算符:

   檢查該對象是否是一個特定類型(Class類型或接口類型)。

   如:String name="James";

   boolean result= name instanceof String; //name是String類型,所以返回true

8) 特殊運算符

   lambda表達式(->)

2、運算符優先級

注:Java 解釋器計算表達式時,會按照表達式中的括號、運算符的優先級和結合性指定的順序運算。不過,在任何運算之前,解釋器會先計算運算符的操作數

  如:
    int a = 2;

    int v = ++a + ++a * ++a;

   java解釋器會先計算操作數,所以這個表達式實際上是:3 + 4 * 5,結果 為 23。

3、Java中運算符的返回值類型

參與運算的任一操作數是dobule類型,運算結果返回值就是double類型。否則:
參與運算的任意操作數是float類型,運算結果返回值就是float類型。否則:
參與運算的任意操作數是long類型,運算結果返回值就是long類型。否則:
運算返回結果值都是int類型,即使參與運算的操作數是byte、short、char。
相等、邏輯運算符返回boolean型。

So、如下例子就很有趣:

byte b1 = 5;

byte b2 = 1;

short s1 = b1 + b2; //編譯報錯。因為b1 + b2兩個byte類型相加,最終結果是int類型。int類型不能默認轉換為short類型。

short b1=5;

short b2=1;

short b3 = b1 + b2; //編譯報錯。因為b1 + b2兩個short類型相加,最終結果是int類型。 從int轉換到short可能會有損失

總結

以上是生活随笔為你收集整理的【JAVA】【基础类型】Java中的基础类型定义&amp;转换&amp;运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。