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

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

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 什么是Java數據類型轉換?

什么是Java數據類型轉換?

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

  一. 數據類型轉換

  其實Java數據類型轉換是將一個數據類型的值轉換為另一個數據類型的值的過程。Java中的數據類型可以分為兩類:基本數據類型和引用數據類型。基本數據類型包括整型、浮點型、字符型、布爾型等,而引用數據類型則包括類、接口、數組等。

  而在Java中,數據類型的轉換可以分為兩種:自動類型轉換和強制類型轉換。自動類型轉換指的是在類型轉換時,Java編譯器自動將一種類型的值轉換為另一種類型的值。例如,將一個int類型的值賦給一個long類型的變量,編譯器會自動將int類型的值轉換為long類型的值。強制類型轉換則指的是在類型轉換時,需要使用強制轉換符進行轉換,強制轉換符包括小括號加目標類型的方式,例如:(int) 3.14。

  二. 自動類型轉換(隱式轉換)

  1. 概念

  所謂的自動類型轉換,是指在基本類型中,容量小的數據類型可以自動轉換為容量大的數據類型。在數據類型兼容的情況下,小轉大就是自動類型轉換,自動類型轉換也被稱為隱式類型轉換,不需要我們做任何額外的操作。

  2. 轉換規(guī)律(重點)

  根據自動類型轉換的定義,8種基本類型之間的自動轉換關系如下圖所示:

什么是Java數據類型轉換1

  根據上圖,給大家提取了基本類型進行自動類型轉換時的基本規(guī)律,如下:

  1. 自動類型轉換必須滿足,轉換前數據類型的位數要低于轉換后的數據類型;

  2. 當多種數據類型的數據混合運算時,Java首先會自動將所有的數據轉換成容量最大的那種數據類型,然后再進行計算;

  3. byte、short、char這三者之間不會相互轉換,他們三者在計算時首先都會轉換為 int 類型;

  4. boolean類型不能與其他任何基本數據類型進行轉換;

  5. 當把任意基本數據類型(包括boolean)的值和字符串進行連接運算時,基本數據類型的值會自動轉換為字符串類型;

  6. 必須滿足轉換前的數據類型的位數要低于轉換后的數據類型。

  以上這些基本規(guī)律,希望各位能夠熟練的記住并運用,這是我們開發(fā)時的基本功哦。

  3. 案例

  為了能讓大家更好地理解自動類型轉換,給大家設計了如下配套代碼案例,你必須手敲幾遍哦。

  public class TypeDemo04 { public static void main(String[] args) { // 自動類型轉換:小轉大,自動轉換,啥也不用做 // 1.byte-->short,可以 byte b = 19; short s = b; // short-->byte,不可以自動轉換:Type mismatch: cannot convert from short to byte // byte b2=s; System.out.println("s=" + s); // 2.short-->int,可以 int i = s; System.out.println("i=" + i); // int-->short,不可以自動轉換:Type mismatch: cannot convert from int to short // short s2=i; // 3.char-->int,可以 char c = 'a'; int j = c; System.out.println("j=" + j); // int-->char,不可以自動轉換:Type mismatch: cannot convert from char to int // char c2=j; // 4.int-->long,可以 long x = i; System.out.println("x=" + x); // long-->int,不可以自動轉換:Type mismatch: cannot convert from int to long // j = x; // 5.int-->float,可以 float f1 = i; System.out.println("f1=" + f1); // float-->int,不可以自動轉換:Type mismatch: cannot convert from float to int // j = f1; // 6.int-->double,可以 double d1 = i; System.out.println("d1=" + d1); // double-->int,不可以自動轉換:Type mismatch: cannot convert from double to int // j = d1; // 7. long-->float,可以 float f2 = x; System.out.println("f2=" + f2); // float-->long,不可以自動轉換:Type mismatch: cannot convert from float to long // x = f2; // 8. long-->double,可以 double d2 = x; System.out.println("d2=" + d2); // double-->long,不可以自動轉換:Type mismatch: cannot convert from double to long // x = d2; // 9. float-->double,可以 double d3 = f1; System.out.println("d3=" + d3); // double-->float,不可以自動轉換:Type mismatch: cannot convert from double to float // f2 = d3; }}

  我們要注意,超出范圍的強制轉型會得到錯誤的結果。因為轉型時int的兩個高位字節(jié)直接被扔掉,僅保留了低位的兩個字節(jié),因此強制轉型的結果有可能是錯的。

  對于以上案例,希望大家動手敲起來,這些代碼雖然看著簡單,但只有你自己親手練習了,你才能理解得更深刻。紙上得來終覺淺,絕知此事要躬行!

  三. 強制類型轉換(顯式轉換)

  1. 概念

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

  2. 轉換規(guī)律

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

  1. 進行轉換的數據類型必須是兼容的;

  2. 通常,字符串不能直接轉換為基本類型;

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

  4. boolean類型不可以轉換成其他數據類型。

  為了讓大家更好地理解這些規(guī)律,還是給大家設計一些代碼案例,往下看吧。

  3. 案例

  強制類型轉換格式:(type)value其中type是要強制類型轉換后的數據類型。

  public class TypeDemo04 { public static void main(String[] args) { // 強制類型轉換:大轉小。 double d1 = 100; // double-->int,大轉小,d1的類型為double,i的類型為int,需要強制轉換,類型前添加(要轉換成的類型)。 int i = (int) d1; System.out.println("i=" + i); //int-->char,大轉小 int j = 97; char c1 = (char) j; System.out.println("c1="+c1); //int-->byte,大轉小,精度可能會丟失 int k =128; //byte類型是8位,最大值為127,當int強制轉換為byte類型時,128就會導致溢出變成-128。 byte b = (byte)k; System.out.println("b="+b);//-128 //表達式中進行類型轉換 double d2 = 10; double d3 = 12; int m = (int) (d2 + d3); System.out.println("m="+m); //double+int,小類型和大類型進行計算,會進行類型提升,最終的結果變成大類型。 //Type mismatch: cannot convert from double to int //int n = d2 + k; int n = (int)d2 + k; System.out.println("n="+n); //浮點數到整數的轉換,是通過舍棄小數得到的,而不是四舍五入 int x=(int)55.9;//55 int y=(int)-28.89f; System.out.println("x="+x+",y="+y);//-28 }}

  大家要注意:

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

什么是Java數據類型轉換2

  4. 類型提升補充說明

  在上面強制轉換時,如果涉及到不同數據類型之間的數學運算,比如+、-、*、/等操作,大家要注意:小類型的數據和大類型的數據進行計算時,會自動進行類型提升,最終的結果變成大類型!關于這一塊的內容,大家暫時先了解這么多,后面講運算符時我再細說。

  public class TypeDemo04 { public static void main(String[] args) { // 強制類型轉換:大轉小 //類型提升 //double+int,小類型和大類型進行計算,會進行類型提升,最終的結果變成大類型。 //Type mismatch: cannot convert from double to int //int m = d2 + k; int m = (int)d2 + k; System.out.println("m="+m); }}

  類型自動提升后,如果不進行強制類型轉換,也是會出現(xiàn)如下異常:

什么是Java數據類型轉換3

  四. 隱含強制類型轉換(初始化)

  1. 概念

  首先我們要知道這樣的基本原則:

  ● 在變量初始化時,整數的默認類型都是int;

  ● 浮點型小數的默認類型是 double;

  ● 浮點型不存在隱含強制類型轉換的情況,在定義 float 類型時必須在數字后面跟上 F 或者 f。

  在 byte b = 100; 這句代碼中,100 默認就是 int 類型!雖然100默認是int類型,但Java會把100隱含地強制轉換成低級別的 byte 和 short 類型,所以不用我們進行顯式的強制類型轉換。也就是說,Java會把-128到127之間的int類型數據,都隱含地強制轉換成低級別的byte和short類型。

  2. 案例

  public class TypeDemo04 { public static void main(String[] args) { // 隱含強制類型轉換,初始化時。 //100默認是int類型, //雖然int>byte,但Java會把-128到127之間的數字,隱含強制轉換成低級別的byte和short類型, //所以不用我們進行顯式的強制類型轉換。 byte b = 100; System.out.println("b=" + b); //b2=-129,b2=128都會報錯,Type mismatch: cannot convert from int to byte。 //byte b2 = -129; }}

什么是Java數據類型轉換4

  五. 其他類型轉換

  關于其他類型之間的轉換,主要包括基本類型與字符串、基本類型與包裝類、字符串與包裝類、包裝類與字符串之間的轉換。接下來,壹哥再通過幾個案例給大家展示一下它們的用法。

  1. 基本類型轉字符串

  基本類型轉字符串,對我們初學者來說,最常用的一個辦法就是直接在基本類型后面加上一個雙引號""。這種方案最簡單,但實際上效率并不高,在進行大量字符串拼接時不建議采用這種方案。當然,如果只是個別字符串的拼接,采用這種方案是無所謂的。

  public class TypeDemo04 { public static void main(String[] args) { //1.基本類型轉字符串 //變量+"",會自動轉換String類型 int x = 111; String s1 = x + ""; System.out.println("s1=" + s1); }}

  2. 包裝類型轉字符串

  關于包裝類,對于剛入門的朋友,我們現(xiàn)在暫時先了解一下即可:畢竟知識還是得一步一步消化的。

  public class TypeDemo04 { public static void main(String[] args) { //2.包裝類型轉字符串 Double d = 1000.0; String str = d.toString(); System.out.println("str=" + str); }}

  3. 字符串轉包裝類型

  該案例大家也是先簡單了解即可,后面我們再細講。

  public class TypeDemo04 { public static void main(String[] args) { //3.字符串轉包裝類 Double d2 = Double.parseDouble("11.1"); Double d3 = Double.valueOf("11.1"); System.out.println("d2=" + d2 + ",d3=" + d3); int i = Integer.parseInt("100"); Integer j = Integer.valueOf("200"); System.out.println("i=" + i + ",j=" + j); }}

  剛入門到的朋友們,不要光看哦!一定要動手敲一敲!!!!

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
99热精品在线| 99色视频在线| 一级片片| 欧美激情一区二区三区在线播放| 国产精品免费久久| 欧美一级视频免费观看| 可以免费看毛片的网站| 国产激情视频在线观看| 欧美国产日韩久久久| 天天色成人| 中文字幕97| 日韩中文字幕在线亚洲一区| 午夜精品国产自在现线拍| 精品国产一区二区三区免费| 精品国产一区二区三区国产馆| 精品毛片视频| 国产成人欧美一区二区三区的| 成人a级高清视频在线观看| 成人免费一级毛片在线播放视频| a级黄色毛片免费播放视频| 久久99这里只有精品国产| 高清一级淫片a级中文字幕 | 国产麻豆精品| 欧美大片一区| 国产视频久久久久| 国产伦理精品| 999精品影视在线观看| 在线观看成人网| 天天色色网| 99色视频在线| 久久成人亚洲| 国产一区二区精品久| 日韩专区第一页| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 一级女性大黄生活片免费| 国产成人精品影视| 亚洲精品久久久中文字| 欧美电影免费看大全| 欧美激情一区二区三区中文字幕| 午夜欧美福利| 欧美大片a一级毛片视频| 亚洲第一视频在线播放| 午夜激情视频在线观看| 中文字幕97| 韩国毛片免费大片| 欧美爱爱动态| 成人影院一区二区三区| 国产91素人搭讪系列天堂| 色综合久久久久综合体桃花网| 国产成人精品综合| 欧美激情一区二区三区视频 | 成人免费观看网欧美片| 午夜精品国产自在现线拍| 日韩女人做爰大片| 国产精品免费久久| 一级女性全黄生活片免费 | 黄色福利片| 久久国产精品只做精品| 国产91视频网| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美爱色| 亚洲精品久久久中文字| 四虎影视库| 亚洲精品影院久久久久久| 韩国三级香港三级日本三级| 91麻豆精品国产自产在线 | 欧美爱色| 精品国产香蕉在线播出| 精品国产香蕉在线播出| 日韩在线观看网站| 尤物视频网站在线| 欧美日本免费| 国产伦精品一区三区视频| 日本伦理网站| 国产精品自拍亚洲| 亚欧视频在线| 韩国毛片免费| 久久久久久久久综合影视网| 精品视频在线观看免费| 久久成人性色生活片| 国产韩国精品一区二区三区| 国产高清在线精品一区二区| 韩国三级视频在线观看| 国产a免费观看| 欧美另类videosbestsex久久| 精品毛片视频| 国产综合成人观看在线| 九九热国产视频| 日韩avdvd| 国产不卡在线播放| 日韩avdvd| 亚洲精品影院久久久久久| 国产伦精品一区二区三区在线观看 | 你懂的在线观看视频| 夜夜操网| 久久精品店| 国产激情一区二区三区| 99久久精品国产国产毛片 | 四虎影视库| 日韩一级黄色大片| 久久精品店| 国产原创中文字幕| 日韩av东京社区男人的天堂| 国产网站免费视频| 日本免费乱人伦在线观看 | 成人免费福利片在线观看| 成人在激情在线视频| 天堂网中文在线| 欧美a免费| 国产91素人搭讪系列天堂| 欧美一级视| 国产亚洲免费观看| 中文字幕一区二区三区精彩视频| 黄色免费三级| 99久久精品国产国产毛片 | 一本高清在线| 亚洲不卡一区二区三区在线| 国产精品1024在线永久免费 | 国产一区二区精品久久91| 亚洲天堂一区二区三区四区| 欧美a级片免费看| 午夜久久网| 九九久久99| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 91麻豆精品国产自产在线观看一区 | 久久国产一久久高清| 九九干| 午夜在线亚洲| 韩国三级香港三级日本三级| 国产视频久久久久| 可以免费看污视频的网站| 一本高清在线| 精品视频在线观看一区二区三区| 四虎久久精品国产| 欧美a级片免费看| 二级片在线观看| 天天色色网| 香蕉视频久久| 四虎影视精品永久免费网站| 天堂网中文在线| 国产不卡精品一区二区三区| 国产不卡在线观看视频| 91麻豆tv| 亚洲天堂在线播放| 精品国产一级毛片| 香蕉视频久久| 国产麻豆精品高清在线播放| 99热热久久| 午夜精品国产自在现线拍| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产a免费观看| 国产一区二区精品久久91| 欧美激情一区二区三区视频 | 国产精品免费久久| 国产a免费观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久99青青久久99久久| 九九九在线视频| 欧美1区| 欧美日本免费| 欧美一区二区三区在线观看| 久久99爰这里有精品国产| 九九精品久久久久久久久| 精品国产一区二区三区久| 九九九网站| 成人影视在线播放| 91麻豆国产| 一级毛片视频免费| 欧美日本国产| 午夜激情视频在线观看| 国产视频一区二区在线播放| 高清一级毛片一本到免费观看| 四虎影视库| 九九九国产| 久久国产精品只做精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人高清免费| 超级乱淫黄漫画免费| 成人av在线播放| 黄色短视屏| 国产视频一区二区在线观看| 你懂的在线观看视频| 午夜在线亚洲男人午在线| 国产成人女人在线视频观看| 色综合久久天天综合观看| 国产a视频| 精品国产一级毛片| 一级女性全黄久久生活片| 国产高清在线精品一区a| 国产综合91天堂亚洲国产| 九九免费高清在线观看视频| 黄色免费三级| 日日夜夜婷婷| 精品国产一级毛片| 日本在线www| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 四虎影视久久久| 可以在线看黄的网站| 色综合久久天天综线观看| 一级女性全黄久久生活片|