黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java強制類型轉(zhuǎn)換的底層原理

java強制類型轉(zhuǎn)換的底層原理

來源:千鋒教育
發(fā)布人:wjy
時間: 2023-03-21 11:00:00 1679367600

  1. 概念

  所謂的強制類型轉(zhuǎn)換,其實是自動類型轉(zhuǎn)換的逆過程,在數(shù)據(jù)類型兼容的情況下,將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型。強制類型轉(zhuǎn)換也被稱為顯式類型轉(zhuǎn)換,需要我們顯式地進(jìn)行轉(zhuǎn)換操作,必須在=等號后面的類型前加上強制()轉(zhuǎn)換符,并且有可能會造成數(shù)據(jù)精度的降低或溢出。

  2. 轉(zhuǎn)換規(guī)律

  強制類型轉(zhuǎn)換時,也具有一定的規(guī)律,但是這個規(guī)律比較簡單。

  (1)進(jìn)行轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的;

  (2)通常,字符串不能直接轉(zhuǎn)換為基本類型;

  (3)通過基本類型對應(yīng)的包裝類,可以把字符串類型的數(shù)值轉(zhuǎn)換成對應(yīng)的基本類型。如String s = “100”; int i = Integer.parseInt(s);

  (4)boolean類型不可以轉(zhuǎn)換成其他數(shù)據(jù)類型

  3. 案例

  強制類型轉(zhuǎn)換格式:(type)value其中type是要強制類型轉(zhuǎn)換后的數(shù)據(jù)類型。

java強制類型轉(zhuǎn)換的底層原理1

  大家要注意:

  類型轉(zhuǎn)換時可能會導(dǎo)致溢出或精度的丟失,另外浮點數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到的,而不是四舍五入。我們可以看下圖的執(zhí)行結(jié)果:

java強制類型轉(zhuǎn)換的底層原理2

  4.底層原理

  在Java中,強制類型轉(zhuǎn)換是將一個數(shù)據(jù)類型的值轉(zhuǎn)換為另一個數(shù)據(jù)類型的值。強制類型轉(zhuǎn)換的底層原理取決于轉(zhuǎn)換的兩種數(shù)據(jù)類型。

  當(dāng)一個較小的數(shù)據(jù)類型轉(zhuǎn)換為一個較大的數(shù)據(jù)類型時,Java會自動進(jìn)行類型轉(zhuǎn)換。例如,當(dāng)一個byte類型的值轉(zhuǎn)換為int類型時,Java會將byte類型的值自動擴展為32位,并將其存儲在int類型的變量中。這種自動類型轉(zhuǎn)換稱為“拓寬轉(zhuǎn)換”。

  相反,當(dāng)一個較大的數(shù)據(jù)類型轉(zhuǎn)換為一個較小的數(shù)據(jù)類型時,Java需要進(jìn)行強制類型轉(zhuǎn)換。例如,當(dāng)一個int類型的值轉(zhuǎn)換為byte類型時,Java需要將32位的int值截取為8位,并將其存儲在byte類型的變量中。這種強制類型轉(zhuǎn)換稱為“窄化轉(zhuǎn)換”。

  強制類型轉(zhuǎn)換的底層原理是將一個數(shù)據(jù)類型的值的位模式解釋為另一個數(shù)據(jù)類型的值的位模式。在這個過程中,Java使用的規(guī)則是將數(shù)據(jù)類型的值的位模式按照目標(biāo)數(shù)據(jù)類型的格式進(jìn)行解釋和存儲。如果源數(shù)據(jù)類型的值的位模式不能完全轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型的格式,則可能會發(fā)生數(shù)據(jù)損失或溢出錯誤。

  在進(jìn)行強制類型轉(zhuǎn)換時,需要使用強制類型轉(zhuǎn)換操作符,即將目標(biāo)數(shù)據(jù)類型放在源數(shù)據(jù)類型之前,并用括號括起來。例如,以下代碼將一個int類型的值轉(zhuǎn)換為byte類型:

  int num = 300;

  byte b = (byte) num;

  在這個例子中,強制類型轉(zhuǎn)換將int類型的值300轉(zhuǎn)換為byte類型。由于byte類型的范圍只能容納-128到127之間的值,因此強制類型轉(zhuǎn)換將發(fā)生數(shù)據(jù)損失,b的值將變?yōu)?4。需要注意的是,強制類型轉(zhuǎn)換可能會導(dǎo)致精度損失和數(shù)據(jù)溢出。因此,在進(jìn)行強制類型轉(zhuǎn)換時,應(yīng)該確保源數(shù)據(jù)類型的值不會超出目標(biāo)數(shù)據(jù)類型的范圍,以避免數(shù)據(jù)損失和溢出錯誤。

  5.底層原理案例分析

  Java中的強制類型轉(zhuǎn)換是一種將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的操作,需要使用強制轉(zhuǎn)換符進(jìn)行轉(zhuǎn)換。例如,將一個整數(shù)變量轉(zhuǎn)換為浮點數(shù)變量可以使用以下語法:

  int a = 10;

  double b = (double) a;

  在上述代碼中,(double)是強制類型轉(zhuǎn)換符,將整數(shù)變量a轉(zhuǎn)換為浮點數(shù)變量b。

  在底層,Java中的強制類型轉(zhuǎn)換是通過將原始數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)來完成的。這種轉(zhuǎn)換可以分為兩種情況:從小類型到大類型的轉(zhuǎn)換和從大類型到小類型的轉(zhuǎn)換。

  從小類型到大類型的轉(zhuǎn)換,例如從byte到int、從short到float,是一種隱式轉(zhuǎn)換(implicit conversion),也稱為擴展(widening)。這種轉(zhuǎn)換可以在不丟失精度的情況下完成,因為目標(biāo)類型具有更高的存儲能力,可以容納原始數(shù)據(jù)類型的所有值。

  從大類型到小類型的轉(zhuǎn)換,例如從double到float、從long到int,是一種顯式轉(zhuǎn)換(explicit conversion),也稱為縮小(narrowing)。這種轉(zhuǎn)換可能會導(dǎo)致精度丟失,因為目標(biāo)類型的存儲能力較小,無法容納原始數(shù)據(jù)類型的所有值。在這種情況下,可以使用強制類型轉(zhuǎn)換符(cast operator)顯式地將數(shù)據(jù)類型轉(zhuǎn)換為目標(biāo)類型,但需要注意可能會導(dǎo)致精度丟失或數(shù)據(jù)溢出的問題。

  下面是一個從double到int的強制類型轉(zhuǎn)換的例子:

  double a = 1234.5678;

  int b = (int) a;

  在這個例子中,原始數(shù)據(jù)類型double需要占用8個字節(jié),而目標(biāo)數(shù)據(jù)類型int只需要占用4個字節(jié)。因此,當(dāng)將double類型的變量a強制轉(zhuǎn)換為int類型的變量b時,會發(fā)生數(shù)據(jù)截斷的情況。具體來說,原始數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)中包含了小數(shù)部分,而目標(biāo)數(shù)據(jù)類型無法存儲小數(shù)部分的值。在這種情況下,會將小數(shù)部分截斷,只保留整數(shù)部分,因此b的值為1234。

  總之,Java中的強制類型轉(zhuǎn)換是通過將原始數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)來完成的。在轉(zhuǎn)換過程中,需要注意可能會發(fā)生精度丟失或數(shù)據(jù)溢出的情況,因此需要謹(jǐn)慎使用強制類型轉(zhuǎn)換符。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截取?

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實際應(yīng)用中,我們經(jīng)常需要對字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計算機編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15
精品在线观看一区| 亚欧乱色一区二区三区| a级毛片免费全部播放| 欧美激情中文字幕一区二区| 日本免费区| 日韩在线观看视频黄| 国产综合91天堂亚洲国产| 免费一级片在线| 国产一区二区精品久| 一级女人毛片人一女人| 日韩字幕在线| 午夜激情视频在线播放| 日韩中文字幕一区二区不卡| 亚洲精品中文字幕久久久久久| 日日夜夜婷婷| 一本高清在线| 日韩专区亚洲综合久久| 亚洲 激情| 九九精品在线| 精品视频免费观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲精品中文字幕久久久久久| 青青青草影院| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩中文字幕在线播放| 99热视热频这里只有精品| 成人高清视频免费观看| 四虎影视库| 欧美激情一区二区三区在线播放 | 黄色免费三级| 欧美日本二区| 天堂网中文在线| 国产精品免费久久| 黄视频网站免费看| 免费国产在线观看| 天天做日日爱| 99热视热频这里只有精品| 国产原创视频在线| 国产高清在线精品一区二区| 欧美激情一区二区三区在线播放| 91麻豆爱豆果冻天美星空| 精品久久久久久影院免费| 日韩专区第一页| 国产成人精品综合在线| 久久精品人人做人人爽97| 国产激情一区二区三区| 精品毛片视频| 欧美激情一区二区三区在线| 国产精品免费久久| 国产一区二区精品久| 夜夜操网| 国产伦久视频免费观看 视频| 日韩中文字幕一区二区不卡| 一 级 黄 中国色 片| 久久国产影院| 天天做日日爱| 国产a一级| 午夜在线亚洲男人午在线| 精品久久久久久中文字幕一区| 九九久久国产精品| 国产成人啪精品| 成人免费网站久久久| 国产成人啪精品| 国产视频一区在线| 欧美一级视| 99热精品一区| 欧美激情一区二区三区视频 | 精品久久久久久影院免费| 国产a视频精品免费观看| 成人免费一级纶理片| 尤物视频网站在线观看| 国产一区二区精品久久91| 亚洲精品久久久中文字| 国产网站在线| 可以免费看污视频的网站| 日韩中文字幕一区二区不卡| 欧美大片一区| 日韩中文字幕在线观看视频| 精品视频在线看| 精品国产一区二区三区久久久狼| 亚洲女初尝黑人巨高清在线观看| 国产视频网站在线观看| 精品久久久久久免费影院| 精品视频一区二区| 成人影视在线观看| 国产一区二区精品在线观看| 日韩字幕在线| 国产精品123| 国产一区二区精品| 欧美日本二区| 一级女人毛片人一女人| 成人免费一级毛片在线播放视频| 国产网站在线| 黄视频网站在线观看| 99热视热频这里只有精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久久久久久免费视频| 久久精品人人做人人爽97| 亚洲精品久久玖玖玖玖| 日韩专区一区| 国产网站免费视频| 国产原创中文字幕| 精品久久久久久中文字幕2017| 91麻豆精品国产自产在线| 欧美另类videosbestsex高清| 国产网站免费| 国产成人啪精品| 国产福利免费观看| 国产91精品一区| 午夜在线亚洲男人午在线| 国产一级生活片| 久久成人综合网| 国产一区精品| 欧美另类videosbestsex久久| 四虎影视库| 99久久精品国产麻豆| 成人免费高清视频| 国产a一级| 可以在线看黄的网站| 精品国产亚洲人成在线| 成人免费观看男女羞羞视频| 999久久狠狠免费精品| 二级特黄绝大片免费视频大片| 毛片成人永久免费视频| 可以免费在线看黄的网站| 国产国产人免费视频成69堂| 欧美1区| 成人高清视频免费观看| 国产91精品系列在线观看| 精品国产一级毛片| 国产成人啪精品| 久久国产影视免费精品| 国产a视频| 欧美日本国产| 免费毛片基地| 精品视频免费观看| 91麻豆精品国产片在线观看| 国产91丝袜在线播放0| 精品在线免费播放| 国产韩国精品一区二区三区| 九九久久99| 黄色福利片| 黄色免费三级| 久久99中文字幕久久| 久久国产一久久高清| 成人免费观看男女羞羞视频| 国产91丝袜在线播放0| 韩国毛片免费| 欧美激情一区二区三区中文字幕| 久久精品成人一区二区三区| 一级女性全黄生活片免费| a级黄色毛片免费播放视频| 九九免费精品视频| 日韩在线观看视频免费| 精品视频在线观看一区二区| 国产伦精品一区二区三区无广告 | 天天做日日爱夜夜爽| 精品国产香蕉伊思人在线又爽又黄| 精品在线观看国产| 日本在线播放一区| 国产伦理精品| 成人在免费观看视频国产| 九九久久99| 国产伦久视频免费观看视频| 国产a一级| 国产精品1024在线永久免费| 国产a一级| 成人免费一级毛片在线播放视频| 国产不卡在线看| 日本伦理网站| | 欧美激情伊人| 九九精品影院| 亚飞与亚基在线观看| 国产成人精品综合久久久| 国产精品自拍在线观看| 欧美日本免费| 九九久久国产精品大片| 一级女性大黄生活片免费| 国产精品自拍亚洲| 精品视频在线观看一区二区| 国产一区二区精品尤物| 美女免费毛片| 九九干| 亚欧乱色一区二区三区| 国产麻豆精品高清在线播放| 国产一区二区精品| 成人影院一区二区三区| 亚洲第一页色| 成人高清视频在线观看| 欧美国产日韩久久久| 成人免费观看的视频黄页| 中文字幕一区二区三区 精品| 久久精品欧美一区二区| 精品国产一区二区三区久久久蜜臀 | 91麻豆精品国产高清在线| 午夜欧美成人久久久久久| 国产伦久视频免费观看视频| 欧美另类videosbestsex高清 | 国产91精品一区|