Java入門第4節——數據類型和變量

系列連載文章,大家可以從我的專欄學習Java入門基礎知識,後續也會有更高級的Java特性、企業級開發框架,也有平常工作中的技術總結和分享,歡迎關注我的CDSN博客。同時可關注微信公衆號“Java開發之旅”,獲得更多技術資料! 

目錄

思考

數據類型and變量?

Java中的四類八種

byte類型

short類型

int類型

long類型

float類型

double類型

boolean類型

char類型

擴展——String類型

小結


思考

通過之前的知識,我們知道計算機執行程序其實就是一個運算的過程,那我們不妨想一想,我們在生活中是怎樣進行運算、思考的?

以我們去商店購物爲例,我們在挑選商品時,會在大腦中記憶這個商品的價格、保質期、生產廠商等信息,而且在購物行爲發生的前後不會忘記這些信息。因爲在大腦中記憶了這些信息,所以我們會通過判斷廠商、保質期來決定是否購買,同時在結賬時我們會計算這些商品的總價格……

上述例子中,拿結賬來說,我們只有知道商品的價格,才能在大腦中運算出需要支付多少錢,否則這是不現實的。

同樣,在Java程序中,我們如果要進行數據的運算,也要有一個東西能夠記錄這些數據,不管是臨時的或者永久的。那這個東西,專業一點叫做——變量

 

數據類型and變量?

我覺得大家現在肯定對變量有一個模糊的概念了。變量,就是在程序中存儲數據的,是我們和程序交互的中介,也是程序和底層計算機交互的中介。變量是可以運算的,是我們程序執行的基礎,存儲數據的值

在具體的展開變量之前,我們還需要理解數據類型

我們生活中充滿着各種數據,一個班級的學生人數、商品的價格、一張人民幣的真假、某個人的姓名……我們會將各種數據分類、標記,這將有利於我們對這些數據的處理,比如我們知道只有數字之間纔可以進行加減乘除,“ 1 x 2 = 2”但是“1 x 張三”是錯誤的運算……

那麼同樣,在Java當中描述數據,要聲明這個數據是什麼類型的,只有這樣Java才能檢驗你的代碼是否合法、數據之間的操作能否被執行。比如你想拿數字1和字符串“張三”相加,得到一個數字,這顯然是荒謬的

我舉的這四種數據,正好對應Java當中的四類數據類型:整型、浮點型、布爾型、字符型

比如人數只能是整數,所以對應Java當中的整型;價格往往帶有小數,對應Java當中的浮點型;人民幣要麼真、要麼假,沒有第三種情況,對應Java當中的布爾型;姓名往往由字符組成,對應Java當中的字符型。

再深入一步,將上述四類數據類型進一步劃分,又可衍生出八種數據類型,也是Java當中常說的——四類八種。

 

Java中的四類八種

先上圖:

 

上圖就是Java中所有的數據類型,其中基本類型是Java自帶的內置類型,除了這八種以外的所有數據類型都是引用類型,引用類型都是以對象的方式存在,將在以後的章節爲大家講解。

所有的基本類型,組成了四類八種:四類是指整型、浮點型、布爾型、字符型,八種是指byte、short、int、long、float、double、boolean、char

現在,我們就結合變量,將二者一塊學習。所以,我們先說一下變量的定義。

在Java當中通過以下語法定義變量並且賦值:

數據類型 變量名 = 值;

當然了,你也可以先聲明,然後通過 = 進行賦值:

數據類型 變量名;
變量名 = 值;

在Java當中,所有的變量必須先聲明並且賦值之後才能被程序使用,所以變量一定要經過上述兩種語法之一進行聲明(類的實例變量會有默認值,我們後面會講到,但是這裏並不會)

同時,Java對變量名有嚴格的要求:

變量名只能以字母、下劃線、$開頭,並且後面也只能跟字母、下劃線、$
變量名不能以數字開頭
變量名不得是Java保留字、關鍵字

Java中的保留字和關鍵字(圖片來源於網絡):

 

綜上,以下變量名是合法的:

number、count、student、$test、_name、student_name

以下變量名是不合法的:

1name、*test、public、int

byte類型

首先byte屬於整型,用於存儲整型的數字,而且它也是整型當中取值範圍最小的一個,它的取值範圍是-128 —— 127。byte類型佔8bit位、1字節,經常用於在大型數組、IO流、緩衝區中節約空間,因爲它只佔1字節,是int類型的四分之一。

byte類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        * 
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
        
        //第一種,定義的同時進行賦值
        byte firstByte = 10;
        System.out.println(firstByte);
​
        //第二種,先定義,再賦值
        byte secondByte;
        secondByte = 5;
        System.out.println(secondByte);
    }
​
}

注意,如果你採用先聲明、後賦值的方式,一定要保證在打印變量之前,變量有值。以下代碼將報錯:

我們上面說過,只要在使用之前有值即可,所以以下代碼也會正常運行:

public class Hello {
    
    public static void main(String[] args) {
        //先定義變量,不賦值
        byte firstByte;
​
        //中間可以進行任意操作,可以擁有任意行代碼
        byte secondByte = 10;
        System.out.println(secondByte);
​
        //保證在使用之前賦值即可
        firstByte = 5;
        System.out.println(firstByte);
    }
}

 而且變量名不能重複,至於可以重複的場景會在以後進行講解,以下代碼將報錯:

變量未聲明就使用,報錯:

 

而且變量的值,是可以無限次賦值的,新的值會覆蓋舊的值:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //輸出2
        byte firstByte = 2;
        System.out.println(firstByte);
        
        //重新賦值,輸出3
        firstByte = 3;
        System.out.println(firstByte);
        
        //新值覆蓋舊值,輸出6
        byte secondByte = 5;
        secondByte = 6;
        System.out.println(secondByte);
    }
}

 上面我們使用byte類型講解了變量的基本定義、使用規則,下面就不會這麼囉嗦了。

short類型

short類型叫做“短整型”,根據名稱也可以看出來它存不了太大的整數。它的取值範圍是-32768 —— 32767,佔16個bit位,2個字節。

short類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        short firstShort = 15;
        System.out.println(firstShort);
​
        //第二種,先定義,再賦值
        short secondShort;
        secondShort = 5;
        System.out.println(secondShort);
    }
}

int類型

int叫做整型,是比較常用的一個數據類型,它佔32位,4個字節,取值範圍是-2147483648 —— 2147483647。平常存儲年齡、人數、天數……一般都是用它。

int類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        int firstInt = 100;
        System.out.println(firstInt);
​
        //第二種,先定義,再賦值
        int secondInt;
        secondInt = 5;
        System.out.println(secondInt);
    }
}

long類型

long叫做“長整型”,它的取值範圍要比int更大,-9223372036854775808 —— 9223372036854775807,佔64bit位,8字節。

long類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        long firstLong = 100;
        System.out.println(firstLong);
​
        //第二種,先定義,再賦值
        long secondLong;
        secondLong = 5;
        System.out.println(secondLong);
    }
}

float類型

float類型是一種浮點型、小數,而且是單精度浮點,即小數點後只有一位。它佔32位、4字節。需要注意的是,在Java當中所有的小數,默認是double類型,所以要在賦值的時候加上小寫字母f,從而區分這是單精度浮點。

float類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        float firstFloat = 100.2f;
        System.out.println(firstFloat);
​
        //第二種,先定義,再賦值
        float secondFloat;
        secondFloat = 5.5f;
        System.out.println(secondFloat);
    }
}

double類型

double類型是雙精度浮點型,小數點後有兩位。它佔64bit位,8字節。float類型的小數需要用小寫字母f表示,double需要用小寫字母d表示,只不過Java中的小數默認是double類型的,所以一般我們省略d。

double類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        double firstDouble = 99.99;
        System.out.println(firstDouble);
​
        //第二種,先定義,再賦值
        double secondDouble;
        secondDouble = 66.66;
        System.out.println(secondDouble);
    }
}

boolean類型

boolean類型表示條件,真或假。它只有兩個值:true或false,true表示真,false表示假,經常用於在業務中判斷是否滿足條件,比如餘額是否充足、用戶是否是會員……這些都將在以後講到,此處大家只需要會聲明boolean類型的變量即可。

boolean類型的定義:

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值,真
        boolean firstBoolean = true;
        System.out.println(firstBoolean);
​
        //第二種,先定義,再賦值
        boolean secondBoolean;
        //賦值爲假
        secondBoolean = false;
        System.out.println(secondBoolean);
    }
}

char類型

char類型可以存儲任何單個的字符,包括中文字符。這個數據類型,反正在我平常的開發中基本沒有用到過。char類型有很奇妙的玩法,涉及到Unicode字符編碼,有時候會產生意想不到的運行效果,鑑於目前的知識進度,將在以後爲大家介紹。

與上面的幾個數據類型不同,char的賦值需要用單引號''引起來。

public class Hello {
​
    public static void main(String[] args) {
        /*
        *   變量的定義語法:
        *   數據類型 變量名 = 值;
        *
        *   或者:
        *   數據類型 變量名;
        *   變量名 = 值;
        * */
​
        //第一種,定義的同時進行賦值
        char firstChar = 'A';
        System.out.println(firstChar);
​
        //第二種,先定義,再賦值
        char secondChar;
        secondChar = '王';
        System.out.println(secondChar);
    }
}

 

擴展——String類型

上面的char類型,只能存儲一個字符,那如果我們想存儲一句話、一串字符呢?

這就需要用String,String是一個引用類型,因爲它是用class關鍵字修飾的一個Java類,我後面會專門用一篇文章來講String這個類在這裏大家會使用String存儲字符串即可

但是String類型的變量定義,和char類型幾乎一樣,只不過是用英文的雙引號括起來的:

public class Hello {
​
    public static void main(String[] args) {
        //聲明String類型的變量
        String firstString = "這是我的第一個String類型變量(其實是常量啦,後面會爲大家解釋~)";
        //打印
        System.out.println(firstString);
​
        /*
        *   上面的兩行代碼,等同於下面的一行代碼。
        *   大家還記得一開始的Hello World嗎?
        * 
        *   其實println()需要的就是一個Object對象,又因爲String是
        *   一個類,繼承了Object……算了這裏對於小白太高深了,以後再
        *   給大家解釋
        * */
        System.out.println("這是我的第一個String類型變量(其實是常量啦,後面會爲大家解釋~)");
    }
}

 

小結

以上就是我們今天的內容了,在下一節,將帶領大家學習Java中的運算符,以及數據類型之間的相互兼容、轉換,歡迎持續關注、轉發!大家也可以關注我的微信公衆號“Java開發之旅”,獲取更多Java學習資源!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章