Java基礎語法

整理一些以前學習Java基礎語法的部分知識點。java

常量

常量:是指在Java程序中固定不變的數據。shell

分類

類型 含義 數據舉例
整數常量 全部的整數 0,1,567,-9
小數常量 全部的小數 0.0, -0.1, 2.55
字符常量 單引號引發來,只能寫一個字符,必須有內容 'a' , ' ', '好'
字符串常量 雙引號引發來,能夠寫多個字符,也能夠不寫 "A" ,"Hello" ,"你好" ,""
布爾常量 只有兩個值(流程控制中講解) true , false
空常量 只有一個值(引用數據類型中講解) null

變量

變量:常量是固定不變的數據,那麼在程序中能夠變化的量稱爲變量。數組

數據類型

數據類型分類

Java的數據類型分爲兩大類:工具

  • 基本數據類型:包括 整數浮點數字符布爾
  • 引用數據類型:包括 數組接口

基本數據類型

四類八種基本數據類型:學習

數據類型 關鍵字 內存佔用 取值範圍
字節型 byte 1個字節 -128~127
短整型 short 2個字節 -32768~32767
整型 int(默認) 4個字節 -2的31次方~2的31次方-1
長整型 long 8個字節 -2的63次方~2的63次方-1
單精度浮點數 float 4個字節 1.4013E-45~3.4028E+38
雙精度浮點數 double(默認) 8個字節 4.9E-324~1.7977E+308
字符型 char 2個字節 0-65535
布爾類型 boolean 1個字節 true,false

Java中的默認類型:整數類型是 int 、浮點類型是 double命令行

數據類型轉換

Java程序中要求參與的計算的數據,必需要保證數據類型的一致性,若是數據類型不一致將發生類型的轉換。code

自動轉換

自動轉換:將 取值範圍小的類型 自動提高爲 取值範圍大的類型 。blog

轉換規則

範圍小的類型向範圍大的類型提高, byte、short、char 運算時直接提高爲 int 。索引

byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

強制轉換

強制類型轉換:將 取值範圍大的類型 強制轉換成 取值範圍小的類型 。接口

  • 浮點轉成整數,直接取消小數點,可能形成數據損失精度。
  • int 強制轉成 short 砍掉2個字節,可能形成數據丟失。

三元運算符

  • 三元運算符格式:

    數據類型 變量名 = 布爾類型表達式?結果1:結果2

 

  • 三元運算符計算方式:
    • 布爾類型表達式結果是true,三元運算符總體結果爲結果1,賦值給變量。
    • 布爾類型表達式結果是false,三元運算符總體結果爲結果2,賦值給變量。

JShell腳本工具

JShell腳本工具是JDK9的新特性

何時會用到 JShell 工具呢,當咱們編寫的代碼很是少的時候,而又不肯意編寫類,main方法,也不肯意去編譯和運 行,這個時候可使用JShell工具。

啓動JShell工具,在DOS命令行直接輸入JShell命令。

接下來能夠編寫Java代碼,無需寫類和方法,直接寫方法中的代碼便可,同時無需編譯和運行,直接回車便可

+=符號的擴展

下面的程序有問題嗎?

public static void main(String[] args){   
    short s = 1;   
    s+=1;   
    System.out.println(s); 
}

分析: s += 1 邏輯上看做是 s = s + 1 計算結果被提高爲int類型,再向short類型賦值時發生錯誤,由於不能將取值範圍 大的類型賦值到取值範圍小的類型。可是, s=s+1進行兩次運算+= 是一個運算符,只運算一次,並帶有強制轉換的特色, 也就是說 s += 1 就是 s = (short)(s + 1) ,所以程序沒有問題編譯經過,運行結果是2.

常量和變量的運算

下面的程序有問題嗎?

public static void main(String[] args{   
    byte b1=1;   
    byte b2=2;   
    byte b3=1 + 2;   
    byte b4=b1 + b2;   
    System.out.println(b3);   
    System.out.println(b4); 
}

分析: b3 = 1 + 212 是常量,爲固定不變的數據,在編譯的時候(編譯器javac),已經肯定了 1+2 的結果並沒 有超過byte類型的取值範圍,能夠賦值給變量 b3 ,所以 b3 = 1 + 2 是正確的。

反之, b4 = b2 + b3b2b3 是變量,變量的值是可能變化的,在編譯的時候,編譯器javac不肯定b2+b3的結果是什 麼,所以會將結果以int類型進行處理,因此int類型不能賦值給byte類型,所以編譯失敗。

方法重載

方法重載:指在同一個類中,容許存在一個以上的同名方法,只要它們的參數列表不一樣便可,與修飾符和返 回值類型無關。

  • 參數列表:個數不一樣,數據類型不一樣,順序不一樣。

  • 重載方法調用:JVM經過方法的參數列表,調用不一樣的方法。

數組

數組概念: 數組就是存儲數據長度固定的容器,保證多個數據的數據類型要一致。

數組的定義

方式一

  • 格式:

     數組存儲的數據類型[] 數組名字 = new 數組存儲的數據類型[長度];
  • 舉例:

    int[] arr = new int[3];

方式二

  • 格式:

    數據類型[] 數組名 = new 數據類型[]{元素1,元素2,元素3...};
  • 舉例:

    int[] arr = new int[]{1,2,3,4,5};

方式三

  • 格式:

    數據類型[] 數組名 = {元素1,元素2,元素3...};
  • 舉例:

    int[] arr = {1,2,3,4,5};

Java虛擬機的內存劃分

爲了提升運算效率,就對空間進行了不一樣區域的劃分,由於每一片區域都有特定的處理數據方式和內存管理方式。

一個數組內存圖

public static void main(String[] args) {    
    int[] arr = new int[3];       
    System.out.println(arr);//[I@5f150435    
}  

以上方法執行,輸出的結果是[I@5f150435,是數組在內存中的地址。new出來的內容,都是在堆 內存中存儲的,而方法中的變量arr保存的是數組的地址。

輸出arr[0],就會輸出arr保存的內存地址中數組中0索引上的元素

數組反轉

  • 實現思想: 數組最遠端的元素互換位置。
    • 實現反轉,就須要將數組最遠端元素位置交換
    • 定義兩個變量,保存數組的最小索引和最大索引
    • 兩個索引上的元素交換位置
    • 最小索引++,最大索引--,再次交換位置
    • 最小索引超過了最大索引,數組反轉操做結束

      public static void main(String[] args) {
            int[] arr = {1,2,3,4,5};
            for(int min = 0, max = arr.length - 1; min <= max; min++, max--){
                int temp = arr[min];
                arr[min] = arr[max];
                arr[max] = temp;
            }
            for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
        }
相關文章
相關標籤/搜索