偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java中的基本數(shù)據(jù)類型轉(zhuǎn)換(自動(dòng)、強(qiáng)制、提升)

開發(fā) 后端
說基本數(shù)據(jù)類型轉(zhuǎn)換之前,先了解下 Java 中的 8 種基本數(shù)據(jù)類型,以及它們的占內(nèi)存的容量大小和表示的范圍。自動(dòng)類型轉(zhuǎn)換是指:數(shù)字表示范圍小的數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換成范圍大的數(shù)據(jù)類型。

說基本數(shù)據(jù)類型轉(zhuǎn)換之前,先了解下 Java 中的 8 種基本數(shù)據(jù)類型,以及它們的占內(nèi)存的容量大小和表示的范圍,如下圖所示。

重新溫故了下原始數(shù)據(jù)類型,現(xiàn)在來(lái)解釋下它們之間的轉(zhuǎn)換關(guān)系。

自動(dòng)類型轉(zhuǎn)換

自動(dòng)類型轉(zhuǎn)換是指:數(shù)字表示范圍小的數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換成范圍大的數(shù)據(jù)類型。

如:

 

  1. long l = 100;  
  2. int i = 200;  
  3. long ll = i; 

 

具體自動(dòng)轉(zhuǎn)換如如下圖所示。

實(shí)線表示自動(dòng)轉(zhuǎn)換時(shí)不會(huì)造成數(shù)據(jù)丟失,虛線則可能會(huì)出現(xiàn)數(shù)據(jù)丟失問題。

自動(dòng)轉(zhuǎn)換也要小心數(shù)據(jù)溢出問題,看下面的例子。

 

  1. int count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = count *  
  4. price; 

 

編譯沒任何問題,但結(jié)果卻輸出的是負(fù)數(shù),這是因?yàn)閮蓚€(gè) int 相乘得到的結(jié)果是 int, 相乘的結(jié)果超出了 int 的代表范圍。這種情況,一般把***個(gè)數(shù)據(jù)轉(zhuǎn)換成范圍大的數(shù)據(jù)類型再和其他的數(shù)據(jù)進(jìn)行運(yùn)算。

 

  1. int count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = (long) count * price; 

 

另外,向下轉(zhuǎn)換時(shí)可以直接將 int 常量字面量賦值給 byte、short、char 等數(shù)據(jù)類型,而不需要強(qiáng)制轉(zhuǎn)換,只要該常量值不超過該類型的表示范圍都能自動(dòng)轉(zhuǎn)換。

強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換我們?cè)偾宄贿^了,即強(qiáng)制顯示的把一個(gè)數(shù)據(jù)類型轉(zhuǎn)換為另外一種數(shù)據(jù)類型。

如:

 

  1. short s = 199;  
  2. int i = s; 
  3. // 199  
  4. double d = 10.24;  
  5. long ll = (long) d;  
  6. // 10 

 

以上的轉(zhuǎn)換結(jié)果都在我們的預(yù)期之內(nèi),屬于正常的轉(zhuǎn)換和丟失精度的情況,下面的例子就一樣屬于數(shù)據(jù)溢出的情況。

 

  1. int ii = 300;  
  2. byte b = (byte)ii; 

 

300 已經(jīng)超出了 byte 類型表示的范圍,所以會(huì)轉(zhuǎn)換成一個(gè)毫無(wú)意義的數(shù)字。

類型提升

所謂類型提升就是指在多種不同數(shù)據(jù)類型的表達(dá)式中,類型會(huì)自動(dòng)向范圍表示大的值的數(shù)據(jù)類型提升。

把上面的溢出的例子再改下。

 

  1. long count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = price * count

 

price 為 int 型,count 為 long 型,運(yùn)算結(jié)果為 long 型,運(yùn)算結(jié)果正常,沒有出現(xiàn)溢出的情況。 

責(zé)任編輯:龐桂玉 來(lái)源: Java技術(shù)棧
相關(guān)推薦

2011-05-26 14:27:56

java

2016-08-18 14:13:55

JavaScript基本數(shù)據(jù)引用數(shù)據(jù)

2010-10-08 09:02:03

JavaScript基

2010-04-27 11:03:39

Oracle Java

2022-10-27 20:42:04

JavaScripJava編程語(yǔ)言

2023-03-27 10:04:27

數(shù)據(jù)類型浮點(diǎn)型布爾型

2020-10-26 13:46:07

Java基礎(chǔ)入門篇

2021-04-28 18:16:24

Rust數(shù)據(jù)類型

2017-02-27 08:34:09

JavaScript數(shù)據(jù)引用

2019-11-11 14:55:25

Redis數(shù)據(jù)類型命令

2021-04-13 08:42:29

C語(yǔ)言數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換

2024-06-11 08:30:31

2009-08-14 11:15:45

C#基本數(shù)據(jù)類型

2024-11-12 13:01:46

2010-01-18 16:49:36

VB.NET基本數(shù)據(jù)類

2024-11-04 06:20:00

Redis單線程

2023-07-04 08:41:08

Redis數(shù)據(jù)類型

2010-09-06 17:35:43

SQL函數(shù)

2024-12-09 12:00:00

Python編程數(shù)據(jù)類型轉(zhuǎn)換

2022-03-14 09:41:10

POJO類型系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)