JAVA中的資料類型,JAVA資料類型

來源:互聯網
上載者:User

JAVA中的資料類型,JAVA資料類型

JAVA中的資料類型

Java資料類型簡介:

Java是一種強型別的語言,數實值型別主要分為基礎資料型別 (Elementary Data Type)和引用資料類型,其中基本的資料類型分為8種,具體細節點及一些注意點如下。

java中的基礎資料型別 (Elementary Data Type):

字元類型:

關鍵字:char  所佔位元組:2位元組
細節點:1、java中的字元類型採用Unicode編碼,加之2位元組,因此java中的資料類型可以直接儲存一個漢字,例如:char sex = "男";
注意點:1、聲明字元類型時用的是單引號'',而不是雙引號""。

布爾類型:

關鍵字:boolean 所佔位元組:1位元組
細節點:1、只有兩個值:true 或者 false
注意點:在條件陳述式中java是不允許像C/C++語言將數實值型別0或非0充當true或者false的,而是僅僅允許true或false。

數實值型別:

java中的數實值型別又分為整數型和浮點型,其中整數型可以理解為整數,浮點類型可以通俗的理解為小數。

整數型:

關鍵字:byte   所佔位元組:1位元組 中文簡稱:位元組型
關鍵字:short  所佔位元組:2位元組 中文簡稱:短整型
注意點:使用short類型時應注意其數實值型別範圍,避免越界溢出
關鍵字:int      所佔位元組:4位元組 中文簡稱:整型
細節點:1、java中對於整型如沒有特定的類型指定,則預設被聲明為int型  2、通常把整數聲明為int型
關鍵字:long    所佔位元組:8位元組  中文簡稱:長整型
注意點:由於java預設將整型定義為int型,所以當使用long類型時應該加上尾碼L或小寫l,但是小寫l通常和1容易混淆,通常用大寫的L作為其尾碼

浮點類型:
Java中的浮點類型又分為兩種,單精確度浮點型和雙精確度浮點型,其中雙經度浮點型的精確度要比單經度浮點型的精確度要高。

單精確度浮點型:

關鍵字:float   所佔位元組:4位元組  中文簡稱:單精確度浮點型
細節點:由於在Java中預設對於浮點型數值使用Double類型儲存,當使用float類型時應在聲明其後加上大寫的F或小寫f作為其尾碼。
注意點:short a = 1.35; short b = a + 12.56;注意這裡由於12.56沒有為其執行數實值型別,所以預設為double類型,+會對前面的a自動進行精度提升為double類型的,那麼其整個計算結果就是double類型的,而與short類型的結果聲明的不符。

雙精確度浮點型:

關鍵字:double 所佔位元組:8位元組  中文簡稱:雙精確度浮點型
注意點:Java中對於小數預設定義的數實值型別為double類型,當使用double類型時可在其後加上大寫的D或小寫d作為其尾碼。

java中的自動型別提升:

當進行計算時,java會對類型自動進行數實值型別提升,具體來說就是提升表示範圍小的數實值型別到整個運算式中資料類型表示範圍最大的,常常發生在以下兩個方面:
1、運算式中作為運算元或運運算元整型提升:12.3f + 12.5 其中12.5沒有顯式的為其指定資料類型,則對於浮點型數值java預設為其指定為double類型,再參與運算式的運算,但前面是float類型,java為了不讓整體精度丟失會預設把float類型的運運算元自動提升為精度更高的double類型並讓其繼續參與運算。
2、運算式中為結果進行的自動型別提升:例如 double a = 12.5f + 12.3f;雖然整個運算式中的運算部分均為float類型但是所要賦予的結果是double類型的,則java會對其進行精度提升為double類型的。

java的強制類型轉換:

java中的自動類型轉換某些方面說是發生在 低精度 → 高精度 的情況的,而java中的強制類型轉換某些方面說是發生在 高精度 → 低精度 的情況。
java中的自動類型轉換是系統自動的,而java中的高精度類型轉換則是手動的由程式編製人員手工強制的,因為顯然提升精度並不會造成什麼傷害而降低精度則常常會產生傷害,例如銀行中所存定的錢數或者利息等。所以一個Java自動一個要程式員手動強制。
java中的強制類型轉換的文法為:(要轉換到的資料類型)要轉換的參數或值 例如:(int)12.5 + 12.3 其中12.5會自動轉換為12,對於正數java無論四捨五入,都將其轉換為向下最靠近的正整數,負數則將其向上轉換為最靠近的負整數例如:(int)-12.5會被轉換為-12,注意這裡僅僅轉換距離(int)最近的一個參數,此例子中僅僅對12.5發生強制轉換而不會連12.3也轉換。

其他:

不恰當的轉換會造成數值的溢出,關於溢出的具體情況大家可以參考部落格園的其他園友的文章。另外Java中的數實值型別的長度無論在什麼機器上都是固定的,而非像C/C++語言一樣在16位機器上int是多少位而到32位的機器上int又變成了多少位的適應性固定。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.