尚硅谷Java——宋紅康筆記【day1-day5】


day1

注釋

1.java規范的三種注釋方式:

單行注釋

多行注釋

文檔注釋(java特有)

2. 單行注釋和多行注釋的作用: ① 對所寫的程序進行解釋說明,增強可讀性。方便自己,方便別人 ② 調試所寫的代碼

3.特點:單行注釋和多行注釋,注釋了的內容不參與編譯。換句話說,編譯以后生成的.class結尾的字節碼文件中不包含注釋掉的信息

4.文檔注釋的使用:注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。

5.多行注釋不可以嵌套使用

對第一個java程序進行總結

1.java程序編寫-編譯-運行的過程 編寫:我們將編寫的java代碼保存在以".java"結尾的源文件中 編譯:使用javac.exe命令編譯我們的java源文件。格式:javac 源文件名.java 運行:使用java.exe命令解釋運行我們的字節碼文件。 格式:java 類名

2.在一個java源文件中可以聲明多個class。但是,只能最多有一個類聲明為public的。 而且要求聲明為public的類的類名必須與源文件名相同。

3.程序的入口是main()方法。格式是固定的。

4.輸出語句: System.out.println():先輸出數據,然后換行 System.out.print():只輸出數據

5.每一行執行語句都以";"結束。

6.編譯的過程:編譯以后,會生成一個或多個字節碼文件。字節碼文件的文件名與java源文件中的類名相同。

day2

計算機中不同進制的使用說明

對於整數,有四種表示方式:

二進制(binary):0,1 ,滿2進1.以0b或0B開頭。

十進制(decimal):0-9 ,滿10進1。

八進制(octal):0-7 ,滿8進1. 以數字0開頭表示。

十六進制(hex):0-9及A-F,滿16進1. 以0x或0X開頭表示。此處的A-F不區分大小寫。如:0x21AF +1= 0X21B0

標識符的使用

1.標識符:凡是自己可以起名字的地方都叫標識符。

比如:類名、變量名、方法名、接口名、包名...

2.標識符的命名規則:--> 如果不遵守如下的規則,編譯不通過!需要大家嚴格遵守

由26個英文字母大小寫,0-9 ,_或 $ 組成

數字不可以開頭。

不可以使用關鍵字和保留字,但能包含關鍵字和保留字。

Java中嚴格區分大小寫,長度無限制。

標識符不能包含空格。

3.Java中的名稱命名規范: --->如果不遵守如下的規范,編譯可以通過!建議大家遵守

包名:多單詞組成時所有字母都小寫:xxxyyyzzz

類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz

變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz

常量名:所有字母都大寫。多單詞時每個單詞用下划線連接:XXX_YYY_ZZZ

4. 注意1:在起名字時,為了提高閱讀性,要盡量有意義,“見名知意”。

注意2:java采用unicode字符集,因此標識符也可以使用漢字聲明,但是不建議使用。

String類型變量的使用

1.String屬於引用數據類型,翻譯為:字符串

2.聲明String類型變量時,使用一對""

3.String可以和8種基本數據類型變量做運算,且運算只能是連接運算:+

4.運算的結果仍然是String類型

變量的使用

1.java定義變量的格式:數據類型 變量名 = 變量值;

2.說明: ① 變量必須先聲明,后使用 ② 變量都定義在其作用域內。在作用域內,它是有效的。換句話說,出了作用域,就失效了 ③ 同一個作用域內,不可以聲明兩個同名的變量

Java定義的數據類型

一、變量按照數據類型來分:

基本數據類型:
    整型:byte \ short \ int \ long
    浮點型:float \ double
    字符型:char
    布爾型:boolean

引用數據類型:
類(class)
接口(interface)
數組(array)

1.整型:byte(1字節=8bit) \ short(2字節) \ int(4字節) \ long(8字節)

① byte范圍:-128 ~ 127

② 聲明long型變量,必須以"l"或"L"結尾

③ 通常,定義整型變量時,使用int型。

2.浮點型:float(4字節) \ double(8字節)

① 浮點型,表示帶小數點的數值

② float表示數值的范圍比long還大

③ 定義float類型變量時,變量要以"f"或"F"結尾

④ 通常,定義浮點型變量時,使用double型。

3.字符型:char (1字符=2字節)

① 定義char型變量,通常使用一對'',內部只能寫一個字符

② 表示方式:1.聲明一個字符 2.轉義字符 3.直接使用 Unicode 值來表示字符型常量

char c5 = '\n';//換行符

char c6 = '\u0043';//Unicode

4.布爾型:boolean

① 只能取兩個值之一:true 、 false

② 常常在條件判斷、循環結構中使用

二、變量在類中聲明的位置:成員變量 vs 局部變量

自動類型提升:

結論:當容量小的數據類型的變量與容量大的數據類型的變量做運算時,結果自動提升為容量大的數據類型。 byte 、char 、short --> int --> long --> float --> double

特別的:當byte、char、short三種類型的變量做運算時,結果為int型

說明:此時的容量大小指的是,表示數的范圍的大和小。比如:float容量要大於long的容量

強制類型轉換:

自動類型提升運算的逆運算。

1.需要使用強轉符:()

2.注意點:強制類型轉換,可能導致精度損失。

double d1 = 12.9;
//精度損失舉例1
int i1 = (int)d1;//強制類型轉換,截斷操作
System.out.println(i1);//12

//精度損失舉例2
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);//-128

day3

運算符之一:算術運算符

加+、 減-、 乘*、 除/、 取余%

自增自減:

(前)++ (后)++ (前)-- (后)--

(前)++ :先自增1,后運算
(后)++ :先運算,后自增1
自減同理

運算符之二:賦值運算符

=、 +=、 -=、 *=、 /=、 %=

開發中,如果希望變量實現+2的操作,有幾種方法?(前提:int num = 10;)
方式一:num = num + 2;
方式二:num += 2; (推薦)

如果希望變量實現+1的操作:num++; (推薦)

運算符之三:比較運算符

==、 !=、 >、 <、 >=、 <=、 instanceof

結論: 1.比較運算符的結果是boolean類型 2.區分 == 和 =

特別說明:instanceof是Java中的二元運算符,左邊是對象,右邊是類;當對象是右邊類或子類所創建對象時,返回true;否則,返回false。

運算符之四:邏輯運算符

&、 &&、 |、 ||、 !、 ^、

說明: 1.邏輯運算符操作的都是boolean類型的變量

區分& 與 &&:

相同點1:& 與 && 的運算結果相同

相同點2:當符號左邊是true時,二者都會執行符號右邊的運算

不同點:當符號左邊是false時,&繼續執行符號右邊的運算。&&不再執行符號右邊的運算。

開發中,推薦使用&&

區分:| 與 || :

相同點1:| 與 || 的運算結果相同

相同點2:當符號左邊是false時,二者都會執行符號右邊的運算

不同點3:當符號左邊是true時,|繼續執行符號右邊的運算,而||不再執行符號右邊的運算

開發中,推薦使用||

運算符之五:位運算符 (了解)

結論: 1. 位運算符操作的都是整型的數據 2. "<<"符號表示在一定范圍內,每向左移1位,相當於 * 2;">>"符號表示在一定范圍內,每向右移1位,相當於 / 2

運算符之六:三元運算符

1.結構:(條件表達式)? 表達式1 : 表達式2

//獲取兩個整數的較大值
int m = 12;
int n = 5;

int max = (m > n)? m : n;
System.out.println(max);

2.說明: ① 條件表達式的結果為boolean類型 ② 根據條件表達式真或假,決定執行表達式1,還是表達式2. 如果表達式為true,則執行表達式1。 如果表達式為false,則執行表達式2。 ③ 表達式1 和表達式2要求是一致的。 ④ 三元運算符可以嵌套使用

3.凡是可以使用三元運算符的地方,都可以改寫為if-else,反之,不成立。

4.如果程序既可以使用三元運算符,又可以使用if-else結構,那么優先選擇三元運算符。原因:簡潔、執行效率高。

day4

分支結構中的if-else(條件判斷結構)

一、三種結構

第一種:

if(條件表達式){
    執行表達式
}

第二種:二選一

if(條件表達式){
    執行表達式1
}else{
    執行表達式2
}

第三種:n選一

if(條件表達式){
    執行表達式1
}else if(條件表達式){
    執行表達式2
}else if(條件表達式){
    執行表達式3
}
...
else{
    執行表達式n
}

說明:

1.if-else結構是可以相互嵌套的。

2.如果if-else結構中的執行語句只有一行時,對應的一對{}可以省略的。但是,不建議大家省略。

如何從鍵盤獲取不同類型的變量:需要使用Scanner類

具體實現步驟:

1.導包:import java.util.Scanner;

2.Scanner的實例化:Scanner scan = new Scanner(System.in);

3.調用Scanner類的相關方法(next() / nextXxx()),來獲取指定類型的變量

注意: 需要根據相應的方法,來輸入指定類型的值。如果輸入的數據類型與要求的類型不匹配時,會報異常:InputMisMatchException導致程序終止。

舉個例子

//1.導包:import java.util.Scanner;
import java.util.Scanner;

class ScannerTest{

public static void main(String[] args){
    //2.Scanner的實例化
    Scanner scan = new Scanner(System.in);

    //3.調用Scanner類的相關方法
    System.out.println(&quot;請輸入你的姓名:&quot;);
    String name = scan.next();
    System.out.println(name);

    System.out.println(&quot;請輸入你的芳齡:&quot;);
    int age = scan.nextInt();
    System.out.println(age);

    System.out.println(&quot;請輸入你的體重:&quot;);
    double weight = scan.nextDouble();
    System.out.println(weight);

    System.out.println(&quot;你是否相中我了呢?(true/false)&quot;);
    boolean isLove = scan.nextBoolean();
    System.out.println(isLove);

    //對於char型的獲取,Scanner沒有提供相關的方法。只能獲取一個字符串
    System.out.println(&quot;請輸入你的性別:(男/女)&quot;);
    String gender = scan.next();//&quot;男&quot;
    char genderChar = gender.charAt(0);//獲取索引為0位置上的字符
    System.out.println(genderChar);


}

}

分支結構之二:switch-case

1.格式

switch(表達式){
case 常量1:
    執行語句1;
    //break;

case 常量2:
執行語句2;
//break;

...

default:
執行語句n;
//break;

}

2.說明:

① 根據switch表達式中的值,依次匹配各個case中的常量。一旦匹配成功,則進入相應case結構中,調用其執行語句。 當調用完執行語句以后,則仍然繼續向下執行其他case結構中的執行語句,直到遇到break關鍵字或此switch-case結構 末尾結束為止。

② break,可以使用在switch-case結構中,表示一旦執行到此關鍵字,就跳出switch-case結構

③ switch結構中的表達式,只能是如下的6種數據類型之一: byte 、short、char、int、枚舉類型(JDK5.0新增)、String類型(JDK7.0新增)

④ case 之后只能聲明常量。不能聲明范圍。

⑤ break關鍵字是可選的。

⑥ default:相當於if-else結構中的else.
default結構是可選的,而且位置是靈活的。

⑦ 如果switch-case結構中的多個case的執行語句相同,則可以考慮進行合並。

For循環結構的使用

一、循環結構的4個要素 ① 初始化條件 ② 循環條件 --->是boolean類型 ③ 循環體 ④ 迭代條件

二、for循環的結構

for(①;②;④){ ③ }

執行過程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

day5

嵌套循環的使用

1.嵌套循環:將一個循環結構A聲明在另一個循環結構B的循環體中,就構成了嵌套循環

2. 外層循環:循環結構B 內層循環:循環結構A

3.說明 ① 內層循環結構遍歷一遍,只相當於外層循環循環體執行了一次 ② 假設外層循環需要執行m次,內層循環需要執行n次。此時內層循環的循環體一共執行了m * n次

4.技巧:外層循環控制行數,內層循環控制列數

While 循環的使用

一、循環結構的4個要素 ① 初始化條件 ② 循環條件 --->是boolean類型 ③ 循環體 ④ 迭代條件

二、while循環的結構

①
while(②){
    ③;
    ④;
}

執行過程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

說明: 1.寫while循環千萬小心不要丟了迭代條件。一旦丟了,就可能導致死循環! 2.我們寫程序,要避免出現死循環。 3.for循環和while循環是可以相互轉換的! 區別:for循環和while循環的初始化條件部分的作用范圍不同。

算法:有限性。

do-while循環的使用

一、循環結構的4個要素 ① 初始化條件 ② 循環條件 --->是boolean類型 ③ 循環體 ④ 迭代條件

二、do-while循環結構:

①
do{
    ③;
    ④;

}while(②);

執行過程:① - ③ - ④ - ② - ③ - ④ - ... - ②

說明: 1.do-while循環至少會執行一次循環體! 2.開發中,使用for和while更多一些。較少使用do-while

break和continue關鍵字的使用

關鍵字 使用范圍 循環中使用的作用(不同點) 相同點
break switch-case循環結構中 結束當前循環 關鍵字后面不能聲明執行語句
continue 循環結構中 結束當次循環 關鍵字后面不能聲明執行語句


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM