1. 程式人生 > >「6」數據類型

「6」數據類型

目標 程序員 數值轉換 bsp 現在 對象 jvm mar display

1、Java數據類型

  ●Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間

技術分享

技術分享

    ●JVM內存管理分為三大塊:棧內存(調用方法時,在方法中聲明的一些基本類型)、堆內存(new出來的對象,引用類型)、方法區(靜態變量、常量、類的信息)。

    ●JVM會把整型默認為int類型(不超範圍的可以自動轉換成小類型,long需要末尾加l或L),帶小數的默認為double類型(float需要末尾加f或F)。小數為零點幾的可以省略零,也可以後面加eXX,代表乘以10的XX次方。數值前面加上括號,裏面寫上類型可實現強制類型轉換。

    ●字符型char必須用單引號括起來(也可直接使用數值或十六進制的Unicode字符),在java中字符char類型使用的是占兩字節的Unicode字符編碼UTF-16(’\u0000’)。

  ●Java對於整數有三種不同的表現形式

    ●十進制:0-9,滿10進一

    ●八進制:0-7,滿8進一,以0開頭

    ●十六進制:0-9,A-F,滿16進一,以0x開頭

  ●進制的基本轉換

    ●十進制轉二進制:除2取余數(小數為乘2取整數)

    ●二進制轉十進制:乘2的冪數(小數為2的-1次方、-2次方)

    ●八進制、二進制互轉:一位變三位、三位變一位

    ●十六進制、二進制互轉:一位變四位、四位變一位

  ●負數的二進制表現形式

    ●對應的正數二進制取反加一

  ●數值轉換練習:

    練習1:將二進制數1101.101轉換為十進制數。(13.625)

    練習2:將十進制整數105.625轉換為二進制整數。(1101001.101)

    練習3:將1011101001.110101B轉換為十六進制數(2E9.D4)

2、基本類型轉換

  ●語法

    ●自動類型轉換(隱式轉換):

      在某種條件下,系統自動完成類型轉換也稱隱含轉換(Implicit casting)

      ●兩種類型兼容

      ●目標類型大於源類型

      ●對於表達式,如果一個操作數為double型,則整個表達式可提升為double型

    ●強制類型轉換(Explicit Casting)(顯式轉換):

      在一定條件下,程序員手動完成類型轉換

      ●兩種類型兼容

      ●一般目標類型小於源類型

  ●要點

    強制類型轉換會丟失精度

  ●示例代碼

    1、自動類型轉換:

      int i = 10;

      double d = i;

    2、強制類型轉換

      double d = 10.0;

      int i = (int)d;

  ●總結:byte<short(char)<int<long<float<double

  ●示例

    ●去年Android手機所占的市場份額是10,今年增長的市場份額是19.8,求今年所占的份額。

      int before = 10; //Android手機市場份額

      double rise = 19.8; //增長的份額

      int now = before + rise; //現在的份額 ← 編譯出錯,不能完成自動類型轉換

      更改為int now = before + (int)rise; //現在的份額 ←強制類型轉換

「6」數據類型