Java數(shù)據(jù)類型的劃分(整數(shù)類型)

定義一個整型變量:

  • public class TestDemo{
    public static void main (String args[]){
    //10是一個整數(shù)睛挚,不會改變的數(shù)署穗,是常量
    //程序之中任何一個整數(shù)對應(yīng)的類型都是int
    int num = 10;聲明一個int型變量
    //num是int型變量,2是一個int型的常量=結(jié)果還是int型
    System.out.println(num
    2);
    }
    }

在進行整型數(shù)據(jù)的操作過程當中也會存在一個數(shù)據(jù)的溢出問題

  • 溢出:當已經(jīng)達到整型的最大或最小值而繼續(xù)進行數(shù)學計算而可能產(chǎn)生的錯誤數(shù)據(jù)缚窿。
  • 關(guān)于變量的命名要求汗茄,第一個單詞的字母小寫炊苫,而后的每一個單詞首字母大寫谊却。
    范例:觀察數(shù)據(jù)溢出操作
  • public class TestDemo{
    public static void main (String args[]){
    int maxValue = Integer.MAX_VALUE;//取得最大值
    int minValue = Integer.MIN_VALUE;//取得最小值
    System.out.println(maxValue);//2147483647
    System.out.println(minValue);//-2147483648
    //maxValue屬于int型變量 + int型=int型(如果再加上下面的輸出)
    System.out.println(maxValue + 1);/maxValue已經(jīng)是最大值了衙猪,所以數(shù)據(jù)溢出(最小值)/
    System.out.println(minValue - 1 );//-2147483648/同樣的馍乙,minValue已經(jīng)是最小值了,數(shù)據(jù)同樣會溢出垫释,變成最大值/
    System.out.println(minValue - 2);//-2147483648//如果是最小值減2

發(fā)現(xiàn)當已經(jīng)超出了數(shù)據(jù)的操作類型丝格,就會產(chǎn)生數(shù)據(jù)的偏差,最好的方法就是在計算之前預估數(shù)據(jù)的大小棵譬。

  • 解決數(shù)據(jù)溢出的方法:
  • 更換更大的數(shù)據(jù)類型
    范例:解決int的數(shù)據(jù)溢出問題显蝌,比int大的數(shù)據(jù)類型,long
    public class TestDemo{
    public static void main (String args[]){
    int maxValue = Integer.MAX_VALUE;//取得最大值
    int minValue = Integer.MIN_VALUE;//取得最小值
    long result = maxValue + 1;
    System.out.println( result);
    }
    }
  • 在使用此類方式的處理之前订咸,一定要注意一個問題曼尊,所有的程序的執(zhí)行順序都是從“=”的右邊到左邊扭屁。如果繼續(xù)使用了int來計算,那么計算結(jié)果涩禀,那么計算結(jié)果還是存在一個溢出問題。
    實現(xiàn)方式一:直接把int變量的內(nèi)容直接賦值給long
    public class TestDemo{
    public static void main (String args[]){
    int maxValue = Integer.MAX_VALUE;//取得最大值
    int minValue = Integer.MIN_VALUE;//取得最小值
    long result = maxValue ;//直接把int變量的內(nèi)容賦值給long
    System.out.println( result +1 );/result是long類型然眼,+1是int類型=long類型/
    }
    }
  • 實現(xiàn)方式二:直接將一個int型的變量變?yōu)閘ong型
    public class TestDemo{
    public static void main (String args[]){
    int maxValue = Integer.MAX_VALUE;//取得最大值
    int minValue = Integer.MIN_VALUE;//取得最小值
    long result =(long)maxValue +1;//將一個變量先定義成long型
    System.out.println( result );/result是long類型艾船,+1是int類型=long類型/
  • 數(shù)據(jù)類型可以由小變大解決數(shù)據(jù)溢出問題;數(shù)據(jù)類型除了可以由小變大之外高每,還可以實現(xiàn)由大變小屿岂。但是這就需要強制完成,強制完成的結(jié)果就是:丟數(shù)據(jù)
  • public class TestDemo{
    public static void main (String args[]){
    /任何的整數(shù)默認類型都是int鲸匿,但是該數(shù)據(jù)已經(jīng)超過了int可以保存的數(shù)據(jù)范圍/
    //那么我們就需要把這個數(shù)據(jù)明確的表示成一個long型的常量
    long num = 2147483648L;//“L"或“l(fā)”都可以
    int result = (int)num爷怀;/強制long類型變?yōu)閕nt類型,這種操作有可能會丟失精度/
    System.out.println(result)带欢;
    }
    }
  • 范圍小的數(shù)據(jù)類型可以自動變?yōu)閿?shù)據(jù)大的類型
  • 范圍大的數(shù)據(jù)類型必須強制變?yōu)閿?shù)據(jù)小的類型
  • 關(guān)于數(shù)據(jù)類型默認值問題:
    任何的數(shù)據(jù)類型都有默認值运授,但是這個默認值在方法的聲明中無效。
    錯誤程序:
    public class TestDemo{
    public static void main (String args[]){
    int num;
    System.out.println(num);//錯誤:可能尚未初始化
    那么這個時候有兩種解決方案:
  • 在使用前為變量賦值乔煞,
    public class TestDemo{
    public static void main (String args[]){
    int num;
    num = 10;//在輸出前為num賦值
    System.out.println(num);//輸出結(jié)果10

但是這種形式在老版本的JDK中也會出錯吁朦。

  • 在變量聲明時賦值
    public class TestDemo{
    public static void main (String args[]){
    int num = 10;
    System.out.println(num);
  • byte數(shù)據(jù)類型(-128-127)
    范例:聲明byte變量
    public class TestDemo{
    public static void main (String args[]){
    //10是int,int的范圍要大于byte的范圍渡贾,那么理論上要進行強制轉(zhuǎn)換
    //可是這里沒有進行轉(zhuǎn)換逗宜,因為其數(shù)據(jù)量符合byte的要求。
    byte data = 10;
    System.out.println(data);

如果說為byte賦值的內(nèi)容大于byte的范圍空骚,這個時候就要進行強制轉(zhuǎn)換纺讲。同時需要注意的是,如果要將int常量直接賦值給byte的變量囤屹,那么只能夠是常量熬甚,而不能是int變量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牺丙,一起剝皮案震驚了整個濱河市则涯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冲簿,老刑警劉巖孽文,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唇跨,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機藻治,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事递礼。” “怎么了羹幸?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵脊髓,是天一觀的道長。 經(jīng)常有香客問我栅受,道長将硝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任屏镊,我火速辦了婚禮依疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘而芥。我一直安慰自己律罢,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布棍丐。 她就那樣靜靜地躺著误辑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歌逢。 梳的紋絲不亂的頭發(fā)上稀余,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音趋翻,去河邊找鬼睛琳。 笑死,一個胖子當著我的面吹牛踏烙,可吹牛的內(nèi)容都是我干的师骗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讨惩,長吁一口氣:“原來是場噩夢啊……” “哼辟癌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荐捻,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤黍少,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后处面,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厂置,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年魂角,在試婚紗的時候發(fā)現(xiàn)自己被綠了昵济。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖访忿,靈堂內(nèi)的尸體忽然破棺而出瞧栗,到底是詐尸還是另有隱情,我是刑警寧澤海铆,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布迹恐,位于F島的核電站,受9級特大地震影響卧斟,放射性物質(zhì)發(fā)生泄漏系草。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一唆涝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧唇辨,春花似錦廊酣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饿幅,卻和暖如春凡辱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栗恩。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工透乾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人磕秤。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓乳乌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親市咆。 傳聞我的和親對象是個殘疾皇子汉操,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子蒙兰,小兔子...
    趙宇_阿特奇閱讀 1,864評論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法磷瘤,類相關(guān)的語法,內(nèi)部類的語法搜变,繼承相關(guān)的語法采缚,異常的語法,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 【程序1】 題目:古典問題:有一對兔子挠他,從出生后第3個月起每個月都生一對兔子仰担,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,134評論 0 41
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,595評論 4 12
  • 1 順序語句 語句:使用分號分隔的代碼稱作為一個語句。 注意:沒有寫任何代碼只是一個分號的時候摔蓝,也是一條語句赂苗,...
    哈哈哎呦喂閱讀 381評論 0 0