1. 程式人生 > >JAVA基礎-2.關鍵字,識別符號,常量,變數,進位制,資料型別

JAVA基礎-2.關鍵字,識別符號,常量,變數,進位制,資料型別

1:關鍵字(掌握)
(1)被Java語言賦予特定含義的單詞
(2)特點:
全部小寫。
(3)注意事項:
A:goto和const作為保留字存在。
B:類似於Notepad++這樣的高階記事本會對關鍵字有特殊顏色標記

2:識別符號(掌握)
(1)就是給類,介面,方法,變數等起名字的字元序列
(2)組成規則:
A:英文大小寫字母
B:數字
C:$和_
(3)注意事項:
A:不能以數字開頭
B:不能是java中的關鍵字
C:區分大小寫
(4)常見的命名規則(見名知意)
A:包 全部小寫
單級包:小寫
舉例:liuyi,com
多級包:小寫,並用.隔開
舉例:cn.itcast,com.baidu
B:類或者介面
一個單詞:首字母大寫
舉例:Student,Demo
多個單詞:每個單詞首字母大寫
舉例:HelloWorld,StudentName
C:方法或者變數
一個單詞:首字母小寫
舉例:name,main
多個單詞:從第二個單詞開始,每個單詞首字母大寫
舉例:studentAge,showAllNames()
D:常量
全部大寫
一個單詞:大寫
舉例:PI
多個單詞:大寫,並用_隔開
舉例:STUDENT_MAX_AGE

3:註釋(掌握)
(1)就是對程式進行解釋說明的文字
(2)分類:
A:單行註釋 //
B:多行註釋 /**/
C:文件註釋 /* /
(3)把HelloWorld案例寫了一個帶註釋的版本。
寫一個程式的過程。
需求:
分析:
實現:
程式碼體現:
(4)註釋的作用
A:解釋說明程式,提高了程式碼的閱讀性。
B:可以幫助我們除錯程式。
後面我們會講解一個更高階的一個除錯工具

4:常量(掌握)
(1)在程式執行的過程中,其值不發生改變的量
(2)分類:
A:字面值常量
B:自定義常量(後面講)
(3)字面值常量
A:字串常量 “hello”
B:整數常量 12,23
C:小數常量 12.345
D:字元常量 ‘a’,’A’,’0’
E:布林常量 true,false
F:空常量 null(後面講)
(4)在Java中針對整數常量提供了四種表現形式
A:二進位制 由0,1組成。以0b開頭。
B:八進位制 由0,1,…7組成。以0開頭。
C:十進位制 由0,1,…9組成。整數預設是十進位制。
D:十六進位制 由0,1,…9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭。

5:進位制轉換(瞭解)
(1)其他進位制到十進位制
係數:就是每一個位上的數值
基數:x進位制的基數就是x
權:對每一個位上的資料,從右,並且從0開始編號,對應的編號就是該資料的權。

    結果:係數*基數^權次冪之和。
(2)十進位制到其他進位制
    除基取餘,直到商為0,餘數反轉。
(3)進位制轉換的快速轉換法
    A:十進位制和二進位制間的轉換
        8421碼。
    B:二進位制到八進位制,十六進位制的轉換

6:變數(掌握)
(1)在程式的執行過程中,其值在某個範圍內可以發生改變的量
(2)變數的定義格式:
A:資料型別 變數名 = 初始化值; int age=0;
B:資料型別 變數名;
變數名 = 初始化值;

7:資料型別(掌握)
(1)Java是一種強型別語言,針對每種資料都提供了對應的資料型別。
(2)分類:
A:基本資料型別:4類8種
B:引用資料型別:類,介面,陣列,String。
(3)基本資料型別
A:整數 佔位元組數
byte 1
short 2
int 4
long 8
B:浮點數
float 4
double 8
C:字元
char 2
D:布林
boolean 1

    注意:
        整數預設是int型別,浮點數預設是double。

        長整數要加L或者l。
        單精度的浮點數要加F或者f。

8:資料型別轉換(掌握)
(1)boolean型別不參與轉換
(2)預設轉換
A:從小到大
B:byte,short,char – int – long – float – double
C:byte,short,char之間不相互轉換,直接轉成int型別參與運算。
(3)強制轉換
A:從大到小
B:可能會有精度的損失,一般不建議這樣使用。
C:格式:
目標資料型別 變數名 = (目標資料型別) (被轉換的資料);
(4)思考題和麵試題:
A:下面兩種方式有區別嗎?

/*
思考題1:請問下面這個有沒有問題
double d = 12.345;
float f = d;

思考題2:看看下面兩個定義有沒有區別呢?
    float f1 = (float)12.345;
    float f2 = 12.345f;

    f1其實是通過一個double型別轉換過來的。
    而f2本身就是一個float型別。

*/
class DataTypeDemo5 {
public static void main(String[] args) {
//把double賦值給float,加了強制型別轉換
double d = 12.345;
float f = (float)d;

    //看看下面兩個定義有沒有區別呢?
    float f1 = (float)12.345;
    float f2 = 12.345F;
}

}

    B:下面的程式有問題嗎,如果有,在哪裡呢?

/*
面試題:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什麼呢?
b = b1 + b2;是有問題的。
因為變數相加,會首先看型別問題,最終把結果賦值的也會考慮型別問題。
常量相加,首先做加法,然後看結果是否在賦值的資料類型範圍內,如果不是,才報錯。
*/
class DataTypeDemo6 {
public static void main(String[] args) {
//定義了三個byte型別的變數,b1,b2,b3
//b1的值是3,b2的值是4,b沒有值
byte b1 = 3,b2 = 4,b;
//b = b1 + b2; //這個是型別提升,所以有問題
b = 3 + 4; //常量,先把結果計算出來,然後看是否在byte的範圍內,如果在就不報錯。
}
}

    C:下面的操作結果是什麼呢?
        byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?

class DataTypeDemo7 {
public static void main(String[] args) {
//因為byte的範圍是:-128到127。
//而130不在此範圍內,所以報錯。
//byte b = 130;
//我們可以使用強制型別轉換
byte b = (byte) 130;
//結果是多少呢?
System.out.println(b);
}
}
/*
分析過程:
我們要想知道結果是什麼,就應該知道是如何進行計算的。
而我們又知道計算機中資料的運算都是補碼進行的。
而要得到補碼,首先要計算出資料的二進位制。

    A:獲取130這個資料的二進位制。
        00000000 00000000 00000000 10000010
        這是130的原碼,也是反碼,還是補碼。
    B:做擷取操作,截成byte型別的了。
        10000010
        這個結果是補碼。
    C:已知補碼求原碼。
                符號位        數值位
        補碼:    1            0000010

        反碼:    1            0000001

        原碼:    1            1111110

*/

    D:字元參與運算
        是查詢ASCII裡面的值
        'a'        97
        'A'        65
        '0'        48

      //直接輸出一個字元
    System.out.println('a'); //a
    //輸出一個字元和一個整數做加法
    System.out.println('a'+1); //98
    E:字串參與運算

        字串資料和其他資料做+,結果是字串型別。
        這裡的+不是加法運算,而是字串連線符。

       System.out.println("hello"+'a'+1); //helloa1
       System.out.println('a'+1+"hello"); //98hello
       System.out.println("5+5="+5+5); //5+5=55
       System.out.println(5+5+"=5+5"); //10=5+5

 Java語言中的字元char可以儲存一箇中文漢字嗎?為什麼呢?
     可以。因為java語言中的字元佔用兩個位元組。 Java語言採用的是Unicode編碼。