1. 程式人生 > >Java基本程式設計——基礎語法

Java基本程式設計——基礎語法

1.資料型別

1.1資料型別分為兩種:基本資料型別和引用資料型別

1.1—1 基本資料型別有8種:
 四種整型(byte,int , short , long)
 兩種浮點型(float,double)
 一種字元型(char)
1.1—2 引用資料型別 :類(class),介面(interface),陣列(array),String;

1.2 裝包與拆包

JAVA給簡單型別都提供了對應的類型別(包裝型別)

簡單型別 byte char short int long float double boolean
包裝型別 Byte Character Short Integer Long Float Double Boolean

以Interger為例說明:

public static void main(String[] args)	{
	Integer i = 100;
        Integer i2 = 100;
        System.out.println(i == i2); //true
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i3 == i4);//flase
        }

Integer與Integer比較的時候,由於直接賦值的時候會進行自動的裝箱,需要注意兩個問題,一個是-128<= x<=127的整數,將會直接快取在IntegerCache中,當賦值在這個區間的時候,不會建立新的Integer物件,而是從快取中獲取已經建立好的Integer物件。二是當大於這個範圍的時候,直接new Integer來建立Integer物件。
所以第一個會輸出true,第二個是錯誤的

integer中的裝包程式碼

 public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

在這裡插入圖片描述

2.變數與常量

2.1 變數的宣告和定義

1.宣告變數:
資料型別 變數名;
2.變數賦值:
變數=要賦的值;

變數命名規則:變數名只能是字母(a-z A-Z),數字(0-9),下劃線(_)的組合,並且之間不能包含空格,數字不能放在變數名首位;
變數名不能使用程式語言的保留字;

2.2變數分類

變數有:例項變數,靜態變數,區域性變數;
需要注意的是:區域性變數使用 必須初始化 ;
       靜態變數不屬於物件 ,只屬於類本身;
JVM執行時資料區: 例項變數 放在 其中的堆裡;
         靜態變數放在其中的方法區裡;
         區域性變數放在虛擬機器棧裡;

2.3 常量

利用關鍵字final指示常量時,表示這個常量只能被賦值一次,一旦賦值,無法更改。
常量編譯時 統一進行處理;
變數 在執行時,才能知道它的值;

3.運算子

3.1常用運算子優先順序

在這裡插入圖片描述
==注意的是:>>>運算子用填充高位,>>運算子用符號位填充高位,沒有<<<運算子。=
對於用strictfp關鍵詞標記的方法必須使用嚴格的浮點計算。

3.2以自增運算子為例

public static void main(String[] args) {
 int a=10;
 int b=10;
 int c=a++;
 int d=++a;
 System.out.println(c);
 System.out.println(d);
 }

上面中 輸出c的值為10;d的值為11;
因為c=a++ ,先把a的值賦給c,在執行a=a+1操作;
而d=++b;是先執行b=b+1操作,再把b的值賦值給c;

 public static void main(String[] args){
        int a=10;
        a=a++;
        System.out.println(a);
    }

這個輸出a的值為10;
第一步把常量10放入運算元棧中,
第二步,執行int a=10,把運算元棧頂的元素10放入區域性變量表索引的位置中,
第三步,執行a的值賦值給a,把區域性變量表索引的值載入到運算元棧中,
第四步,執行a++,把區域性變量表索引的元素值加1,變成了11,
然後把運算元中的棧頂元素10,放入區域性變量表索引的位置中a,即 把原來的11覆蓋成10了;
第五步,載入a的值到運算元棧中,用列印語句列印時,打印出來就為10。