javaSE探賾索隱之二<第二篇部落格,磕磕絆絆,收貨滿滿!加油>

2020-10-19 12:00:13

IDE的使用

  • IDE(Integrated Development Environment )整合式開發環境包含編輯器、編譯器、偵錯圖形介面
  • IntelliJ IDEA是捷克的一家公司收費的產品
  • Eclipse是IBM公司開發的 現在捐獻eclipse基金會

註釋

  • 註釋是對程式功能的說明,註釋以某種特定符號作為標記,註釋不會程式在執行過程中執行.
  1. //單行註釋

  2. /*

    多行註釋

    */

  3. /**

    檔案註釋,用於為類、方法、屬性的功能進行說明,呼叫時可以提示其功能介紹.

    */

關鍵字

  • 關鍵字是被語言中賦予特定含義的單詞,用來修飾例如類,屬性,方法。

  • 關鍵字中所有的字母都為小寫。

保留字

  • 在java語言中未被使用的關鍵字,預留的,命名時不能使用。例如goto 、const

識別符號

  • 識別符號是java中對變數、類、方法等命名時使用的字元序列。(自己可以命名的名稱

  • 命名規則:由大小寫字母、數位 、下劃線、$構成。但是數位不能開頭。命名不能是關鍵字,保留字且不能有空格 區分大小寫。

//約定俗成   見名知意  駝峰   類名首字母大小  
user_nameint age  = 10;String userName = "jim";
  • 命名規範
    包名:多單片語成所有的字母為小寫
    類名、介面名:多單片語成時,所有的單詞首字母大寫。
    變數名、方法名:駝峰規則
    常數名:所有字母大寫

變數

  1. 變數本質上是程式中最基本的儲存單元,程式執行中數值可變,通過變數名存取。
  2. 先宣告,後賦值,才能使用。

變數的分類:

按資料型別

  1. 基本資料型別
  2. 參照資料型別

按位元置

1.成員變數(定義在類中,方法區之外。僅作用於該類中。)

在定義成員變數時可以對其初始化,如果不對其初始化,Java使用預設的值對其初始化。

參照型別初始值:null;
基本型別初始值:byte=0;int=0;long=0;short=0;double=0.0;float=0.0;char=' '(空														字串); 
布林型別初始值boolean=" false"

​ 2.類變數(定義在類中,方法區之外,用static修飾。僅作用於該類中,且不用建立物件)

​ 3.區域性變數(定義在方法區、語句塊之內。僅作用於該方法區。)

Java資料型別

  • 不同的資料型別,在記憶體中分配的儲存空間也不盡相同。
  • 在賦值時,要注意 「資料的值「 與 「資料的型別」 要匹配。

基本資料型別

數值型

整數型別
  • byte佔一個位元組
  • short佔兩個位元組
  • int佔四個位元組
  • long佔八個位元組,宣告long型常數時可在值後面加L/l。
浮點型別
  • float佔4個位元組(如要宣告一個常數為 float 型,則需在數位後面加 f 或 F)

  • double佔8個位元組(預設)

  • 於在計算機中的計算方式不同,4位元組的浮點大於4位元組、8位元組的整數

  • 計算機中小數是以近似值方式儲存的

  • 進位製表示

    ​ 二進位制:0b/0Bb開頭

    ​ 十進位制:預設

    ​ 八進位制:0開頭

    ​ 十六進位制:0x/0X開頭

字元型

  • char表示字元,佔兩個位元組。用單引號括起來。
  • char型別的資料可以參加運算。

計算機底層都是二進位制,計算機要表示字元,只有根據人為定義設計的編碼表,字元在不同的編碼表中對 應不同的十進位制數位最終在計算機中儲存。不同的國家就定義自己國家的編碼。中國的GBK

ASCII碼:ASCII碼一共規定了128個字元的編碼,比如空格「SPACE」是32(二進位制00100000),大寫的字母 A是65(二進位制01000001)。這128個符號(包括32個不能列印出來的控制符號),只佔用了一 個位元組的後面7位,最前面的1位統一規定為0。

Unicode碼:一種編碼,將世界上所有的符號都納入其中。每一個符號都給予一個獨一無二的編碼,使用 Unicode
沒有亂碼的問題

utf-8:是一種可變長度的編碼表。

布林型

  • boolean 型別適於邏輯運算,一般用於程式流程控制。
  • boolean 型別資料只允許取值 true 或 false 。
  • 注意:不可以0或非 0 的整數替代false和true,這點和C語言不同

參照資料型別

​ String str = 「abc」;

介面

陣列

資料型別轉換

預設轉換

  • 整形,字元型,浮點型的資料在混合運算中相互轉換,轉換時遵循以下原則:
    容量小的型別預設轉換為容量大的資料型別;

  • 資料型別按容量大小排序為:
    byte,short,char->int->long->float->double

強制型別轉換

  • 容量大的資料型別轉換為容量小的資料型別時,要加上強制轉換符,但可能造成精度降低或溢位;

  • 有多種型別的資料混合運算時,系統首先自動的將所有資料轉換成容量最大的那一種資料型別,然後再進行計算。

運運算元

算術運運算元

​ +可用作:字串連線 加號 正號

​ -可用作: 減號 負號

​ + - * / % 運算的引數是:數值與數值(char)。

在這裡插入圖片描述

關係(比較)運運算元

​ >, <, >=, <= 數值與數值(char)。

​ ==, !=用於 基本型別數值之間的比較、參照型別與參照型別比較。
在這裡插入圖片描述

邏輯運運算元

在這裡插入圖片描述
注: !(非),& (與), |(或) , &&(短路與),||(短路或),^(互斥或)

  • 用兩個數互斥或後的結果 與其中一個值進行互斥或操作 其值等於另一個值.

賦值運運算元

  • 注意 」 = 「 兩邊型別與值相匹配

  • 當「=」兩側資料型別不一致時,可以使用自動型別轉換或使用強制型別轉換原則進行處理。支援連續賦值。

  • 擴充套件賦值運運算元: +=, -=, *=, /=, %=

  • 虛擬機器器支援直接將int型別的數,賦值給byte和short。

    s+=2

    相當於 資料型別 s=(資料型別)s+2.

在這裡插入圖片描述

條件運運算元(三目運運算元)

  • (條件表示式)? 表示式1:表示式2;
    為true,運算後的結果是表示式1;
    為false,運算後的結果是表示式2;

位運運算元

在這裡插入圖片描述

用途:主要用來大量減少執行開銷,優化演演算法。

表示式的運算順序

在這裡插入圖片描述

控制語句

控制檯輸入

​ 在新增一個Scanner物件時需要一個System.in物件,因為實際上還是System.in在取得使用者輸入。

​ Scanner的next()方法用以 取得使用者輸入的字串;

​ nextInt()將取得的輸入字串轉換為整數型別;

​ nextFloat()轉換成浮點型;nextBoolean()轉 換成布林型

​ *Scanner sc = new Scanner(System.in);0fsfsdf放暑假開始

條件語句

1.if(條件表示式){ 語句塊 }

2.if(條件表示式){ 語句塊 } else { 語句塊 }

3.if(條件表示式){ 語句塊 }else if(){ 語句塊 }…else{ 語句塊 }

4.switch(表示式){
case value1: 語句序列1;[break];

…………

​ case valueN: 語句序列N; [break];

[default : 預設語句;]

​ }

  • 表示式可以是byte、short、int、char、string、列舉型別。

  • value 不能重複。

  • 某個case分支如果沒有提供break語句,則繼續執行下一個case後的語句;

  • 當表示式的值與任一value都不匹配時,將執行default後面的語句;若無default子句,則直接跳出switch語句。

  • 如果判斷的具體數值不多,而且符合byte、 short 、int、 char這四種型別。雖然兩個語句都可 以使用,建議 使用swtich語句。因為效率稍高。

迴圈

  • 組成:迴圈變數的初始化、迴圈條件部分 、迴圈體部分 、迴圈變數的更新

  • break 語句用於終止某個語句塊的執行。用在迴圈語句體中,可以強行退出迴圈;

    可以設定迴圈名標籤(迴圈名:)可以直接(break+標籤名)跳出迴圈。

  • continue 語句用在迴圈語句體中,用於終止某次迴圈過程,跳過迴圈體中 continue 語句下面未執行的迴圈,開始下一次迴圈過程

1.while(條件表示式){ 語句塊 }

  • while()主要用於迴圈次數明確的情況下。
    先判斷邏輯表示式的值。若=true.則執行其後面的語句,然後再次判斷條件並反覆執行,直到條件不成立為止

2.do{ 語句塊 }while(條件表示式)

先執行語句,再判斷邏輯表示式的值,若為true,再執行語句,否則結束迴圈。shengming

3.for(表示式1; 表示式2; 表示式3){ 語句; … ; }

  • for()主要用於迴圈次數明確的情況下。
    首先計算表示式1,接著執行表示式2,若表示式2的值 = true,則執行迴圈語句, 接著計算表示式3,再判斷 表示式2的值;依此重複下去,直到表示式2的值=false.

方法

1.Java的方法類似於其它語言的函數,方法是解決一類問題的步驟的有序組合,方法包含於類或物件中.

2.宣告方法的格式:

​ [存取許可權修飾符 修飾符…] [返回值型別] 方法名 (形式引數型別 引數名) {

​ Java語句;… … …

​ [return 返回值;]

​ }

  • **修飾符:**這是可選的,告訴編譯器如何呼叫該方法。定義了該方法的存取型別。

  • 形數: 在方法被呼叫時用於接收外界輸入的資料。

  • 實參:呼叫方法時實際傳給方法的資料。

  • 返回值:方法在執行完畢後返還給呼叫它的環境的資料。

  • 返回值型別:事先約定的返回值的資料型別,如無返回值,必須給出返回值型別void。

3.方法的呼叫

  • Java語言中使用下述形式呼叫方法:物件名.方法名(實參列表)

  • 實參的數目、資料型別和次序必須和所呼叫方法宣告的形參列表匹配,
    ​ Java語句;… … …

​ [return 返回值;]

​ }

  • **修飾符:**這是可選的,告訴編譯器如何呼叫該方法。定義了該方法的存取型別。

  • 形數: 在方法被呼叫時用於接收外界輸入的資料。

  • 實參:呼叫方法時實際傳給方法的資料。

  • 返回值:方法在執行完畢後返還給呼叫它的環境的資料。

  • 返回值型別:事先約定的返回值的資料型別,如無返回值,必須給出返回值型別void。

3.方法的呼叫

  • Java語言中使用下述形式呼叫方法:物件名.方法名(實參列表)

  • 實參的數目、資料型別和次序必須和所呼叫方法宣告的形參列表匹配,

  • return 語句會終止方法的執行,並指定要返回的資料