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

1  Java 基本數據類型

變量就是申請內存來存儲值。也就是說,當建立變量的時候,須要在內存中申請空間。java

內存管理系統根據變量的類型爲變量分配存儲空間,分配的空間只能用來儲存該類型數據。api

所以,經過定義不一樣類型的變量,能夠在內存中儲存整數、小數或者字符。數組

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:spa

  • short 數據類型是 16 位、有符號的以二進制補碼錶示的整數
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 數據類型也能夠像 byte 那樣節省空間。一個short變量是int型變量所佔空間的二分之一;
  • 默認值是 0;
  • 例子: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:code

  • 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中使用轉義字符來表示特殊的字符。一個轉義字符以反斜槓(\)開始。

     問題:想要打印帶引號的字符串怎麼辦,就可使用反斜槓(\)後跟字符,這個反斜槓就是轉義字符。

 

\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的。加強數據的安全性。

相關文章
相關標籤/搜索