【Java基礎(chǔ)教程】1. 關(guān)鍵字奏纪、變量酷宵、數(shù)據(jù)類(lèi)型

1、關(guān)鍵字炕置、變量男韧、數(shù)據(jù)類(lèi)型


  1. 關(guān)鍵字和保留字

    定義:被Java語(yǔ)言賦予特殊含義,有專(zhuān)門(mén)用途的字符串

    特點(diǎn):關(guān)鍵字中所有字母都為小寫(xiě)

關(guān)鍵字列表

  • 數(shù)據(jù)類(lèi)型 class甚纲、interface朦前、enumbyte春哨、short恩伺、intlong凰荚、float褒脯、doublechar,boolean,void
  • 流程控制 if到涂、else爽彤、switch缚陷、casedefault嚷节、whiledo衩婚、for效斑、breakcontinue奇昙、return
  • 訪問(wèn)權(quán)限 public敌完、protectedprivate
  • 定義類(lèi) abstract什湘、final晦攒、staticsynchronized
  • 類(lèi)與類(lèi)之間的關(guān)系 extends腹尖、implements
  • 類(lèi)實(shí)例相關(guān) new伐脖、thissuper绎巨、instanceof
  • 異常處理 try蠕啄、catchfinally和媳、throw哈街、throws
  • 包相關(guān) packageimport
  • 其他關(guān)鍵字 native她倘、strictfptransient前硫、volatile荧止、assert
  • 值關(guān)鍵字 truefalse嗤详、null

保留字

goto瓷炮、const

保留字、關(guān)鍵字不能被使用

  1. 標(biāo)識(shí)符 Identifier (變量苍狰、方法烘绽、類(lèi))

    Java對(duì)各種變量、方法和類(lèi)等要素命名時(shí)使用的字符序列成為標(biāo)識(shí)符

    技巧:凡是自己可以起名字的地方都教標(biāo)識(shí)符

    定義合法標(biāo)識(shí)符的規(guī)則

    • 由26個(gè)英文字母大小寫(xiě)翔忽、0-9盏檐、_或$組成
    • 不能以數(shù)字開(kāi)頭
    • 不可以使用關(guān)鍵字和保留字、但可以包含
    • Java中嚴(yán)格區(qū)分大小寫(xiě)材失,長(zhǎng)度無(wú)限制
    • 標(biāo)識(shí)符不能包含空格
  1. Java中的名稱(chēng)命名規(guī)范

    • 包名: 多個(gè)單詞組成時(shí)所有字母都小寫(xiě): myproducttest
    • 類(lèi)名硫豆、接口名:多個(gè)單詞組成所有單詞首字母大寫(xiě): MyProductTest
    • 變量名、方法名:首字母小寫(xiě)旨别、其他單詞首字母大寫(xiě): myProductTest
    • 常量名:所有字母都大寫(xiě)汗茄,多個(gè)單詞用下劃線分割:MY_PRODUCT_TEST

在起名字時(shí),為了提高閱讀性胆屿,要盡量有意義偶宫,“見(jiàn)名知意”

java采用unicode字符集纯趋,因此標(biāo)識(shí)符也可以使用漢字聲明,但不建議使用

可以看看《代碼簡(jiǎn)潔之道.pdf》

  1. 變量

    概念:內(nèi)存的一個(gè)存儲(chǔ)區(qū)域吵冒,該區(qū)域的數(shù)據(jù)可以在同一類(lèi)型范圍內(nèi)不斷變化痹栖。變量是程序中最基本的存儲(chǔ)單元。包含變量類(lèi)型疗我、變量名和存儲(chǔ)的值南捂。

    作用:用于在內(nèi)存中保存數(shù)據(jù)

    注意事項(xiàng)

    • Java中每個(gè)變量都需要先聲明后使用
    • 使用變量名來(lái)訪問(wèn)這塊區(qū)域的數(shù)據(jù)
    • 變量的作用域:其定義所在的一對(duì){}內(nèi)
    • 變量有在其作用域內(nèi)才有效
    • 在同一個(gè)作用域內(nèi)麦牺,不能定義重名變量
    public class myTest {
         public static void main(String[] args) {
                 int myAge = 12;
             System.out.println(myAge);
          
             // System.out.println(myNumber);
             // 在使用myNumber之前未定義
          
             int myNumber;
             // System.out.println(myNumber);
             // 使用myNumber之前必須初始化
          
             myNumber = 1001;
             System.out.println(myNumber);   
          
             // int myAge = 11; 在同一個(gè)作用域下重復(fù)定義變量
        }
    }
    
  1. 變量的類(lèi)型

    基本數(shù)據(jù)類(lèi)型 primitive type

    數(shù)值型: byte(1字節(jié))剖膳、short(2字節(jié))岭辣、int(4字節(jié))long(8字節(jié))

    浮點(diǎn)型float(4字節(jié))枕荞、double(8字節(jié))

    字符型char(2字節(jié))

    布爾型boolean(1字節(jié))

    1字節(jié)等于 8bit

引用數(shù)據(jù)類(lèi)型 reference type

類(lèi)class

接口: interface

數(shù)組[]

public class Test {
     public static void main(String[] args) {
        // 1搞动、 整型
                 byte b1 = 12;
         byte b2 = -128;
         // b2 = 128; 超出范圍會(huì)報(bào)錯(cuò)
         System.out.println(b1);
         System.out.println(b2);
      
         short s1 = 128;
         // 通常定義整數(shù)時(shí),使用int型
         int i1 = 1234;
         //聲明long型變量矗烛,必須以'l'或者"L"結(jié)尾
         long l1 = 123456L;
         System.out.println(l1);
      
         // 2、浮點(diǎn)型 不要求精度可以使用
       // 通常定義浮點(diǎn)型變量時(shí)碌嘀,使用double型
      
         // 單精度 4 字節(jié) float
         // 聲明float型變量必須以'f'或者"F"結(jié)尾
         float f1 = 12.3F; //如果不加F/f 會(huì)報(bào)錯(cuò) <不兼容的類(lèi)型>
         System.out.println(f1);
      
         // 雙精度 8 字節(jié) double
         double d1 = 123.3;
         System.out.println(d1 + 1);

         // 3歪架、字符型 char (一個(gè)字符=2字節(jié))
        // 聲明char型變量和蚪,通常使用一對(duì)''
         char c1 = 'a'; 
         // c1 = 'AB'; 錯(cuò)誤!字符型只能寫(xiě)一個(gè)字符
         System.out.println(c1);
             char c2 = '1';
         char c3 = '中';
         System.out.println(c2);
       System.out.println(c3);
      
         char c4 = '\n';
         System.out.print("hello" + c4);
         System.out.println("world");
      
         // 4怯疤、布爾類(lèi)型 boolean
         // 只有兩個(gè)值 true 和 false
         boolean bool1 = true;
         // bool1 = false;
         System.out.println(bool1);
         
         boolean isMarried = true;
         if(isMarried) {
             System.out.println("不能參加單身party了");
        } else {
             System.out.println("你可以多談?wù)勁笥?);
        }
    }    
}
  1. 類(lèi)型轉(zhuǎn)換 **

    自動(dòng)類(lèi)型轉(zhuǎn)換(提升)

    前提: 這里討論的只是7中基本數(shù)據(jù)類(lèi)型之間的運(yùn)算催束,不包含boolean類(lèi)型

    類(lèi)型從小到大會(huì)自動(dòng)提升類(lèi)型 例如 byte => short/int/long/float/double

    特別的: 當(dāng)byte抠刺、charshort三種類(lèi)型的變量做運(yùn)算時(shí)矫付,結(jié)果為int

    整型運(yùn)算時(shí) 凡事"小于"int型的運(yùn)算 都以int 類(lèi)型變量接收結(jié)果

    class Test {
         public static void main(String[] args) {
                 byte b1 = 2;
             int i1 = 129;
                 int i2 = b1 + i1;
             long l1 = b1 + i1;
             System.out.println(i2);
          
             float f = b1 + i1;
             System.out.println(f);
             
             short s1 = 123;
             double d1 = s1;
             System.out.println(d1);
          
             char c1 = 'a';
             int i3 = 10;
             int i4 = c1 + i3;
             System.out.println(i4);
          
             byte b2 = 3;
             short s2 = 123;
          
             // short s3 = b2 + s2;  // 會(huì)報(bào)類(lèi)型錯(cuò)誤 b2 + s2自動(dòng)升類(lèi)型為int
          
             // 只能使用int 以及 "大于" int 容量的數(shù)據(jù)類(lèi)型接收結(jié)果
             int i5 = b2 + s2;
             long l2 = b2 + s2;      
        }
    }
    

強(qiáng)制類(lèi)型轉(zhuǎn)換

需要使用`()`作為強(qiáng)轉(zhuǎn)符 

數(shù)據(jù)類(lèi)型容量 由高轉(zhuǎn)低 

由高轉(zhuǎn)低強(qiáng)轉(zhuǎn)類(lèi)型 可以能會(huì)中造成數(shù)據(jù)精度問(wèn)題买优、數(shù)據(jù)截?cái)鄦?wèn)題

class Test {
    public static void main(String[] args) {
        // 精度損失
        double d1 = 12.3;
        int i1 = (int)d1;
        System.out.println(i1); // 12
      
          // 精度損失
        int i2 = 128;
        byte b = (byte)i2;
        System.out.println(b); // -128
    }
}

數(shù)據(jù)類(lèi)型轉(zhuǎn)換擴(kuò)展

class Test {
    public static void main(String[] args) {
        long l = 123123; // 如果不寫(xiě)L 相當(dāng)于 將int 123123 自動(dòng)轉(zhuǎn)換成了long 
                System.out.println(l);
                
          // long l1 = 123123123213222123; //編譯失敗過(guò)大整數(shù),超過(guò)了int的容量范圍并未有'L'的long型標(biāo)記
        long l1 = 123123123213222123L;
            
        // float f1 = 12.3;// 編譯失敗,12.3會(huì)被當(dāng)做double類(lèi)型杀赢,需要強(qiáng)制類(lèi)型轉(zhuǎn)換
      
        // 整數(shù)常量,默認(rèn)類(lèi)型為int型
        // 浮點(diǎn)型常量滤淳,默認(rèn)類(lèi)型為double型
        byte b = 12;
        // byte b1 = b + 1; // 編譯失敗砌左,1是整數(shù)常量 int 高轉(zhuǎn)低需要強(qiáng)制轉(zhuǎn)換 否則報(bào)錯(cuò)
        // float f1 = b + 12.3 // 編譯失敗,12.3 是浮點(diǎn)型常量 double 高轉(zhuǎn)低需要強(qiáng)制轉(zhuǎn)換 否則報(bào)錯(cuò)
    }
}
  1. String類(lèi)型

String 類(lèi)型是引用數(shù)據(jù)類(lèi)型,聲明String類(lèi)型變量是使用一對(duì)""

String類(lèi)型可以和8種基本數(shù)據(jù)類(lèi)型進(jìn)行運(yùn)算屁擅,且運(yùn)算只能是連接運(yùn)算"+",運(yùn)算結(jié)果仍然是String類(lèi)型

class Test {
    public static void main(String[] args) {
        String s1 = "Hello World";
        System.out.println(s1);
      
        String s2 = "a";
        String s3 = "";
        
        int number = 1001;
        String numberStr = "學(xué)號(hào):"
        String info = numberStr + number; // 連接運(yùn)算
        System.out.println(info);
    }
}
  1. 變量之進(jìn)制

所有數(shù)字在計(jì)算機(jī)底層都以二進(jìn)制形式存在派歌。

對(duì)于整數(shù)有四種標(biāo)識(shí)方式

  • 二進(jìn)制(binary): 0 / 1 ,滿二進(jìn)一胶果。以0b或者0B開(kāi)頭早抠。
  • 十進(jìn)制(decimal): 0-9, 滿十進(jìn)一。
  • 八進(jìn)制(octal):0-7贝或,滿八進(jìn)一咪奖。以0開(kāi)頭酱床。
  • 十六進(jìn)制(hex):0-9A-F,滿十六進(jìn)一扇谣。以0x或者0X開(kāi)頭罐寨。A-F不區(qū)分大小寫(xiě)
class BinaryTest {
    public static void main(String[] args) {
        int num1 = 0b110; // 二進(jìn)制
        int num2 = 110;     // 十進(jìn)制
        int num3 = 0127;    // 八進(jìn)制
        int num4 = 0x124A;// 十六進(jìn)制
        
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
    }
}

二進(jìn)制

Java整數(shù)常量默認(rèn)是int類(lèi)型,當(dāng)用二進(jìn)制定義整數(shù)時(shí)跋破,其第32位是符號(hào)位;當(dāng)是long類(lèi)型時(shí)瓶蝴,二進(jìn)制默認(rèn)占64位,第64位是符號(hào)位拧簸。

二進(jìn)制的整數(shù)有如下三種形式

  • 原碼:直接將一個(gè)數(shù)值轉(zhuǎn)換成二進(jìn)制數(shù)男窟,最高位是符號(hào)位。
  • 負(fù)數(shù)的反碼:是對(duì)原碼按位去反弟劲,只是最高位(符號(hào)位)確定為1姥芥。
  • 負(fù)數(shù)的補(bǔ)碼:其反碼加1。

計(jì)算機(jī)以二進(jìn)制補(bǔ)碼的形式保存所有的整數(shù)

  • 整數(shù)的原碼庸追、反碼、補(bǔ)碼都相同
  • 負(fù)數(shù)的補(bǔ)碼是其反碼+1

二進(jìn)制轉(zhuǎn)十進(jìn)制

正數(shù)二進(jìn)制 按位次冪相加

負(fù)數(shù)二進(jìn)制一般都是補(bǔ)碼读整,負(fù)數(shù)需要反推 咱娶,補(bǔ)碼 - 1 取反 求出原碼 按位次冪相加

十進(jìn)制轉(zhuǎn)二進(jìn)制

用一個(gè)數(shù)不停的除以二取余,得到的結(jié)果逆向就是二進(jìn)制

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屈糊,一起剝皮案震驚了整個(gè)濱河市琼了,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昧诱,老刑警劉巖所袁,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燥爷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡勺拣,警方通過(guò)查閱死者的電腦和手機(jī)鱼填,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愤惰,“玉大人赘理,你說(shuō)我怎么就攤上這事〉焱” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵鄙信,是天一觀的道長(zhǎng)忿晕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鸦采,這世上最難降的妖魔是什么咕幻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任谅河,我火速辦了婚禮确丢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘褂始。我一直安慰自己描函,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布胆数。 她就那樣靜靜地躺著互墓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪判莉。 梳的紋絲不亂的頭發(fā)上育谬,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天膛檀,我揣著相機(jī)與錄音娘侍,去河邊找鬼互站。 笑死,一個(gè)胖子當(dāng)著我的面吹牛踩叭,可吹牛的內(nèi)容都是我干的翠胰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼斤富,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锻狗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起油额,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤潦嘶,失蹤者是張志新(化名)和其女友劉穎崇众,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锰蓬,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眯漩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年坤塞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摹芙。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浮禾,死狀恐怖份汗,靈堂內(nèi)的尸體忽然破棺而出蝴簇,到底是詐尸還是另有隱情,我是刑警寧澤旁钧,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布歪今,位于F島的核電站颜矿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏骑疆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一箍铭、第九天 我趴在偏房一處隱蔽的房頂上張望泊柬。 院中可真熱鬧,春花似錦坡疼、人聲如沸彬呻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至剪况,卻和暖如春教沾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背译断。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工授翻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孙咪,地道東北人堪唐。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像翎蹈,于是被迫代替她去往敵國(guó)和親淮菠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355