Java系列(二)數(shù)據(jù)類型和運(yùn)算符

HelloWord

Java系列(一) 中知道了什么是java及如何搭建java開發(fā)環(huán)境插龄。系列二主要介紹Java的一些數(shù)據(jù)類型和運(yùn)算符暮胧,在此之前萬年不變老規(guī)矩HelloWord的流程必須走一下删铃。

用記事本寫java的第一個(gè)程序Hello Word !

public class HelloWord{
    public static void main(String[] args){  //Java程序入口沙咏,程序從這里開始執(zhí)行
        System.out.println("Hello Word!");   //控制臺(tái)打印一條語句
    }
}

保存為文件HelloWord.java肮疗,注意文件擴(kuò)展名為.java漱抓,證明這是一個(gè)java 文件。

命令行進(jìn)入到HelloWord的文件路徑下精钮,首先用javac HelloWord.java 命令進(jìn)行編譯威鹿,將java文件編譯成字節(jié)碼.class文件,會(huì)發(fā)現(xiàn)文件夾下多出來一個(gè)HelloWord.class文件轨香。然后用java HelloWord命令運(yùn)行這個(gè)文件就會(huì)在控制臺(tái)輸出Hello Word忽你!

注意用java運(yùn)行命令時(shí) HelloWord后面不要.class后綴名,不要問為什么臂容,這是規(guī)定記住即可科雳。由此Java第一個(gè)程序我們就已經(jīng)編寫運(yùn)行完成根蟹。


HelloWord.jpg

接下來學(xué)習(xí)Java的一些數(shù)據(jù)類型和運(yùn)算符


標(biāo)識(shí)符和關(guān)鍵字

java和其他編程語言一樣,需要用一些標(biāo)識(shí)符作為變量糟秘、對(duì)象的名字简逮,也提供了許多關(guān)鍵字實(shí)現(xiàn)一些特定的功能。

分割符

Java語言中的分號(hào)(;)尿赚、花括號(hào)({ })散庶、方括號(hào)([ ])、圓括號(hào)(( ))凌净、點(diǎn)(.)悲龟、空格都具有特殊的分割意義,這些符號(hào)被統(tǒng)稱為分割符號(hào)冰寻。

標(biāo)識(shí)符

標(biāo)識(shí)符就是用來給程序中變量须教、類、方法命名的符號(hào)斩芭,它需要遵守一些規(guī)則:

  • 標(biāo)識(shí)符可以由數(shù)字除外的字母轻腺、下劃線、美元符號(hào)($)開頭秒旋,后面可接任意的數(shù)字约计、字母、下劃線迁筛、美元符號(hào)煤蚌。
  • 標(biāo)識(shí)符中間不能有空格。
  • 標(biāo)識(shí)符不能和關(guān)鍵字一樣细卧。
關(guān)鍵字

java中有一些特殊的單詞被用來實(shí)現(xiàn)特殊的功能尉桩,這些單詞稱為關(guān)鍵字。一共有53個(gè)贪庙,具體可查看關(guān)鍵字蜘犁。


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

Java是一門強(qiáng)類型語言,什么是強(qiáng)類型呢止邮?意思是每個(gè)變量和表達(dá)式在編譯時(shí)就有一個(gè)確定的類型这橙,所以java中所有的變量都要先顯式申明類型才能使用。它的好處在于編譯時(shí)進(jìn)行了更加嚴(yán)格的語法檢查导披,從而減少編程錯(cuò)誤屈扎。

Java語言支持的類型有兩種:基本數(shù)據(jù)類型引用類型

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

基本數(shù)據(jù)類型分數(shù)值類型布爾型

  • 數(shù)值類型
    • 整類型
      • byte ------占一個(gè)字節(jié)-------8位
      • short------占兩個(gè)字節(jié)------16位
      • int----------占四個(gè)字節(jié)------32位
      • long-------占八個(gè)字節(jié)------64位
    • 字符型
      • char--------占四個(gè)字節(jié)------32位
    • 浮點(diǎn)型
      • float--------占四個(gè)字節(jié)------32位
      • dobule----占八個(gè)字符-------64位
  • 布爾型
    • boolean---占一位---0或1

int 是最常用的整數(shù)類型,因此通常情況下撩匕,一個(gè)java整數(shù)常量系統(tǒng)會(huì)默認(rèn)他是int類型鹰晨。有兩種情況例外:

  • 將一個(gè)較小的整數(shù)常量(在byte或short類型的取值范圍類)賦值給byte或short變量,系統(tǒng)會(huì)將該常量當(dāng)成byte或short來處理。
  • 將一個(gè)巨大的整數(shù)常量(超過int的取值范圍)模蜡,java不會(huì)將該整數(shù)常用當(dāng)作 long 類型類處理漠趁,需要我們?cè)谠摂?shù)值后面加上一個(gè)L后綴。

字符類型 char 通常表示單個(gè)的字符忍疾,用單引號(hào)括起來 闯传,如char tag ='a';

引用類型

引用類型包括 類、接口卤妒、數(shù)組類型還有特殊的null 類型

基本數(shù)據(jù)類型的轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換

當(dāng)一個(gè)取值范圍小的數(shù)據(jù)類型賦值給取值范圍到的數(shù)據(jù)類型時(shí)丸边,java會(huì)將其自動(dòng)轉(zhuǎn)換。轉(zhuǎn)換的規(guī)則為:


基本數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換規(guī)則.png
        int a = 8;
        //a會(huì)自動(dòng)轉(zhuǎn)換成float類型
        float b = a;
        //將會(huì)輸出8.0
        System.out.println("b" + b);
強(qiáng)制類型轉(zhuǎn)換

當(dāng)一個(gè)取值范圍大的數(shù)據(jù)類型賦值給取值范圍小的類型時(shí)荚孵,可以采用強(qiáng)制類型轉(zhuǎn)換。但強(qiáng)制過程中可能會(huì)發(fā)生溢出纬朝。

        int a = 225;
        //將int類型強(qiáng)制至byte類型
        byte b = (byte) a;
        //將會(huì)輸出 -31 
        System.out.println("b" + b);

b的值為-31的計(jì)算過程:首先是將225轉(zhuǎn)換為2進(jìn)制0000 0000 0000 0000 1110 0001收叶,byte數(shù)據(jù)類型占一個(gè)字節(jié),8位共苛。因此在強(qiáng)制過程中會(huì)截掉前面24位得到1110 0001判没,首位是符號(hào)標(biāo)準(zhǔn)位1,為負(fù)數(shù)隅茎。負(fù)數(shù)在計(jì)算機(jī)中是以補(bǔ)碼的方式存在澄峰,他的反碼為補(bǔ)碼減一得1110 0000,反碼除符號(hào)位外取反得到原碼為1001 1111即-31辟犀。

正數(shù)的補(bǔ)碼等于其原碼俏竞,負(fù)數(shù)的補(bǔ)碼等于其反碼加1,負(fù)數(shù)的反碼等于其原碼的符號(hào)位不動(dòng)其余位取反堂竟。

表達(dá)式類型的自動(dòng)提升

當(dāng)一個(gè)表達(dá)式包含多種數(shù)據(jù)類型時(shí)魂毁,整個(gè)算數(shù)表達(dá)式的數(shù)據(jù)類型會(huì)自動(dòng)提升。所有byte出嘹、short席楚、char數(shù)據(jù)類型將自動(dòng)提升為int類型,其余的會(huì)提升至表達(dá)式中的最高數(shù)據(jù)類型税稼。

運(yùn)算符
算數(shù)運(yùn)算符

java支持所有的基本運(yùn)算符烦秩,用于執(zhí)行基本的數(shù)學(xué)運(yùn)算:加、減郎仆、乘只祠、除、求余丸升、自增++铆农、自減--。除了簡(jiǎn)單的運(yùn)算符,java的Math類提供了許多方法用于復(fù)雜的數(shù)學(xué)計(jì)算墩剖。

關(guān)于++和--我們需要注意一點(diǎn)的是它位于變量的位置不同時(shí)會(huì)有不同的結(jié)果猴凹。

        int a = 5;
        //將int類型強(qiáng)制至byte類型
        int b = ++a + 6;
        //將會(huì)b=12
        System.out.println("b--->" + b);

        int c = 5;
        int d = c++ + 6;
        //將會(huì)輸出 d=11
        System.out.println("d--->" + d);

自加++或自減 --符號(hào)位于變量的左邊會(huì)先進(jìn)行自加或自減運(yùn)算賦值給變量本身,再參與其他的計(jì)算岭皂。位于變量的右邊會(huì)先參與其他運(yùn)算后再做自增或自減操作郊霎。

位運(yùn)算符

在進(jìn)行按位運(yùn)算符時(shí),都是先將數(shù)值轉(zhuǎn)換為二進(jìn)制爷绘,對(duì)二進(jìn)制對(duì)應(yīng)的每一位進(jìn)行按位運(yùn)算书劝。當(dāng)其中一個(gè)數(shù)值為負(fù)數(shù)時(shí),先需獲得其補(bǔ)碼土至,在與其他數(shù)值的二進(jìn)制進(jìn)行按位運(yùn)算购对。位運(yùn)算符一共有七種:

  • & 與------0&1=0;1&1=1陶因;0&0=0
  • | 或------0 | 0=0骡苞;0 | 1=1;1 | 1=1
  • ~ 非 ------取反 0變1 楷扬,1變0
  • ^ 異或-----相同為0解幽,不同為1
  • >> 右移---- 將二進(jìn)制往右移整數(shù)個(gè)位,高位用符號(hào)標(biāo)志位補(bǔ)上
  • << 左移-----將二進(jìn)制往左移整數(shù)個(gè)位烘苹,低位用零補(bǔ)上
  • >>> 無符號(hào)位右移---將二進(jìn)制往右移整數(shù)個(gè)位躲株,高位用0補(bǔ)上
邏輯運(yùn)算符
  • & 不短路-----前后都為true返回為true,當(dāng)前面為false時(shí)還會(huì)去執(zhí)行后面的
  • && 與 -----前后都為true返回為true镣衡,當(dāng)前面為false時(shí)不會(huì)去執(zhí)行后面的
  • | 不短路或-----前后有一個(gè)為true則為true霜定,當(dāng)前面為true時(shí)還是會(huì)執(zhí)行后面的
  • || 或-----前后有一個(gè)為true則為true,當(dāng)前面為true時(shí)不會(huì)執(zhí)行后面的
  • ^ 異或---前后不同時(shí)返回為true廊鸥, 相同時(shí)返回false
        //短路和非短路的區(qū)別
        int a = 5;
        int b = 6;
        if (a > 3 | ++b > 6) { //不短路或
            //將會(huì)輸出 b=7 因?yàn)閍>3為true后還是會(huì)執(zhí)行判斷 ++b>6 的操作
            System.out.println("b--->" + b);
        }

        if (a > 3 || ++b > 6) { //短路或
            //將會(huì)輸出 b=6 因?yàn)閍>3為true時(shí)然爆,后面的操作不進(jìn)行下去了
            System.out.println("b--->" + b);
        }

三目運(yùn)算符

相當(dāng)于if else的簡(jiǎn)寫。格式為: (條件)?表達(dá)式一:表達(dá)式二;意思是當(dāng)條件成立時(shí)黍图,取表達(dá)式一的值曾雕,條件不成立時(shí)取表達(dá)式二的值。

        //num的值將會(huì)是200
        int num = (3 > 4) ? 100 : 200;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末助被,一起剝皮案震驚了整個(gè)濱河市剖张,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揩环,老刑警劉巖搔弄,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異丰滑,居然都是意外死亡顾犹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炫刷,“玉大人擎宝,你說我怎么就攤上這事』肼辏” “怎么了绍申?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)顾彰。 經(jīng)常有香客問我极阅,道長(zhǎng),這世上最難降的妖魔是什么涨享? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任筋搏,我火速辦了婚禮,結(jié)果婚禮上厕隧,老公的妹妹穿的比我還像新娘拆又。我一直安慰自己,他們只是感情好栏账,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栈源,像睡著了一般挡爵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甚垦,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天茶鹃,我揣著相機(jī)與錄音,去河邊找鬼艰亮。 笑死闭翩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迄埃。 我是一名探鬼主播疗韵,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼侄非!你這毒婦竟也來了蕉汪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤逞怨,失蹤者是張志新(化名)和其女友劉穎者疤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叠赦,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驹马,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糯累。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡算利,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寇蚊,到底是詐尸還是另有隱情笔时,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布仗岸,位于F島的核電站允耿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扒怖。R本人自食惡果不足惜较锡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盗痒。 院中可真熱鬧蚂蕴,春花似錦、人聲如沸俯邓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稽鞭。三九已至鸟整,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朦蕴,已是汗流浹背篮条。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吩抓,地道東北人涉茧。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疹娶,于是被迫代替她去往敵國和親伴栓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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