天天看點

Java基本資料類型總結、類型轉換、常量的聲明規範,final關鍵字的用法

1  Java 基本資料類型

變量就是申請記憶體來存儲值。也就是說,當建立變量的時候,需要在記憶體中申請空間。

記憶體管理系統根據變量的類型為變量配置設定存儲空間,配置設定的空間隻能用來儲存該類型資料。

是以,通過定義不同類型的變量,可以在記憶體中儲存整數、小數或者字元。

Java 的兩大資料類型:

  • 内置資料類型
  • 引用資料類型

1.1  内置資料類型

Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字元類型,還有一種布爾型。

1.1.1  byte:

  • byte 資料類型是8位、有符号的,以二進制補碼表示的整數;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 預設值是 0;
  • byte 類型用在大型數組中節約空間,主要代替整數,因為 byte 變量占用的空間隻有 int 類型的四分之一;
  • 例子:byte a = 100,byte b = -50。

1.1.2  short:

  • short 資料類型是 16 位、有符号的以二進制補碼表示的整數
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 資料類型也可以像 byte 那樣節省空間。一個short變量是int型變量所占空間的二分之一;
  • 例子:short s = 1000,short r = -20000。

1.1.3  int:

  • int 資料類型是32位、有符号的以二進制補碼表示的整數;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型變量預設為 int 類型;
  • 預設值是 0 ;
  • 例子:int a = 100000, int b = -200000。

1.1.4  long:

  • long 資料類型是 64 位、有符号的以二進制補碼表示的整數;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 這種類型主要使用在需要比較大整數的系統上;
  • 預設值是 0L;
  • 例子: long a = 100000L,Long b = -200000L。

    "L"理論上不分大小寫,但是若寫成"l"容易與數字"1"混淆,不容易分辯。是以最好大寫。

1.1.5  float:

  • float 資料類型是單精度、32位、符合IEEE 754标準的浮點數;
  • float 在儲存大型浮點數組的時候可節省記憶體空間;
  • 預設值是 0.0f;
  • 浮點數不能用來表示精确的值,如貨币;
  • 例子:float f1 = 234.5f。

1.1.6  double:

  • double 資料類型是雙精度、64 位、符合IEEE 754标準的浮點數;
  • 浮點數的預設類型為double類型;
  • double類型同樣不能表示精确的值,如貨币;
  • 預設值是 0.0d;
  • 例子:double d1 = 123.4。

1.1.7  boolean:

  • boolean資料類型表示一位的資訊;
  • 隻有兩個取值:true 和 false;
  • 這種類型隻作為一種标志來記錄 true/false 情況;
  • 預設值是 false;
  • 例子:boolean one = true。

1.1.8 char:

    • char類型是一個單一的 16 位 Unicode 字元;
    • 最小值是 \u0000(即為0);
    • 最大值是 \uffff(即為65,535);
    • char 資料類型可以儲存任何字元;
    • 例子:char letter = 'A';。

2   引用類型

  • 在Java中,引用類型的變量非常類似于C/C++的指針。引用類型指向一個對象,指向對象的變量是引用變量。這些變量在聲明時被指定為一個特定的類型,比如 Employee、Puppy 等。變量一旦聲明後,類型就不能被改變了。
  • 對象、數組都是引用資料類型。
  • 所有引用類型的預設值都是null。
  • 一個引用變量可以用來引用任何與之相容的類型。
  • 例子:Site site = new Site("Runoob")。

3    常量的概述

常量是指在程式運作過程中其值不能改變的量。

3.1   常量類型

Java中常量的分類:

    整數常量 : 所有整數

    小數常量 : 所有小數

    布爾常量 : 隻有true和false

    字元常量 :使用’’引起來的單個字元

    字元串常量 :使用“”引起來的字元序列,“”  、“a” 、” ” 

    null常量 : 隻有一個值null

3.2  char 類型

char類型表示的是單個字元類型,任何資料使用單引号括起來的都是表示字元。字元隻能有一個字元,比如:普通的老百姓穿上軍裝就是軍人。       

    注意:特殊字元的轉義序列:轉義字元

   轉義字元的概述:

特殊字元使用”\”把其轉化成字元的本身輸出,那麼使用”\”的字元稱作為轉移字元。

需求:使用輸出語句,列印出帶引号的資訊例如輸出。

System.out.println("teacher said"java is fun"");編譯是無法正常通過的。文法有錯誤,編譯器讀到第二個引号就認為是字元串的結束,剩餘的不知道怎麼處理。如何解決這個問題:java中使用轉義字元來表示特殊的字元。一個轉義字元以反斜杠(\)開始。

     問題:想要列印帶引号的字元串怎麼辦,就可以使用反斜杠(\)後跟字元,這個反斜杠就是轉義字元。

Java基本資料類型總結、類型轉換、常量的聲明規範,final關鍵字的用法

\r 表示接受鍵盤輸入,相當于按下回車。

\n 表示換行。

\t  制表符,相當于Table鍵

\b 倒退鍵,相當于Back Space

\’  單引号

\’’ 雙引号

\\ 表示一個斜跨

上述問問題解決:System.out.println("teacher said\"java is fun\"");

注意:換行符就是另起一行,回車符就是回到一行的開頭,是以我們平時編寫檔案的回車符應該确切來說叫做回車換行符

Java中這8中基本資料類型都是小寫的。

 3.4  常量名的聲明規範:

多個單詞組成時,字母全部大寫,多個單詞之間使用_分隔(例:INTEGER_CACHE)

注意:隻是為了增加規範性、可讀性而做的一種約定,辨別符在定義的時候最               好見名知意,提高代碼閱讀性。

4   自動類型轉換

整型、實型(常量)、字元型資料可以混合運算。運算中,不同類型的資料先轉化為同一類型,然後進行運算。

轉換從低級到進階。

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double


      

資料類型轉換必須滿足如下規則:

  • 1. 不能對boolean類型進行類型轉換。
  • 2. 不能把對象類型轉換成不相關類的對象。
  • 3. 在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換。
  • 4. 轉換過程中可能導緻溢出或損失精度
  • 5. 浮點數到整數的轉換是通過舍棄小數得到,而不是四舍五入

自動類型轉換

必須滿足轉換前的資料類型的位數要低于轉換後的資料類型,例如: short資料類型的位數為16位,就可以自動轉換位數為32的int類型,同樣float資料類型的位數為32,可以自動轉換為64位的double類型。

強制類型轉換

  • 1. 條件是轉換的資料類型必須是相容的。
  • 2. 格式:(type)value type是要強制類型轉換後的資料類型 

隐含強制類型轉換

  • 1. 整數的預設類型是 int。
  • 2. 浮點型不存在這種情況,因為在定義 float 類型時必須在數字後面跟上 F 或者 f。

5    final關鍵字

   1:定義靜态方法求圓的面積

   2:定義靜态方法求圓的周長

   3:發現方法中有重複的代碼,就是PI,圓周率。

      1:如果需要提高計算精度,就需要修改每個方法中圓周率。

   4:描述一個變量

      1:方法都是靜态的,靜态隻能通路靜态,是以變量也定義為靜态的。

public static double PI=3.14;

          1:如果定義為public後,新的問題,類名.PI=300; 改變了PI的值。

2:修改為private,修改為private後進行了封裝,需要getset公共通路方法。

          3:現有的知識不能解決這樣的問題了。可以使用final

      

5.1 使用final

        1:final關鍵字主要用于修飾類、類成員、方法、以及方法的形參。

       2:final修飾成員屬性:

          1:說明該成員屬性是常量,不能被修改。

             public static final double PI=3.14;

                 1:public :通路權限最大

                 2:static :記憶體中隻有一份

                 3:final  :是一個常量

                 4:常量名大寫

                 5:必須初指派。

          2:使用類名.成員。修改該成員的值,報錯。--常量不能被修改

                1:基本資料類型,final使值不變

                2:對象引用,final使其引用恒定不變,無法讓其指向一個新的對象,但是對象自身卻可以被修改。

                3:該關鍵字一般和static關鍵字結合使用

                     1:常量可以優先加載,不必等到建立對象的時候再初始化。

               4:final和static可以互換位置

               5:常量一般被修飾為final

          3:fianl修飾類:

               1:該類是最終類,不能被繼承。

                    1:将父類加final修飾,子類繼承,就會報錯。

               2:檢視api文檔發現String類是final的。Integer類也是final的

                    1:為了防止代碼功能被重寫

                    2:該類沒有必要進行擴充

          4:final修飾方法:

                   1:該方法是最終方法,不能被重寫

                   2:當一個類被繼承,那麼所有的非私有函數都将被繼承,如果函數不想被子類繼承并重寫可以将該函數final修飾

                   3:當一個類中的函數都被修飾為final時,可以将類定義為final的。

          5:final關鍵字修飾形參

                   1:當形參被修飾為final,那麼該形參所屬的方法中不能被篡改。

                   2: 項目中主要用于一些隻用來周遊未知資料的函數。将未知變量聲明為final的。增強資料的安全性。

作者

:泰鬥賢若如

微信公衆号

:見賢思程式設計

Github

:https://github.com/zyx110

有事微信

:zyxt1637039050

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利。

我不能保證我所說的都是對的,但我能保證每一篇都是用心去寫的,我始終認同: “

分享的越多,你的價值增值越大

”,我們一同在分享中進步,在分享中成長,

越努力越幸運

。再分享一句話“

十年前你是誰,一年前你是誰,甚至昨天你是誰,都不重要。重要的是,今天你是誰,以及明天你将成為誰

。”

人生赢在轉折處,改變從現在開始!

支援我的朋友們記得點波

推薦

哦,您的肯定就是我前進的動力。