2-Java常量/變量 數(shù)據(jù)類型 整數(shù)/小數(shù)/字符/引用類型 基本類型的自動(dòng)轉(zhuǎn)換

常量:程序中固定不變化的值。

  1. 字面值常量: 字面量溜歪,就表示直接給出的一個(gè)值(可以是整數(shù)若专, 小數(shù), true蝴猪,false等等)调衰, 直接量

    • 比如:整數(shù)常量1,2自阱,3嚎莉,小數(shù)常量3.14,布爾常量false沛豌,true等
  2. 定義的final變量

變量的定義

  1. 定義: 表示存儲(chǔ)空間趋箩,可用來存放某一類型的常量,沒有固定值加派,并可以重復(fù)使用叫确,也可以用來存儲(chǔ)某種類型的未知數(shù)據(jù)。

    • 先定義變量芍锦,再賦值: 數(shù)據(jù)類型 變量名; 變量名 = 值;

    • 在聲明時(shí)同時(shí)賦值: 數(shù)據(jù)類型 變量名 = 初始化值

  2. 特點(diǎn)

    1. 占據(jù)著內(nèi)存中的某一塊存儲(chǔ)區(qū)域

    2. 該區(qū)域有自己的名稱(變量名)和類型(數(shù)據(jù)類型)

    3. 可以被重復(fù)使用

    4. 該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化

變量分類 - 作用域 - 使用規(guī)則

  1. 分類

    • 成員變量 / 字段(又稱全局變量): 直接定義在類的花括號(hào)中的變量(方法外)

      • 報(bào)錯(cuò): 無法從靜態(tài)上下文中引用非靜態(tài)變量, 定義成員變量使用 static 修飾static int age = 17
    • 局部變量: 變量除了成員變量之外机打,其他就是局部變量呛哟。

      • 根據(jù)定義的位置不同有3種表現(xiàn)形式:方法形參,方法內(nèi)變量货岭,代碼塊變量空另。
  2. 作用域

    • 定義: 起作用的領(lǐng)域
  3. 使用規(guī)則

    1.變量必須先聲明魄幕,并且初始化后才能使用

    2.聲明變量必須有數(shù)據(jù)類型

    3.同一作用域內(nèi)變量名不能重復(fù)定義

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

  • 基本 / 原生數(shù)據(jù)類型

    1. 數(shù)值型

      • 整數(shù)類型: byte / short / int / long 陕贮, 不同的整數(shù)類型在內(nèi)存中占用的內(nèi)存空間大小不同

      • 小數(shù)類型: float / double

    2. 字符型

      • char : 字母 / 符號(hào)
    3. 布爾型

      • boolean : true / false
  • 引用 / 對(duì)象數(shù)據(jù)類型

    • 類 / 接口 / 數(shù)組

整數(shù)類型(byte-short-int-long)

  • 表現(xiàn)形式

    1. 二進(jìn)制整數(shù):0B或0b開頭(Java7的新特性)匣屡,如:int a = 0B110;

    2. 八進(jìn)制整數(shù):要求以0開頭,如 int a = 012;

    3. 十進(jìn)制整數(shù):如:int a = 17;

    4. 十六進(jìn)制整數(shù):要求0X或0x開頭女气,如int a = 0x12;

  • 注意

    1. Java語言的整型常量默認(rèn)是 int 型杏慰,聲明long 型變量后加上'l'或'L',因小寫的l容易和數(shù)字1相混淆,建議使用大寫L

      • int num = 128L
    2. 默認(rèn)情況下,一個(gè)整型的字面量默認(rèn)是 int 類型

小數(shù)類型(float-double)

  • float 逃默、double 類型:表示小數(shù)類型 / 浮點(diǎn)類型, float 表示單精度類型簇搅,double 表示雙精度類型完域,但是二者都不能表示精確的小數(shù)。

  • 默認(rèn)情況下, 一個(gè)浮點(diǎn)類型的字面量默認(rèn)是 double 類型瘩将。若要聲明一個(gè)常量為 float 型吟税, 則需在常量后加上f 或 F, double 常量后面的D或d可省略

    • float / double都不能精確的表示小數(shù)姿现,那么在精度要求高的系統(tǒng)比如銀行系統(tǒng)里肠仪,那怎么表示精確的小數(shù)呢?后面我們會(huì)講BigDecimal類型备典,它表示任意精度的數(shù)據(jù)
    double a = 0.00000000000000000004;
    double b = 0.000000000045;
    System.out.println(a + b); // 0.000000000045
    

字符類型 - 3種表示形式

  1. 直接使用單個(gè)字符來指定字符常量异旧,格式如'◆'、'A'提佣,'7'

    • char a1 = 'A'; System.out.println(a1); // A
  2. 直接作為十進(jìn)制整數(shù)數(shù)值使用吮蛹,但是數(shù)據(jù)范圍在[0,65535]拌屏,格式如97, 但是打印出來的值依然是ASCII碼表對(duì)于的符號(hào), 如97打印出來是字符a

    • char a2 = 65 // A
  3. 和2一樣潮针,只不過表示的是16進(jìn)制的數(shù)值,格式如'\uX'倚喂,X表示16進(jìn)制整數(shù)每篷;如:97的16進(jìn)制是61。那么表示為‘\u0061’打印出來也是a

    • char a3 = '\u0041' // A

引用類型

  • 除了8種基本數(shù)據(jù)類型端圈,其他所有類型都是引用數(shù)據(jù)類型焦读,包括類、接口舱权、數(shù)組吨灭。引用數(shù)據(jù)類型默認(rèn)初始值都是null

  • 常用 String 類型

    • 字符串都得使用 "" 括起來的String a = "申明字符串"

數(shù)據(jù)過大 / 溢出

  • 定義: 當(dāng)要表示的數(shù)據(jù)超出數(shù)據(jù)類型的臨界范圍時(shí),稱為溢出刑巧。溢出情況發(fā)生時(shí)程序并沒有做數(shù)據(jù)范圍檢查處理喧兄,此時(shí)會(huì)出現(xiàn)數(shù)據(jù)紊亂情況


    大容器轉(zhuǎn)小容器 會(huì)失去精度

基本類型的自動(dòng)轉(zhuǎn)換

  • 在8大基本數(shù)據(jù)類型中, boolean不屬于數(shù)值類型啊楚, 不參與轉(zhuǎn)換
隱性轉(zhuǎn)換.png
  • 自動(dòng)類型轉(zhuǎn)換 / 隱式類型轉(zhuǎn)換

    • 當(dāng)把小數(shù)據(jù)范圍類型的數(shù)值或變量賦給另一個(gè)大數(shù)據(jù)范圍類型變量吠冤,系統(tǒng)可以完成自動(dòng)類型轉(zhuǎn)型。這好比把裝一斤水容器里的水倒進(jìn)可以裝兩斤水的容器里一樣恭理。

      隱性轉(zhuǎn)換栗子.png
  • 強(qiáng)制類型轉(zhuǎn)換 / 顯示類型轉(zhuǎn)換

    • 當(dāng)把大范圍類型的數(shù)值或變量賦給另一個(gè)小范圍類型變量時(shí)拯辙,此時(shí)系統(tǒng)不能自動(dòng)完成轉(zhuǎn)換,需要加上強(qiáng)制轉(zhuǎn)換符,但這樣的操作可能造成數(shù)據(jù)精度的降低或溢出涯保,所以使用時(shí)要格外注意诉濒。

    • 這就好比把裝兩斤水容器里的水倒在可以裝一斤水的容器里,是可能造成水溢出的夕春。若要堅(jiān)持把4斤蘋果塞進(jìn)一個(gè)裝3斤的袋子里未荒,我們要怎么辦?動(dòng)用暴力及志。強(qiáng)制類型轉(zhuǎn)換片排,可能造成溢出和精度損失。

      float f2 = (float)d1 // double --> float

邏輯運(yùn)算符

  • & &&

    1. 當(dāng)兩個(gè)boolean表達(dá)式都為true速侈, 兩者結(jié)果都為true率寡,其他情況為false

    2. 區(qū)別

      • & (位與): 如果A表達(dá)式為false, 也會(huì)判斷B表達(dá)式倚搬, 再返回false

      • &&(短路與): 如果A表達(dá)式為false冶共, 不會(huì)判斷B表達(dá)式, 直接返回false

      • 短路與效率更高

      System.out.println(false & (1 / 0 == 0)); // 報(bào)錯(cuò)
      System.out.println(false && (1 / 0 == 0)); // 直接返回false
      
  • | ||同上

swich

  • 本質(zhì): switch 僅僅只能支持int類型. (byte / short / char, 會(huì)自動(dòng)提升為 int 類型)
    • 這里的數(shù)值的類型是除 long 之外的整型類型每界,也就是說 switch 支持的類型是byte比默,shortchar盆犁,int
  • 區(qū)別
    • if : 判斷條件是 boolean 類型的
    • switch : 判斷條件是 整數(shù)表達(dá)式 == int類型的值
  • 注意
    • case只是用來為switch選擇一個(gè)執(zhí)行代碼的入口命咐,如果一旦進(jìn)入某個(gè)入口之后,后面的case實(shí)際上已經(jīng)失去了判斷的意義谐岁,也就是說代碼在進(jìn)入switch執(zhí)行的時(shí)會(huì)把入口case之后的case統(tǒng)統(tǒng)忽略醋奠,會(huì)一直往下執(zhí)行,直到遇到breakreturn伊佃。(穿透)所以大家可以發(fā)現(xiàn)窜司,每一個(gè)case后面沒有{}這個(gè)符號(hào)來表示一個(gè)代碼塊。

練習(xí)

    for(int count=0;count<6; count++){
        for(int j=0; j<count; j++){
            System.out.print("*");
        }
        System.out.println();
    }

    int line = 1;
    for(int count=1;count<10; count++){
        for(int j=1; j<count; j++){
            System.out.print(j+ "x" + line +"=" +j*line +"\t");
        }
        System.out.println();
        line++;
    }
    
    /*
    1. 輸出三角形圖案
    *
    **
    ***
    ****
    *****

    2. 九九乘法表        
    */  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末航揉,一起剝皮案震驚了整個(gè)濱河市塞祈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帅涂,老刑警劉巖议薪,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異媳友,居然都是意外死亡斯议,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門醇锚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哼御,“玉大人,你說我怎么就攤上這事×抵纾” “怎么了看靠?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)液肌。 經(jīng)常有香客問我挟炬,道長(zhǎng),這世上最難降的妖魔是什么矩屁? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任辟宗,我火速辦了婚禮爵赵,結(jié)果婚禮上吝秕,老公的妹妹穿的比我還像新娘。我一直安慰自己空幻,他們只是感情好烁峭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秕铛,像睡著了一般约郁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上但两,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天鬓梅,我揣著相機(jī)與錄音,去河邊找鬼谨湘。 笑死绽快,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的紧阔。 我是一名探鬼主播坊罢,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼擅耽!你這毒婦竟也來了活孩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤乖仇,失蹤者是張志新(化名)和其女友劉穎憾儒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乃沙,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡航夺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崔涂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阳掐。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缭保,到底是詐尸還是另有隱情汛闸,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布艺骂,位于F島的核電站诸老,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钳恕。R本人自食惡果不足惜别伏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忧额。 院中可真熱鬧厘肮,春花似錦、人聲如沸睦番。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽托嚣。三九已至巩检,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間示启,已是汗流浹背兢哭。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夫嗓,地道東北人迟螺。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像啤月,于是被迫代替她去往敵國(guó)和親煮仇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

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