1. 程式人生 > 其它 >JAVASE基礎01

JAVASE基礎01

typora-copy-images-to: ./

第一章:java概念

java概述

  • java語言的特點:

    1.面向物件;

    2.簡單性;

    3.跨平臺;

  • 計算機執行機制:

    編譯執行:將原始檔編譯成與平臺相關的機器碼檔案,一次編譯多次執行;

    特點:執行效率高,不可跨平臺;

    解釋執行:將原始檔交給平臺獨有的直譯器進行解釋;

    特點:執行效率低,可以跨平臺;
  • java執行機制:

    先編譯再解析:對java原始檔進行編譯,將原始檔編譯成位元組碼檔案(.class),再對位元組碼檔案進行解析;

java環境搭建

  • 下載jdk1.8

  • 配置環境變數:

    • 設定JAVA_HOME
    image-20201107104609693
    • 設定CLASSPATH
    image-20201107104630431
    • 設定path
      image-20201107104749936

java的第一個HelloWrold

  • main方法

    public static void main(String[] args) {
        
    }
    
  • HelloWorld程式:

    public static void main(String[] args) {
        //輸出語句
        System.out.println("Hello,World!");
    }
    

類的闡述

  • 同一個原始檔可以定義多個類

  • 每當編譯時,都會產生獨立的.class檔案

  • 一個類中只有一個主方法

  • public修飾的類為公開類,每個原始檔中有且僅有一個public修飾的類

package

  • 作用:用於管理位元組碼檔案

  • 位置:必須!放在原始檔的第一行

  • 編譯時:帶包編譯,如:javac -d . 原始檔.java

  • 執行時,帶包執行,如:java 包名.原始檔名;

程式碼註釋

  • 單行註釋://

  • 多行註釋:/* */
  • 文件註釋:/** */(一般對原始檔進行說明)

標記符命名規範

  • 由字母、數字、_、$、組成,但是數字不能開頭;

  • 關鍵字、保留字(在java中 ,在未來的jdk版本中將會使用到的關鍵字單詞)不能作為命名規則;

第二章:變數

概念:

  • 一塊儲存空間,是儲存資料的基本單元
  • 作用:用於儲存資料;

變數定義的三種方式:

  • 先宣告再賦值;
  • 宣告並賦值;
  • 多個同類型的變數同時宣告並賦值;

java中的資料型別

  • 基本資料型別:

    • 整型:byte(1位元組)、short(2位元組)、int(4位元組)(預設)、long(8位元組)
    • 浮點:float(4位元組)、double(8位元組)(預設)
    • 布林型:boolean;
    • 字元型:char;
  • 引用資料型別:

    • 一般為物件、類、(首字母大寫的資料型別)如:String、Scanner;
  • 轉義字元:

    image-20201107104848227
  • 注意:一般在輸出語句中輸出字串時,在“ ”中使用,如:

    System.out.println("Hello \n World");
    
    //輸出結果:
    Hello 
     World
    

型別轉換:

  • 自動型別轉換:

    • 兩種型別相互相容;
    • 目標型別大於源型別;
  • 強制型別轉換:

    • 兩種型別相互相容;
    • 目標型別大於源型別;

算符優先順序:

  • 算符優先順序

型別提升:

  • 自動型別提升:

    • 當有兩種一起資料時,有double型別則自動提升為double型別;
    • 當沒有double型別,有float型別,結果自動提升為float型別;
    • 當沒有float型別,有long型別,結果自動提升為long型別;
    • 當沒有long型別時,則自動提升為int型別;
  • 注意:當任何型別與String+時,為拼接符,型別自動提升為String型別;

控制檯輸入:

  • 宣告Scanner物件:Scanner 引用名 = new Scanner(System.in);

  • 匯入Scanner物件lang包:import java.util.Scanner;

第三章:選擇結構與分支結構

if判斷選擇結構:

  • if語法:

    • //判斷條件(布林表示式)
      if(score<=100&&score>=0) {
      	System.out.println("你沒有滿分,成績為:"+score);//執行操作;
      }
      
      
    • 執行流程:
      • 對布林表示式進行判斷
      • 結果為true則執行操作;
      • 結果false則繼續執行if結構外的程式碼塊操作;
  • if(){}else{}語法:

    • //if判斷條件(布林表示式)
      if(money>=1000) {
      	System.out.println("請乘坐曹操專車!");//為true則執行操作
      }else {//else,不為if則為else
      	System.out.println("請乘坐滴滴專車!");//執行操作
      }
      
    • 執行流程
      • 對布林表示式進行判斷;
      • 結果為true,則對if程式碼塊進行操作,則退出整個if結果;
      • 結果為false,對else程式碼塊進行操作,則退出整個if結果;
  • 多重if選擇結構:

    • 語法:
      • if(布林表示式一){
        //程式碼塊一:
      • }else if(布林表示式二){

        //程式碼塊二

      • }else if(布林表示式三){

        //程式碼塊三

      • }

    • 執行流程:
      • 對布林表示式一進行判斷;
      • 結果true,則執行程式碼塊一,執行完成,直接退出整個if結構,不再對後續else結構進行判斷
      • 結果為false,再對布林表示式二進行判斷;
      • 依次進行;
      • 注意:當其中有一個的布林表示式判斷為true,則不再對其他的結構進行判斷,而是直接退出整個if選擇結構;
  • 巢狀if結構:

    • 語法:
      • //外層if判斷條件(布林表示式)		
        if(money>=100) {
            //內層if判斷條件()
        	if(money>=1000) {
                //內層if判斷為true,執行內層if程式碼塊
        		System.out.println("請乘坐曹操專車!");
        	}else {
                //內層if判斷條件為false,執行內層else程式碼塊;
        		System.out.println("請乘坐滴滴專車!");
        	}
        }else {//外層if天劍判斷為false,則執行外層else結構
        	System.out.println("");//外層else程式碼塊
        }
        
    • 執行過程:
      • 當外層if條件判斷為true,則執行內層if選擇結構;

選擇結構:

  • 語法:

    • //switch中存放(變數/表示式)
      switch(num) {
          //事件1,當滿足條件,num為1時,則執行case 1程式碼塊; 
      	case 1:
      		System.out.println("星期一");
              //結束(跳出)case 1:語句
      		break;
              
          //事件2,當滿足條件,num為2時,則執行case 2程式碼塊;
      	case 2:
      		System.out.println("星期二");
      		break;
              
          //事件3,當滿足條件,num為3時,則執行case 3程式碼塊;
      	case 3:
      		System.out.println("星期三");
      		break;
              
          //事件4,當滿足條件,num為4時,則執行case4程式碼塊;
      	case 4:
      		System.out.println("星期四");
              break;
              
          //事件5,當滿足條件,num為5時,則執行case 5程式碼塊;
      	case 5:
      		System.out.println("星期五");
      		break;
              
          //事件6,當滿足條件,num為6時,則執行case 6程式碼塊;
      	case 6:
      		System.out.println("星期六");
      		break;
              
          //事件7,當滿足條件,num為,時,則執行case 7程式碼塊;
      	case 7:
      		System.out.println("星期天");
      		break;
              
          //當變數num都不滿足以上事件時,則執行default語句;
      	default:
      		System.out.println("輸入數字不正確!");
       }
      
    • 注意:break用於跳出整個switch分支結構;

區域性變數

  • 宣告方法內部的變數,必須先賦值在使用;

  • 作用範圍:距離變數最近的{}內有用;

  • 多個變數作用於用一個{}裡時,變數名不能!相同;

第四章:迴圈結構

迴圈流程圖:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-e5S8tvlQ-1607576192866)(image-20201107101511098.png)]

while迴圈

  • 語法:

    • //判斷條件(布林表示式)
      while(i<=100) {
      	//迴圈操作
      	System.out.println("第"+i+"遍:"+"Hello,World!");
      			
      	//迭代部分
      	i++;
      }
      
    • 執行流程:
      • 先對布林表示式進行操作;
      • 判斷結果為true,進行迴圈操作;
      • 接著進行迭代操作,直到判斷條件不滿足,退出迴圈;

do{}while()迴圈

  • 語法

    • do {
      	//先進行一次do操作
          System.out.println("繼續修改你的測試題");
      
          System.out.println("請老師輸入評語:");
          s = input.next();
      //while迴圈操作,當判斷條件不滿足,退出do while迴圈;
      }while(s.equals("不合格"));
      //不滿足輸出結果!
      System.out.println("成績合格!");
      
    • 執行流程
      • 首先進行一次do操作,再對while中的布林表示式進行判斷;
      • 為true繼續的操作;
      • 為false則退出整個do迴圈,輸出語句;

do while 與 while的異同

  • 相同點:

    • 適用場景:適用重複次數不確定時;
  • 不同點:

    • 語法不同;
    • while為:判斷條件滿足則進行操作;
      do while:無論如何都會進行一次;
    • while執行次數:0~n次;
      do while執行次數:1~n次;

for迴圈

  • 語法

    • //迴圈條件(布林表示式)
      for(int i=1;i<=5;i++) {
          //迴圈操作
          System.out.println("請輸入你的第"+i+"門成績:");
          double score=input.nextDouble();
          //將每門成績相加
          sum=sum+score;
      }
      
    • 執行過程:
      • 對於int i = 1,初始部分僅僅執行一次;
      • 再對布林表示式進行判斷,結果為true,進行迴圈操作;
      • 再進行迭代部分;
      • 結果為false,則退出整個for迴圈;

break語句

  • 終止、退出最近的{}中的整個迴圈或結構;

continue語句

  • 終止本次的迴圈,繼續進行下次對的迴圈操作;

巢狀迴圈

  • 語句

    • for (int i = 0; i < 3; i++) {
          for (int j = 0; j < 5; j++) {
              System.out.print("*");
          }
          System.out.println("");
      }
      
    • 執行過程
      • 對外層的for迴圈中的條件進行操作,滿足則進入內層for迴圈;
      • 對內層中的for迴圈條件進行判斷,滿足則退出內層迴圈 ;

為true,進行迴圈操作;

* ###### 再進行迭代部分;

* ###### 結果為false,則退出整個for迴圈;

break語句

  • 終止、退出最近的{}中的整個迴圈或結構;

continue語句

  • 終止本次的迴圈,繼續進行下次對的迴圈操作;

巢狀迴圈

  • 語句

    • for (int i = 0; i < 3; i++) {
          for (int j = 0; j < 5; j++) {
              System.out.print("*");
          }
          System.out.println("");
      }
      
    • 執行過程
      • 對外層的for迴圈中的條件進行操作,滿足則進入內層for迴圈;
      • 對內層中的for迴圈條件進行判斷,滿足則退出內層迴圈 ;
      • 再對外層的迭代部分進行操作,滿足條件繼續進入內層迴圈;