0基礎(chǔ)學(xué)Java,老薛帶你學(xué)Java變量和數(shù)據(jù)類型以及賦值方式

一:變量

1.1 what赞弥?

問題:我們在實際開發(fā)過程中不可避免的要遇到一些比如數(shù)值計算的問題毅整。而對于有些數(shù)值,可能在整個程序的執(zhí)行過程中被反復(fù)使用绽左,或者對該數(shù)值進(jìn)行四則運(yùn)算悼嫉;而此時,如果沒有一個行之有效的東西幫助我們?nèi)ビ涗涍@些反復(fù)使用的值拼窥,很可能后導(dǎo)致后期對于值的不確定性增加(記混了戏蔑,記錯了)蹋凝,導(dǎo)致整個程序崩潰。

定義:變量就是在程序運(yùn)行期間总棵,其值可以發(fā)生改變鳍寂。我們用變量來記錄和標(biāo)識程序中的某個用戶輸入等記錄。

1.2 Why?

為了能夠更好的方便開發(fā)情龄,所以我們通過變量對于某些數(shù)據(jù)起一個簡單的名字迄汛,方便程序調(diào)用以及執(zhí)行。這就是為什么需要變量的原因骤视。

1.3 Where?

變量被應(yīng)用在程序的開發(fā)的各個地方鞍爱,基本不存在沒有變量的程序或者代碼段。

1.4 How

1.4.1 變量的聲明

PS:為了能夠更好的說明問題专酗,我們下面的例子中都是通過int這種數(shù)據(jù)類型類完成下面的測試用例的睹逃。

  • 案例
public class VariableStatement {    
      public static void main(String[] args) {  
            int num;//①   
     }
}
  • 結(jié)論

變量的聲明需要指定數(shù)據(jù)類型和變量名稱;int就是一種數(shù)據(jù)類型祷肯,num就是當(dāng)前變量的名字沉填;

變量聲明
  • 注意事項

①:Java是一門強(qiáng)類型語言,所有的變量都是具備具體類型的躬柬,目前我們先通過int代替拜轨,后面細(xì)說每種數(shù)據(jù)類型

②:變量名稱就是給某個數(shù)據(jù)起的一個名稱,必須要嚴(yán)格遵守標(biāo)識符的命名規(guī)則(3必2標(biāo)1注意)

1.4.2 變量的賦值

  • 案例1 聲明變量直接使用

    public class VariableStatement {  
        public static void main(String[] args) {      
            int num;//①      
            System.out.println("num的值是:"+num);
        }
    }
    
  • 結(jié)論

    程序在編譯期間報錯允青,報錯信息如下:

    The local variable num may not have been initialized
    
  • 注意事項

    變量在聲明之后橄碾,無法直接使用;如果需要使用變量颠锉,必須要保證變量聲明且賦值法牲。

  • 修改方式

    public class VariableStatement {  
          public static void main(String[] args) {     
               int num;//①聲明變量      
               num = 10;//② 增加賦值語句      
              System.out.println("num的值是:"+num); 
         }
    }
    

    變量聲明之后需要使用是,通過賦值語句進(jìn)行變量的賦值之后才能正常使用琼掠。

  • 案例2 聲明變量且賦值

      public class VariableStatement {  
            public static void main(String[] args) {      
                int num  = 10;//聲明變量num且賦10      
                System.out.println("num的值是:"+num);  
            }
      }
    
  • 結(jié)論

    PS:變量的聲明和賦值可以分開進(jìn)行編寫拒垃,也可以編寫為一行。一般情況下我們都會將聲明和賦值放在一行語句中瓷蛙。

  • 案例3 變量在程序運(yùn)行期間可以重新賦值

    public class VariableStatement { 
        public static void main(String[] args) {     
           int num  = 10;//聲明變量num且賦值10      
           System.out.println("起初num的值是:"+num);   
          //改變num的值      
          num = 20;      
          System.out.println("修改之后的num的值是:"+num); 
         }
      }
    

    輸出結(jié)果:

    起初num的值是10修改之后的num的值是20
    

    在程序運(yùn)行期間悼瓮,變量的值可以發(fā)生改變,只需要重新給當(dāng)前變量賦值即可艰猬。

1.4.3 變量的口訣

變量變量横堡,它隨你變;要想使用冠桃,記著賦值命贴。

二: 數(shù)據(jù)類型

2.1 前言

Java是一門強(qiáng)類型的語言,所有的數(shù)據(jù)都具備具體的類型。思考問題胸蛛,弱類型語言和強(qiáng)類型語言的優(yōu)缺點分析污茵。

  • 強(qiáng)類型語言:
  • 所有數(shù)據(jù)都具備其具體的類型,每種不同的類型的存儲空間不同葬项,大的數(shù)據(jù)泞当,空間開辟大一點,小的數(shù)據(jù)空間開辟的小一點玷室;
  • 程序容易維護(hù)零蓉,不會因為程序在運(yùn)行期間,對于變量進(jìn)行賦值等操作穷缤,導(dǎo)致程序出現(xiàn)Bug,所以相對比而言會更加安全一點箩兽。
  • 弱類型語言:
  • 所有的數(shù)據(jù)的類型可能都一樣津肛,每種數(shù)據(jù)的存儲空間相同。導(dǎo)致小的數(shù)據(jù)(100)和大的數(shù)據(jù)(100000)的存儲的空間一樣汗贫,造成一些內(nèi)存的浪費身坐;
  • 程序不容易維護(hù),后期程序運(yùn)行時落包,不小心對于某一個數(shù)值型的變量進(jìn)行更改部蛇,變成其它類型,導(dǎo)致程序正常執(zhí)行咐蝇,結(jié)果后期釀成大禍涯鲁,相對于穩(wěn)定性差一點。

2.2 數(shù)據(jù)類型分類

數(shù)據(jù)類型分類

注意有序,Java是一門強(qiáng)類型語言抹腿,分為基本數(shù)據(jù)類型(3類8種)和引用類型。引用類型暫且背下來旭寿,我們后期講解警绩。接下來我們主攻的方向是基本數(shù)據(jù)類型,基本數(shù)據(jù)類型的我們通過了解每種類型的范圍盅称,內(nèi)存大小肩祥,聲明方式,注意事項系統(tǒng)學(xué)習(xí)缩膝;

2.2.1 字節(jié)型

  • 注意事項
表示方式 所占空間 表示范圍
字節(jié)型(byte) 1個字節(jié) -128 - 127
  • 案例分析
public class DataTypeTest01{
    public static void main(String[] args){
        //1:聲明一個byte類型的數(shù)據(jù) 賦值10
        byte num1 = 10;
        System.out.println("num1 的值是:"+num1);
        
        //2:給num1重新賦值128查看結(jié)果
        num1 = 128;//這行代碼報錯混狠,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 結(jié)論

字節(jié)型是數(shù)據(jù)類型通過byte指定,占內(nèi)存1個字節(jié)逞盆,能夠代表的數(shù)的范圍是-128到127之間檀蹋;如果賦值超過這個區(qū)間,編譯時會報錯Type mismatch: cannot convert from int to byte。不能將超過byte范圍的數(shù)據(jù)直接賦值給byte類型的變量俯逾。

2.2.2 短整形

  • 注意事項
表示方式 所占空間 表示范圍
短整型(short) 2個字節(jié) -32768-32767 -2^15 - 2^15-1
  • 案例分析
public class DataTypeTest02{
    public static void main(String[] args){
        //1:聲明一個short類型的數(shù)據(jù) 賦值1000
        short num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:給num1重新賦值32768查看結(jié)果
        num1 = 32768;//這行代碼報錯贸桶,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 結(jié)論

短整形型是數(shù)據(jù)類型通過short指定,占內(nèi)存2個字節(jié)桌肴,能夠代表的數(shù)的范圍是-32768到32767之間提揍;如果賦值超過這個區(qū)間,編譯時會報錯Type mismatch: cannot convert from int to byte恩沽。不能將超過short范圍的數(shù)據(jù)直接賦值給short類型的變量命雀。

2.2.3 整形

  • 注意事項
表示方式 所占空間 表示范圍
整型(int) 4個字節(jié) -2147483648-2127283647 -2^31 - 2^31-1
  • 案例分析
public class DataTypeTest03{
    public static void main(String[] args){
        //1:聲明一個int類型的數(shù)據(jù) 賦值40000
        int num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:給num1重新賦值2147483648查看結(jié)果
        num1 = 2147483648;//這行代碼報錯,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 結(jié)論

整形型是數(shù)據(jù)類型通過int指定彪置,占內(nèi)存4個字節(jié)拄踪,能夠代表的數(shù)的范圍是-231到231-1之間;如果賦值超過這個區(qū)間拳魁,編譯時會報錯Type mismatch: cannot convert from int to byte惶桐。不能將超過short范圍的數(shù)據(jù)直接賦值給int類型的變量。

2.2.4 長整形

  • 注意事項
表示方式 所占空間 表示范圍
長整型(long) 8個字節(jié) -2^63 - 2^63-1
  • 案例分析
public class DataTypeTest04{
    public static void main(String[] args){
        //1:聲明一個int類型的數(shù)據(jù) 賦值40000
        long num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:給num1重新賦值2147483648查看結(jié)果
        num1 = 2147483648;//這行代碼報錯潘懊,type int is out of range

        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 結(jié)論

長整形型是數(shù)據(jù)類型通過long指定姚糊,占內(nèi)存8個字節(jié),能夠代表的數(shù)的范圍是-263到263-1之間授舟;

這里要千萬注意救恨,默認(rèn)情況下在Java中所有的整數(shù)的默認(rèn)類型是int類型,所以當(dāng)給long類型變量賦值時释树,本身賦值的數(shù)超過了int的范圍肠槽;大于2147483647或者小于-2147483658時,編譯器覺得賦值的右邊還是int類型而不是long類型躏哩,所以報錯The literal 2147483648 of type int is out of range署浩。

解決辦法: 在超過int值的后面加"L"(推薦)或者是"l"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扫尺,一起剝皮案震驚了整個濱河市筋栋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌正驻,老刑警劉巖弊攘,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姑曙,居然都是意外死亡襟交,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門伤靠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捣域,“玉大人,你說我怎么就攤上這事』烂罚” “怎么了迹鹅?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贞言。 經(jīng)常有香客問我斜棚,道長,這世上最難降的妖魔是什么该窗? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任弟蚀,我火速辦了婚禮,結(jié)果婚禮上酗失,老公的妹妹穿的比我還像新娘义钉。我一直安慰自己,他們只是感情好级零,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布断医。 她就那樣靜靜地躺著,像睡著了一般奏纪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斩启,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天序调,我揣著相機(jī)與錄音,去河邊找鬼兔簇。 笑死发绢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的垄琐。 我是一名探鬼主播边酒,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狸窘!你這毒婦竟也來了墩朦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤翻擒,失蹤者是張志新(化名)和其女友劉穎氓涣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陋气,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡劳吠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了巩趁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痒玩。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蠢古,到底是詐尸還是另有隱情奴曙,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布便瑟,位于F島的核電站缆毁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏到涂。R本人自食惡果不足惜脊框,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望践啄。 院中可真熱鬧浇雹,春花似錦、人聲如沸屿讽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伐谈。三九已至烂完,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诵棵,已是汗流浹背抠蚣。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留履澳,地道東北人嘶窄。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像距贷,于是被迫代替她去往敵國和親柄冲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

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

  • Win7下如何打開DOS控制臺忠蝗? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,588評論 4 12
  • 一现横、基礎(chǔ)知識:1、JVM什湘、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,365評論 0 4
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,776評論 1 10
  • 秋冬到來闽撤,一件簡單的襯衫打底已經(jīng)不能抵御寒冷了得哆,如果不想穿的臃腫不堪,就來一件毛衣吧哟旗!好馬配好鞍贩据,一件時尚的大衣或...
    閆瑋閱讀 223評論 0 0
  • 打開簡書想看看雞湯的時候突然看到了這篇推送栋操。 紅腫的雙眼又開始嘩啦啦流起眼淚來。 我也不知道怎么會這樣饱亮。明明前兩天...
    waw_Helianthus閱讀 112評論 0 0