Java基礎語法(上)

整體思維導圖

標識符:對各種變量,方法和類等要素命名時候的字符序列稱爲標識符Java標識符命名規則:

  • 標識符由字母、下劃線、美元符或數字組成
  • 標識符應以字母、下劃線、美元符開頭
  • Java標識符大小寫敏感、長度無限制

關鍵字:在java中一些賦以特定含義,用來專門用途的字符串稱爲關鍵字,所有的java關鍵字都是小寫英文,goto和const是java的關鍵保留字。

Java常量:常量值用字符串表示,區分爲不同的數據類型

  • 整型常量:12
  • 實型常量:3.12
  • 字符常量:‘a’
  • 邏輯常量:true、false
  • 字符串常量:"hello"
  • 注意:注意區分字符常量和字符串常量

             常量這個名詞還會用到另外其他語境表示值不可不可變的變量

Java變量:是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域;每個變量都屬於特殊的數據類型,在使用前必須對其進行申明

  • 如:int a=100;
  • 從本質講,變量其實是內存中的一小塊區域,使用變量名來訪問這塊區域,因此每一個變量使用前必須要先申明,然後必須進行賦值才能使用。

程序的執行過程:

Java變量分類:

  • 按聲明的位置劃分

       局部變量:方法或語句塊內部定義的變量

       成員變量:方法外部、類的內部定義的變量

       注意:類外面(與類對應的大括號外面)不能有變量的聲明

  • 按數據類型劃分

      基本數據類型變量

      引用數據類型變量

作用域:其實就是大括號,一個變量只有在這個大括號裏面起作用,一旦離開了這個大括號就沒有人認識你了。

Java數據類型的劃分

Java基本數據類型(48種)

  • 邏輯型—boolean
  • 文本型—char
  • 整數型—byte,short,int,long
  • 浮點數型—float,double

邏輯型Boolean適用於邏輯運算,一般用於流程控制,他只允許取值爲true或false,不可以用其他代替,這裏不同於C語言

字符型char:用來表示通常意義上的“字符”,字符常量爲用單引號括起萊的帶個字符,java中還允許使用轉義字符‘\’來講其後面的字符轉變爲其他的含義,如:char c='\n'代表換行符

整數類型:java中個整數類型有固定的表數範圍和字符長度,其不受具體操作系統的影響,以保證java程序的可移植性。注意:java中整型常量默認爲int型,聲明long型常量可以後面加L

浮點類型:與整數類型類似,java浮點類型有固定的表數範圍和字段長度,不受平臺的影響,java浮點類型常量默認爲double型,如要聲明一個常量爲float型,則必須在數字後面加F

基本數據類型的轉換

  • Boolean類型不可用轉爲其他類型的數據
  • 整型,字符型,浮點型的數據在混合運算中可以相互轉換,轉換的時候遵循如下原則:
  • 容量小的類型自動轉換爲容量大的數據類型,按照容量大小排序爲:
    • byte,shout,char->int ->long->float->double
    • byte,shout,char之間不會相互轉換,他們在計算的時候首先轉換爲int類型
  • 容量大的數據類型轉換爲容量小的數據類型的時候,要加上強制轉換符,但是可能造成精度降低或溢出,使用時候要格外小心
  • 有多個數據類型數據進行混合運算的時候,系統首先自動將所有的數據轉換成容量最大的那個數據類型,然後再進行計算

小細節

問題一:byte類型表示的範圍是127~-128,那麼如果我們超出了這個範圍會怎麼樣呢?(看代碼示例)

public class TestConVert{
	public static void main(String arg[]){
		byte b1=100;
		byte b2=29;
		byte b3=(byte)(b1+b2);
		System.out.println(b3);
	}
}

編譯結果:

問題二:上面如果超過這個範圍代碼將無法編譯,下面我們就超過這個範圍看會怎麼樣?

public class TestConVert{
	public static void main(String arg[]){
		byte b1=100;
		byte b2=90;
		byte b3=(byte)(b1+b2);
		System.out.println(b3);
	}
}

執行結果:

總結:出現上面的問題的原因是什麼呢?
解答:因爲byte的範圍是-128~127,如果我們要表達的數超過127,java中溢出的數就會回到最小值-128開始,看圖(會更加清晰)

public class TestConVert{
	public static void main(String arg[]){
		byte b1=100;
		byte b2=29;
		byte b3=(byte)(b1+b2);
		System.out.println(b3);
	}
}

執行結果: 

當然還有浮點數的,這個有點複雜,感興趣的可以參考這個:https://segmentfault.com/a/1190000005015151

發佈了141 篇原創文章 · 獲贊 72 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章