Java 數(shù)據(jù)類(lèi)型<05<Android開(kāi)發(fā)小典

今天老何與大家分享Java中的數(shù)據(jù)類(lèi)型,從一個(gè)大家相對(duì)感興趣的話題聊起吧,隨著智能手機(jī)與網(wǎng)絡(luò)的普及,大家都辦理了流量套餐,每到月底大家也非常關(guān)心有沒(méi)有流量了?費(fèi)用是如何被扣掉的?
??好,讓我們帶著問(wèn)題了解2個(gè)概念。

1、數(shù)據(jù)

數(shù)據(jù)是信息的表現(xiàn)形式和載體,可以是符號(hào)、文字、數(shù)字、圖像、語(yǔ)音、視頻等。
??手機(jī)/電腦上安裝的軟件,Word文檔、PPT文檔,短信、微信,圖片、視頻等等都是數(shù)據(jù)。
??之所以我們使用手機(jī)會(huì)有流量費(fèi)用,是因?yàn)榘l(fā)送和接收了數(shù)據(jù)(如在線聽(tīng)歌、發(fā)送微信、查看朋友圈,這些都是走數(shù)據(jù)流量的,如同用水電一樣),運(yùn)營(yíng)商是計(jì)費(fèi)的,比如聯(lián)通(0.0003元/kb),這里提到數(shù)據(jù)單位kb,來(lái)接著看第二個(gè)概念。

2、數(shù)據(jù)單位

數(shù)據(jù)是有單位的(如尺寸有單位米,厘米、毫米等,它們之間有換算關(guān)系,1米=100厘米,1厘米=10毫米),從小到大依次是比特(Bit)、字節(jié)(Byte)、千字節(jié)(KB)、兆字節(jié)(MB)、吉字節(jié)(GB)、太字節(jié)(TB)......它們之間的換算關(guān)系為:

   1B=8bit
   1 KB = 1024 B
   1 MB = 1024 KB
   1 GB = 1024 MB
   1 TB = 1024 GB
   ......
   > 比特(Bit):比特是計(jì)算機(jī)中存儲(chǔ)數(shù)據(jù)的最小單位,指二進(jìn)制數(shù)中的一個(gè)位數(shù),其值為“0”或“1”。  
   > 字節(jié)(Byte):字節(jié)是計(jì)算機(jī)存儲(chǔ)容量的基本單位,一個(gè)字節(jié)由8位二進(jìn)制數(shù)組成,如10011000,在計(jì)算機(jī)內(nèi)部,一個(gè)字節(jié)可以表示一個(gè)數(shù)據(jù),也可以表示一個(gè)英文字母,兩個(gè)字節(jié)可以表示一個(gè)漢字。   
   > 其他KB,MB、GB、TB......每一個(gè)級(jí)別都是前面的乘以1024。  

了解完上面概念后,再回答我們前面的問(wèn)題,如果你通過(guò)手機(jī)在線看一個(gè)視頻,為100M(現(xiàn)在文件都很大,M即MB,按照聯(lián)通費(fèi)用標(biāo)準(zhǔn)需換算成KB),那么花費(fèi)=100Mx1024x0.0003元/KB≈30元,自我感覺(jué)hei不hei:),獨(dú)此三家,別無(wú)選擇。
??OK,進(jìn)入我們的今天主題“數(shù)據(jù)類(lèi)型”

3、數(shù)據(jù)類(lèi)型

數(shù)據(jù)除了有單位,也是有類(lèi)型的,數(shù)據(jù)類(lèi)型是對(duì)數(shù)據(jù)的分類(lèi),每種數(shù)據(jù)類(lèi)型都具有獨(dú)特的特征、不同的分配空間(最大位數(shù)/字節(jié)數(shù)不同)與相應(yīng)的操作功能(舉個(gè)例子:房子有別墅、住宅、辦公樓等分類(lèi),產(chǎn)權(quán)不一,大小不一,功能不一,但都是房子)



??Java中分成兩種數(shù)據(jù)類(lèi)型,一是基本數(shù)據(jù)類(lèi)型,二是引用數(shù)據(jù)類(lèi)型(兩者區(qū)別在內(nèi)存分配和地址指向的不同,可先大致了解,如詳細(xì)了解可@老何)
一、基本數(shù)據(jù)類(lèi)型

  /*
   1、整數(shù)類(lèi)型:byte、short、int、long 
          用來(lái)表示一個(gè)整數(shù)
          byte字節(jié)型、short短整型、int 整型、long 長(zhǎng)整型
       */
      /*
      (1)、byte字節(jié)型:占1個(gè)字節(jié)(8位) 
            取值范圍:-128~127(-2^7~2^7-1) 
            默認(rèn)值:0
       */
      byte b = 50;
      System.out.println("byte b的值為:"+b);
      /*
      (2)、int 整型:占4個(gè)字節(jié)(32位) 
            整型的默認(rèn)值為int
            取值范圍:-2,147,483,648~2,147,483,647(-2^31~2^31-1)
            默認(rèn)值:0
       */
      int i = 18000;
      System.out.println("int i的值為:"+i);
      /*
      (3)、short短整型:占2個(gè)字節(jié)(16位) 
            取值范圍:-32768~32767(-2^15~2^15-1) 
            默認(rèn)值:0
       */
      short si = 1800;
      System.out.println("short si的值為:"+si);
      /*
      (4)、long 長(zhǎng)整型 :占8個(gè)字節(jié)(64位)
            取值范圍:-9,223,372,036,854,775,808~9,223,372,036,854,775,807(-2^63~2^63-1) 
            默認(rèn)值0L,后面有一個(gè)L或l
       */

      long li = 180000l;
      System.out.println("long li的值為:"+li);
      /*
       2、浮點(diǎn)類(lèi)型:float、double 
         float單精度浮點(diǎn)類(lèi)型、double雙精度浮點(diǎn)類(lèi)型
         Java用浮點(diǎn)型表示實(shí)數(shù),簡(jiǎn)單的說(shuō)就是帶有小數(shù)的數(shù)據(jù)。
       */
      /*
      (5)、float 長(zhǎng)單精度浮點(diǎn)類(lèi)型 :占4個(gè)字節(jié)(32位)
            默認(rèn)值:0.0f,后面要跟一個(gè)f或F表示
       */

      float f = 3.14f;
      System.out.println("float f的值為:"+f);
      /*
      (6)、double 雙精度浮點(diǎn)類(lèi)型 :占8個(gè)字節(jié)(64位)
           浮點(diǎn)型的默認(rèn)類(lèi)型
           默認(rèn)值:0.0d, 后面要跟一個(gè)d或D表示,浮點(diǎn)數(shù)不添加默認(rèn)代表雙精度
       */

      double d = 3.14d;
      System.out.println("double d的值為:"+d);
      /*
      (7)、boolean 類(lèi)型 : 
           有兩個(gè)值:true、false
           用作標(biāo)記或條件判斷
       */

      boolean hasChecked = false;
      System.out.println("boolean hasChecked的值為:"+hasChecked);
      /*
      (8)、char 字符類(lèi)型 :占2個(gè)字節(jié)(16位) 
           存放單個(gè)字符,用單引號(hào)引用起來(lái)
       */

      char a = 'a';
      System.out.println("char a的值為:"+a);

二、引用數(shù)據(jù)類(lèi)型
??這里先講一個(gè)常用的String類(lèi)型,其他的后續(xù)陸續(xù)講解。

        /*
        (1)、String 字符串類(lèi)型 
            char字符型僅表示一個(gè)字符,多個(gè)字符要用String 
            默認(rèn)值:null 
            可用+鏈接多個(gè)字符串
         */

        String name = "zhangsan";
        System.out.println("String name 的值為:"+name);

4、數(shù)據(jù)類(lèi)型轉(zhuǎn)換

不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)是可以轉(zhuǎn)換的,分為自動(dòng)數(shù)據(jù)類(lèi)型轉(zhuǎn)換和強(qiáng)制數(shù)據(jù)類(lèi)型轉(zhuǎn)換

/* 1、自動(dòng)數(shù)據(jù)類(lèi)型轉(zhuǎn)換
           按照數(shù)據(jù)類(lèi)型占用存儲(chǔ)不同可以自動(dòng)類(lèi)型轉(zhuǎn)換或強(qiáng)制類(lèi)型轉(zhuǎn)換,總的原則是小存儲(chǔ)容量數(shù)據(jù)類(lèi)型可以自動(dòng)轉(zhuǎn)換成為大存儲(chǔ)容量數(shù)據(jù)類(lèi)型。
           不同類(lèi)型數(shù)據(jù)間 按照下面關(guān)系的從左到右(從低到高)自動(dòng)轉(zhuǎn)換:
           boolean、char、short int-> int ->long int-> float -> double 。
           
         */

           int height=170;
           float fHeight=height;
           System.out.println(" int自動(dòng)轉(zhuǎn)換成float的值為:"+fHeight);
     
        /*
          2、強(qiáng)制數(shù)據(jù)類(lèi)型轉(zhuǎn)換
           如果類(lèi)型轉(zhuǎn)換是右到左情況,就需要強(qiáng)制類(lèi)型轉(zhuǎn)換了,轉(zhuǎn)換方法就是在數(shù)據(jù)前面加上(目標(biāo)類(lèi)型),
           但是這種轉(zhuǎn)換是存在風(fēng)險(xiǎn)的,有可能造成數(shù)據(jù)的丟失,需要謹(jǐn)慎進(jìn)行。
          
         */  
           double weight=23.56;
           int iWeight=(int)weight;
           System.out.println("double強(qiáng)制轉(zhuǎn)換成int的值為:"+iWeight);
           

5、變量與常量

最后補(bǔ)充一些知識(shí),之前我們使用的代碼格式都為
?? int i = 18000;
??這個(gè)是什么呢?實(shí)際上是變量定義

  /*
         一、變量
              1、概念:是Java程序的一個(gè)基本存儲(chǔ)單元,變量是由一個(gè)標(biāo)識(shí)符及一個(gè)可選的初始值組合定義。
                     定義規(guī)則為:
                      1:必須以字母、下劃線“_”、或“$”符號(hào)開(kāi)頭
                      2:可以包括數(shù)字、區(qū)分大小寫(xiě)
                      3:不能使用Java語(yǔ)言的關(guān)鍵字,例如int、float、public等(更多見(jiàn)附注1Java關(guān)鍵字)
                     變量的值是可以改變的              
              2、變量定義格式:
                 變量數(shù)據(jù)類(lèi)型 變量名;  
                  例如 int age;
            */
           //1,先定義變量,再初始化
           int score;
           score=200;
           //2,定義的時(shí)候直接初始化
           float heightf=180.6f;
           //3,變量值的改變(可多次改變)
           double money=1234.56;
                  money=3456.78;
                  money=5678.9;
           //4,變量值的傳遞(從一個(gè)變量傳遞給另一個(gè)變量)
           int age=6;
           int ageb=age;
        /*
         二、常量
             常量是變量中的一個(gè)特例,用final關(guān)鍵字修飾,常量的值是不可以修改的
             對(duì)常量命名的定義規(guī)則:建議盡量全部大寫(xiě),并用下劃線將詞分開(kāi)

         */
           //5,定義常量,常量不能修改,僅能定義時(shí)初始化
             final float PI=3.1415f;
            // PI=3.14159f;
             System.out.println("變量分?jǐn)?shù)值:"+score+"變量身高值:"+heightf+"存款:"+money+"年齡:"+ageb+"常量PI:"+PI);

6、運(yùn)行結(jié)果

保存程序并運(yùn)行,結(jié)果如下:

byte b的值為:50
int i的值為:18000
short si的值為:1800
long li的值為:180000
float f的值為:3.14
double d的值為:3.14
boolean hasChecked的值為:false
char a的值為:a
String name 的值為:zhangsan
 int自動(dòng)轉(zhuǎn)換成float的值為:170.0
double強(qiáng)制轉(zhuǎn)換成int的值為:23
變量分?jǐn)?shù)值:200變量身高值:180.6存款:5678.9年齡:6常量PI:3.1415

附注:

1、Java關(guān)鍵字
??Java官方使用的特定標(biāo)識(shí),代表特殊含義,如int,代表整型數(shù)據(jù)類(lèi)型


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容