Java基礎語法(總結篇)

来源:https://www.cnblogs.com/xiaozhongfeixiang/archive/2019/09/15/11502971.html
-Advertisement-
Play Games

關鍵字&標識符 關鍵字的概念與特征 概念:Java關鍵字是事先定義好的對Java的編譯器有特殊的意義,他們用來表示一種數據類型,或者表示程式的結構等,關鍵字不能用作變數名、方法名、類名、包名和參數。 特征: 完全小寫 在增強版記事本中(例如Notepad++)有特殊顏色 標識符的概念與規則 凡是可以 ...


關鍵字&標識符

關鍵字的概念與特征

概念:Java關鍵字是事先定義好的對Java的編譯器有特殊的意義,他們用來表示一種數據類型,或者表示程式的結構等,關鍵字不能用作變數名、方法名、類名、包名和參數。

特征:

  • 完全小寫
  • 在增強版記事本中(例如Notepad++)有特殊顏色

標識符的概念與規則

  1.   什麼是標識符?

    凡是可以由自己命名的地方都稱為標識符.

    例: 項目名 ,包名 ,類名 .方法名

        2.   命名規範

    ①    不可使用java關鍵字和保留字,但是可以包含關鍵字和保留字.

    ②    可以使用26個字母大小寫,數字0-9,$和_.

    ③    可以使用數字,但不可放在首位.

    ④    長度理論上沒有限制,但命名最好能反映出其作用,遵循”駝峰形式”,見命知意

    ⑤    包名全部小寫,類名全部大駝峰式

    ⑥    變數名、方法名首字母小寫,如果名稱由多個單片語成,每個單詞的首字母都要大寫

              ⑦ 常量(特指被 final 修飾的常量)名全部大寫,如果是單個字母,需要大寫,如果是多個單詞,需要用下劃線分開。並且都大寫

    例:寫一個ajax的項目實例,

    項目名:ajaxtest        包名:com.liu.ajax       類名:AjaxDemo

常量&變數

常量的概念:在程式運行期間。固定不變的量。

常量的分類:

  1. 字元常量:凡是用單引號引起來的單個字元,就做字元常量。例如:、‘b'、9’、‘中
  2. 字元串常量:凡是用雙引號引起來的部分,叫做字元串常量。例如:"abc"、"Hello”、“123"
  3. 整數常量:直接寫上的數字,沒有小數點。例如:100、200、0、-250

  4. 浮點數常量:直接寫上的數字,有小數點。例如:2.5、-3.14、0.0 

  5. 布爾常量:只有兩種取值 true  |  false

基本數據類型:

 

           類型                                                                                                 位元組數                       二進位位數

 

          byte (位元組型)                                                                                   1                                   8

 

          short(短整型)                         char    (字元型)                             2                                  16

 

          int    (整型)                            float    (單精度浮點數)                   4                                  32

 

         long  (長整型)                        double(雙精度浮點數)                   8                                   64

註意事項:

  • Java中的預設類型:整數類型是 int 、浮點類型是double
  • 數據範圍與位元組數不一定相關,例如float數據範圍比 long 更加廣泛,但是float是4位元組,1ong是8位元組。
  • 浮點型可能只是一個近似值,並非精確的值。
  • 浮點數當中預設類型是double。如果一定要使用float類型,需要加上一個尾碼F。
  • 字元串不是基本類型,而是引用類型
  • 如果是整數,預設為int類型,如果一定要使用long類型,需要加上一個尾碼L。推薦使用大寫字母尾碼。

 

 變數: 程式運行期間,內容可以改變的量。

創建一個變數並且使用的格式:

 

  數據類型  變數名稱; //創建了一個變數

  變數名稱 = 數據值;  //賦值,將右邊的數據值,賦值交給左邊的變數

一步到位的格式:
  數據類型  變數名稱 = 數據值; //在創建一個變數的同時,立刻放入指定的數據值

 註意事項:

  1.如果創建多個變數,那麼變數之間的名稱不可以重覆。

   2.對於float和long類型來說,字母尾碼F 和 L不要丟掉。

   3.沒有進行賦值的變數,不能直接使用;一定要賦值之後,才能使用。

 

作用域 : 從定義變數的一行開始,一直到直接所屬的大括弧結束。 

 

數據類型轉換

當效據類型不一樣時,就會發生數據類型轉換

自動類型轉換(隱式)

  1.特點:代碼不需要進行特殊處理,自動完成

  2.規則:數據範圍從小到大

long num1 = 100;
System.out.println(num1)

 

 // 左邊是long類型,右邊是預設的int類型,左右不一樣

 // int-->long,符合了數據範圍從小到大的要求

 

強制類型轉換(顯式)

   1.特點:代碼需要進行特殊的格式處理,不能自動完成

   2.格式:範圍小的類型範圍小的變數名=(範圍小的類型)原本範圍大的數據

 

int num=(int)100L;
System.out.print1n(num);

 

 //左邊是int類型,右邊是long類型,不一樣

 //格式範圍小的類型  範圍小的變數名 =(範圍小的類型) 原本範圍大的數據 ;

註意事項:

  1.強制類型轉換一般不推薦使用,因為有可能發生精度損失、數據溢出。

  2.byte / short / char這三種類型都可以發生數學運算,例如加法“+”.

  3.byte/short/char這三種類型在運算的時候,都會被首先向上提升成為int類型,然後再計算。符合ASCII編碼表。 

例3:
byte num4 = 40;//註意!右側的數值大小不能超過左側的類型範圍
byte num5 = 50//當byte + byte,會先向上提升稱為int類型,所以結果就是--> int + int  ,返回類型也應該是int
int result1 = num4 + num5;
System.out.println(result1);
//90

 

 運算符 :進行特定操作的符號。例如:+

 表達式:用運算符連起來的式子叫做表達式。例如:20+5 。   又例如:a+b

 四則運算:加+      減 -      乘 *      除  /

 

  取模(取餘數):%

 只有對於整數的除法來說,取模運算符才有餘數的意義。

 

int x = 10;
int y = 3;
int resultl = x / y ;
System.out.println(result1);//3
int result2 = x % y ;
System.out.println(result2);//餘數,模,1

 

 算術運算符

 

 

 

 

 四則運算當中的加號“+”有常見的三種用法:

  1.對於數值來說,+ 就是加法。

  2.對於字元char類型來說,在計算之前,char會被提升成為int,然後再計算。
  char類型字元,和int類型數字,之間的對照關係表:ASCII、Unicode

  3.對於字元串String來說,+ 代表字元串連接操作。   () 小括弧的優先順序最高

例3:
String str = "Java";

//
String + int --> String
System.out.println(str2+20);
//Java20

 

 

自增運算符:++

  例如:   a++;   先使用a值,再執行a = a + 1 ; 
int a = 1;
int b = 2;
b = a++;  //在這一步,a的值還沒有改變,所以是將a=1的值賦給了b,然後再進行改變。
System.out.println("a:"+a); //a:2
System.out.println("b:"+b); //b:1

 

自減運算符:- -

  例如:   ++a; 先執行a = a + 1 ; 再使用a值。
int a = 1;
int b = 2;
b = --a;
System.out.println("a:"+a);
System.out.println("b:"+b);

 

a++ : 在變數值被使用之後才增加的值

++a : 在變數值在被使用之前增加它的值

- - 操作符的工作原理與此相同,只是它所執行的是減值操作而非增值操作。

 賦值運算符

賦值運算符是指為變數或常量指定數值的符號。如可以使用 “=” 將右邊的表達式結果賦給左邊的操作數。

Java 支持的常用賦值運算符,如下表所示:

 

 

 比較運算符

比較運算符用於判斷兩個數據的大小,例如:大於、等於、不等於。比較的結果是一個布爾值( true 或 false )。

Java 中常用的比較運算符如下表所示:

註意事項:

  1、  > 、 < 、 >= 、 <= 只支持左右兩邊操作數是數值類型

  2、  == 、 != 兩邊的操作數既可以是數值類型,也可以是引用類型

 

邏輯運算符

主要用於進行邏輯運算,連接兩個Boolean值,代表兩個條件。

Java 中常用的邏輯運算符如下表所示:

我們可以從“投票選舉”的角度理解邏輯運算符:

  1、 與:要求所有人都投票同意,才能通過某議題

  2、 或:只要求一個人投票同意就可以通過某議題

  3、 非:某人原本投票同意,通過非運算符,可以使其投票無效

  4、 異或:有且只能有一個人投票同意,才可以通過某議題

 

當使用邏輯運算符時,我們會遇到一種很有趣的 “短路” 現象    >> 如果根據左邊已經可以判斷得到最終結果,那麼右邊的代碼將不再執行,從而節省一定的性能。

譬如:( 1 > 2 ) && ( 1 < 3 ) 中,如果能確定左邊 1 > 2 運行結果為 false , 則系統就認為已經沒有必要執行右側的 1 < 3 啦。

 

條件運算符

條件運算符( ? : )也稱為 “三元運算符”。

  • 一元運算符:只需要一個數據就可以進行操作的運算符。例如:取反!、自增++、自減--
  • 二元運算符:需要兩個數據才可以進行操作的運算符。例如:加法+、賦值=
  • 三元運算符:需要三個數據才可以進行操作的運算符。

 

語法形式:布爾表達式 ? 表達式1 :表達式2

運算過程:如果布爾表達式的值為 true ,則返回 表達式1 的值,否則返回 表達式2 的值

例如 :

 

 

 因為,表達式 8>5 的值為 true ,所以,返回: 8大於5

 

方法 ♦ ♦

所謂方法,就是用來解決一類問題的代碼的有序組合,是一個功能模塊。

一般情況下,定義一個方法的語法是:  

訪問修飾符  返回值類型  方法名(參數列表){

  方法體

}

 其中:

  1、 訪問修飾符:方法允許被訪問的許可權範圍, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示該方法可以被其他任何代碼調用

  2、 返回值類型:方法返回值的類型,如果方法不返回任何值,則返回值類型指定為 void ; 如果方法具有返回值,則需要指定返回值的類型,並且在方法體中使用 return 語句返回值

  3、 方法名:定義的方法的名字,必須使用合法的標識符

  4、 參數列表:傳遞給方法的參數列表,參數可以有多個,多個參數間以逗號隔開,每個參數由參數類型和參數名組成,以空格隔開 

 

 根據方法是否帶參、是否帶返回值,可將方法分為四類:

 

   無參無返回值方法

  如果方法不包含參數,且沒有返回值,我們稱為無參無返回值的方法。

  方法的使用分兩步:

  第一步,定義方法

  例如:下麵代碼定義了一個方法名為 show ,沒有參數,且沒有返回值的方法,執行的操作為輸出 “ welcome to imooc. ”

  

 註意 :

  1、 方法體放在一對大括弧中,實現特定的操作

  2、 方法名主要在調用這個方法時使用,需要註意命名的規範,一般採用第一個單詞首字母小寫,其它單詞首字母大寫的形式

 

  第二步,調用方法

  當需要調用方法執行某個操作時,可以先創建類的對象,然後通過  對象名.方法名();  來實現

  例如:在下麵的代碼中,我們創建了一個名為 hello 的對象,然後通過調用該對象的 show( ) 方法輸出信息

  

  運行結果為:  welcome to imooc.

 

 

  無參帶返回值方法

  如果方法不包含參數,但有返回值,我們稱為無參帶返回值的方法。

  例如:下麵的代碼,定義了一個方法名為 calSum ,無參數,但返回值為 int 類型的方法,執行的操作為計算兩數之和,並返回結果

  

    在 calSum( ) 方法中,返回值類型為 int 類型,因此在方法體中必須使用 return 返回一個整數值

  調用帶返回值的方法時需要註意,由於方法執行後會返回一個結果,因此在調用帶返回值方法時一般都會接收其返回值併進行處理。如下:第6行

  

  運行結果為: 兩數之和為:17

 

 不容忽視的“小陷阱”:

  1、 如果方法的返回類型為 void ,則方法中不能使用 return 返回值!

  

  2、 方法的返回值最多只能有一個,不能返回多個值

  

  3、 方法返回值的類型必須相容,例如,如果返回值類型為 int ,則不能返回 String 型值

  

 

   帶參無返回值方法

 有時方法的執行需要依賴於某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的信息才行。

 例如,現實生活中電飯鍋可以實現“煮飯”的功能,但前提是我們必須提供食材,如果我們什麼都不提供,那就真是的“巧婦難為無米之炊”了。

 我們可以通過在方法中加入參數列表接收外部傳入的數據信息,參數可以是任意的基本類型數據或引用類型數據。

 

 我們先來看一個帶參數,但沒有返回值的方法:

 

  上面的代碼定義了一個 show 方法,帶有一個參數 name ,實現輸出歡迎消息。

 

  調用帶參方法與調用無參方法的語法類似,但在調用時必須傳入實際的參數值

 

 例如:

  

  運行結果為: 歡迎您,愛慕課!

  很多時候,我們把定義方法時的參數稱為形參,目的是用來定義方法 需要傳入參數的個數和類型;把調用方法時的參數稱為實參,是傳遞給方法真正被處理的值。

 

  一定不可忽視的問題:

  1、 調用帶參方法時,必須保證實參的數量、類型、順序與形參一一對應

 

  

 

2、 調用方法時,實參不需要指定數據類型,如 

 

  3、 方法的參數可以是基本數據類型,如 int、double 等,也可以是引用數據類型,如 String、數組等           

 

 

 

                         第10行,Array.toString()方法將數組轉換為字元串輸出

 

 4、 當方法參數有多個時,多個參數間以逗號分隔

 

 帶參帶返回值方法

  如果方法既包含參數,又帶有返回值,我們稱為帶參帶返回值的方法。

  例如:

下麵的代碼,定義了一個 show 方法,帶有一個參數 name ,方法執行後返回一個 String 類型的結果

  

調用帶參帶返回值的方法:

  

  運行結果為: 歡迎您,愛慕課!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分組元素用於對頁面中的內容進行分組。 figure元素和figcaption元素 figure 元素用於定義獨立的流內容(圖像、圖表、照片、代碼等),一般指一個獨立的單元。 figure 元素的內容應該與主內容相關,但如果被刪除,也 不會對文檔流產生影響 。 figcaption 元素用於為figu ...
  • 1.let作用域局限於當前代碼塊 代碼1: let作用域僅限於當前代碼塊,而var的作用域是全局的 2.let作用域不會被提升 代碼2: let作用域不會被提升,而var作用域會被提升 代碼2相當於: 3.let不能被重覆定義 代碼3: 上面這段代碼運行會報錯:Identifier 'str2' h ...
  • 前言 vue通信手段有很多種,props/emit、vuex、event bus、provide/inject 等。還有一種通信方式,那就是 $attrs 和 $listeners,之前早就聽說這兩個api,趁著有空來補補。這種方式挺優雅,使用起來也不賴。下麵例子都會通過父、子、孫子,三者的關係來說 ...
  • [TOC] 1.DOM樹介紹 DOM:文檔對象模型。DOM 為文檔提供了結構化表示,並定義瞭如何通過腳本來訪問文檔結構。目的其實就是為了能讓js操作html元素而制定的一個規範。 DOM就是由節點組成的:HTML載入完畢,渲染引擎會在記憶體中把HTML文檔,生成一個DOM樹。 在HTML當中,一切都是 ...
  • 一、使用方法: 因為map標簽是與img標簽綁定使用的,所以我們需要給map標簽添加ID和name屬性,讓img標簽中的usemap屬性引用map標簽中的id或者name屬性(由於瀏覽器的不同,usemap屬性接收二者之一的值,所以通常name和id屬性二者都寫,值相同),並配合area標簽進行使用 ...
  • [TOC] 1.javascript介紹 1.1Web前端有三層: HTML:從語義的角度,描述頁面 結構 CSS:從審美的角度,描述 樣式 (美化頁面) JavaScript:從交互的角度,描述 行為 (提升用戶體驗) 1.2其中JavaScript基礎又分為三個部分: ECMAScript:Ja ...
  • 介紹 前文初始篇 "C++ 深入淺出工廠模式(初始篇)" ,主要闡述了簡單工廠模式、工廠方法模式和抽象工廠模式的結構、特點和缺陷等。以上三種方式,在新增產品時,要麼修改工廠類,要麼需新增具體的工廠類,說明工廠類的封裝性還不夠好。 本文進階篇,主要是將工廠類的封裝性提高,達到新增產品時,也不需要修改工 ...
  • 倒排索引架構 在廣告系統中倒排索引起著至關重要的作用,當請求過來時,需要根據定向信息從倒排索引中匹配合適的廣告。我們的倒排索引採用的是ElasticSearch(後面簡稱ES),考慮點是社區活躍,相關採集、可視化、監控以及報警等組件比較完善,同時ES基於java開發,所以調優和二次開發相對方便 先看 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...