欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java數(shù)據(jù)類型轉(zhuǎn)換的示例詳解

 更新時(shí)間:2022年10月08日 11:02:17   作者:共飲一杯無  
Java程序中要求參與的計(jì)算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉(zhuǎn)換。本文將通過示例詳細(xì)說說Java中數(shù)據(jù)類型的轉(zhuǎn)換,感興趣的可以了解一下

Java程序中要求參與的計(jì)算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉(zhuǎn)換。

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

一個(gè)int 類型變量和一個(gè)byte 類型變量進(jìn)行加法運(yùn)算, 結(jié)果會(huì)是什么數(shù)據(jù)類型?

public static void main(String[] args) {
    int i = 1;
    byte j = 2;
    // byte t = b + i; // 報(bào)錯(cuò)
    //int類型和byte類型運(yùn)算,結(jié)果是int類型
    int k = i + j;
    System.out.println(k);
}

運(yùn)算結(jié)果,變量的類型將是int 類型,這就是出現(xiàn)了數(shù)據(jù)類型的自動(dòng)類型轉(zhuǎn)換現(xiàn)象。 自動(dòng)轉(zhuǎn)換:將取值范圍小的類型自動(dòng)提升為取值范圍大的類型 。

轉(zhuǎn)換原理

byte 類型內(nèi)存占有1個(gè)字節(jié),在和int 類型運(yùn)算時(shí)會(huì)提升為int 類型 ,自動(dòng)補(bǔ)充3個(gè)字節(jié),因此計(jì)算后的結(jié)果還是int 類型。 同樣道理,當(dāng)一個(gè)int 類型變量和一個(gè)double 變量運(yùn)算時(shí), int 類型將會(huì)自動(dòng)提升為double 類型進(jìn)行運(yùn)算。

public static void main(String[] args) {
    int i = 1;
    double d = 2.5;
    //int類型和double類型運(yùn)算,結(jié)果是double類型
    //int類型會(huì)提升為double類型
    double e = d+i;
    System.out.println(e);
}

轉(zhuǎn)換規(guī)則

范圍小的類型向范圍大的類型提升, byte、short、char 運(yùn)算時(shí)直接提升為int 。

byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

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

將1.5 賦值到int 類型變量會(huì)發(fā)生什么?產(chǎn)生編譯失敗,肯定無法賦值。

int i = 1.5; // 錯(cuò)誤

double 類型內(nèi)存8個(gè)字節(jié), int 類型內(nèi)存4個(gè)字節(jié)。1.5 是double 類型,取值范圍大于int ??梢岳斫鉃閐ouble 是8 升的水壺, int 是4升的水壺,不能把大水壺中的水直接放進(jìn)小水壺去。 想要賦值成功,只有通過強(qiáng)制類型轉(zhuǎn)換,將double 類型強(qiáng)制轉(zhuǎn)換成int 類型才能賦值。

強(qiáng)制類型轉(zhuǎn)換:將取值范圍大的類型強(qiáng)制轉(zhuǎn)換成取值范圍小的類型。 比較而言,自動(dòng)轉(zhuǎn)換是Java自動(dòng)執(zhí)行的,而強(qiáng)制轉(zhuǎn)換需要我們自己手動(dòng)執(zhí)行。

轉(zhuǎn)換格式

數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值;

將1.5 賦值到int 類型,代碼修改為:

// double類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)成int類型,直接去掉小數(shù)點(diǎn)。
int i = (int)1.5;

同樣道理,當(dāng)一個(gè)short 類型與1 相加,我們知道會(huì)類型提升,但是還想給結(jié)果賦值給short類型變量,就需要強(qiáng)制轉(zhuǎn)換。

注意

  • 浮點(diǎn)轉(zhuǎn)成整數(shù),直接取消小數(shù)點(diǎn),可能造成數(shù)據(jù)損失精度。
  • int 強(qiáng)制轉(zhuǎn)成short 砍掉2個(gè)字節(jié),可能造成數(shù)據(jù)丟失。

ASCII編碼表

public static void main(String[] args) {
    //字符類型變量
    char c = 'a';
    int i = 1;
    //字符類型和int類型計(jì)算
    System.out.println(c+i);//輸出結(jié)果是98
}

在計(jì)算機(jī)的內(nèi)部都是二進(jìn)制的0、1數(shù)據(jù),如何讓計(jì)算機(jī)可以直接識(shí)別人類文字的問題呢?就產(chǎn)生出了編碼表的概念。

編碼表 :就是將人類的文字和一個(gè)十進(jìn)制數(shù)進(jìn)行對應(yīng)起來組成一張表格。

將所有的英文字母,數(shù)字,符號(hào)都和十進(jìn)制進(jìn)行了對應(yīng),因此產(chǎn)生了世界上第一張編碼表ASCII(American Standard Code for Information Interchange 美國標(biāo)準(zhǔn)信息交換碼)。

小貼士: 在char類型和int類型計(jì)算的過程中,char類型的字符先查詢編碼表,得到97,再和1求和,結(jié)果為98。char類型提升 為了int類型。char類型內(nèi)存2個(gè)字節(jié),int類型內(nèi)存4個(gè)字節(jié)。

到此這篇關(guān)于Java數(shù)據(jù)類型轉(zhuǎn)換的示例詳解的文章就介紹到這了,更多相關(guān)Java數(shù)據(jù)類型轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rocketmq事務(wù)消息之半消息詳解

    Rocketmq事務(wù)消息之半消息詳解

    這篇文章主要介紹了Rocketmq事務(wù)消息之半消息詳解,RocketMQ的事務(wù)消息支持在業(yè)務(wù)邏輯與發(fā)送消息之間提供事務(wù)保證,RocketMQ通過兩階段的方式提供事務(wù)消息的支持,需要的朋友可以參考下
    2023-09-09
  • java實(shí)現(xiàn)簡單猜數(shù)字游戲

    java實(shí)現(xiàn)簡單猜數(shù)字游戲

    這篇文章主要介紹了java實(shí)現(xiàn)簡單猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • SpringCloud應(yīng)用idea實(shí)現(xiàn)可相互調(diào)用的多模塊程序詳解

    SpringCloud應(yīng)用idea實(shí)現(xiàn)可相互調(diào)用的多模塊程序詳解

    IDEA 全稱 IntelliJ IDEA,是java編程語言的集成開發(fā)環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的Java開發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說是超常的
    2022-07-07
  • Spring 整合Shiro 并擴(kuò)展使用EL表達(dá)式的實(shí)例詳解

    Spring 整合Shiro 并擴(kuò)展使用EL表達(dá)式的實(shí)例詳解

    Shiro是一個(gè)輕量級(jí)的權(quán)限控制框架,應(yīng)用非常廣泛。本文的重點(diǎn)是介紹Spring整合Shiro,并通過擴(kuò)展使用Spring的EL表達(dá)式。需要的朋友可以參考下
    2018-03-03
  • 你還在用Synchronized?Atomic你了解不?

    你還在用Synchronized?Atomic你了解不?

    這篇文章主要介紹了你還在用Synchronized?Atomic你了解不? 文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • SpringBoot整合Lucene實(shí)現(xiàn)全文檢索的詳細(xì)步驟

    SpringBoot整合Lucene實(shí)現(xiàn)全文檢索的詳細(xì)步驟

    全文搜索(Full-Text?Search)是指對大規(guī)模存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中的文本數(shù)據(jù)進(jìn)行檢索和匹配的技術(shù),它允許用戶輸入關(guān)鍵字,然后從海量的文本數(shù)據(jù)中快速找到相關(guān)的信息,本文介紹了SpringBoot整合Lucene實(shí)現(xiàn)全文檢索的詳細(xì)步驟,需要的朋友可以參考下
    2024-03-03
  • Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件的超詳細(xì)圖文介紹

    Spring配置文件是一個(gè)或多個(gè)標(biāo)準(zhǔn)的XML文檔,下面這篇文章主要給大家介紹了關(guān)于Spring配置文件的超詳細(xì)圖文介紹,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 基于@GetMapping注解攜帶參數(shù)的方式

    基于@GetMapping注解攜帶參數(shù)的方式

    這篇文章主要介紹了基于@GetMapping注解攜帶參數(shù)的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • java使用iterator遍歷指定目錄示例分享

    java使用iterator遍歷指定目錄示例分享

    這篇文章主要介紹了java使用iterator遍歷指定目錄示例,需要的朋友可以參考下
    2014-04-04
  • 基于SpringBoot和Vue3的博客平臺(tái)文章列表與分頁功能實(shí)現(xiàn)

    基于SpringBoot和Vue3的博客平臺(tái)文章列表與分頁功能實(shí)現(xiàn)

    在前面的教程中,我們已經(jīng)實(shí)現(xiàn)了基于Spring Boot和Vue3的發(fā)布、編輯、刪除文章功能。本教程將繼續(xù)引導(dǎo)您實(shí)現(xiàn)博客平臺(tái)的文章列表與分頁功能,需要的朋友可以參考閱讀
    2023-04-04

最新評論