變量就是申請內存來存儲值。也就是說,當建立變量的時候,須要在內存中申請空間。java
內存管理系統根據變量的類型爲變量分配存儲空間,分配的空間只能用來儲存該類型數據。api
所以,經過定義不一樣類型的變量,能夠在內存中儲存整數、小數或者字符。數組
Java 的兩大數據類型:安全
Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。函數
1.1.1 byte:大數據
1.1.2 short:spa
1.1.3 int:指針
1.1.4 long:code
1.1.5 float:對象
1.1.6 double:
1.1.7 boolean:
1.1.8 char:
常量是指在程序運行過程當中其值不能改變的量。
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)
注意:只是爲了增長規範性、可讀性而作的一種約定,標識符在定義的時候最 好見名知意,提升代碼閱讀性。
整型、實型(常量)、字符型數據能夠混合運算。運算中,不一樣類型的數據先轉化爲同一類型,而後進行運算。
轉換從低級到高級。
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
數據類型轉換必須知足以下規則:
1. 不能對boolean類型進行類型轉換。
2. 不能把對象類型轉換成不相關類的對象。
3. 在把容量大的類型轉換爲容量小的類型時必須使用強制類型轉換。
4. 轉換過程當中可能致使溢出或損失精度
必須知足轉換前的數據類型的位數要低於轉換後的數據類型,例如: short數據類型的位數爲16位,就能夠自動轉換位數爲32的int類型,一樣float數據類型的位數爲32,能夠自動轉換爲64位的double類型。
1. 條件是轉換的數據類型必須是兼容的。
2. 格式:(type)value type是要強制類型轉換後的數據類型
1. 整數的默認類型是 int。
2. 浮點型不存在這種狀況,由於在定義 float 類型時必須在數字後面跟上 F 或者 f。
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的。加強數據的安全性。