1. 程式人生 > 其它 >【java】非常多!學習路徑24-總結目前所有知識

【java】非常多!學習路徑24-總結目前所有知識

感謝sikiedu.com的siki老師。幾年前就開始看siki的課程,最近突然想寫這個筆記系列,順便回顧一下這些基礎的知識,同時也希望能幫助到一些人,有問題一起交流哈。


第一章 基礎知識

1-1 DOS命令(Windows)

操作計算機的兩種方式

圖形化介面

DOS(磁碟作業系統)DOS就是人給計算機下達命令的

開啟DOS

cmd

window+R

1-2 常用DOS命令(輸入命令後按下回車)

------目錄操作-----

d: 切換碟符

dir 列出來當前目錄的所有檔案

md 建立資料夾

rd 刪除資料夾

cd 開啟資料夾

tab 自動補全

. 當前目錄 .. 上一個目錄

cd \ 或者 cd\ 退回到根目錄(碟符目錄)

------檔案操作------

del a.txt del *.txt

del 目錄 表示刪除目錄下的所有檔案

------其他操作------

cls 清屏

exit 退出DOS

上方向鍵 取得上一個命令

-----計算機常用命令(不區分大小寫)---

notepad

Mspaint

Cals

Mstsc

 

計算機快捷鍵

Ctrl + A Ctrl + S Ctrl + Z Ctrl + X Ctrl + C Ctrl + V Ctrl + N

Home End

 

1-3 Java的歷史

百度百科

計算機語言,跟計算機溝通的語言,通過計算機語言可以讓計算機幹各種他可以乾的事情

Java的排行榜

Java可以幹什麼

JavaEE (Web,網站開發) 網站分為前端和後端

淘寶 京東 工行網銀 Amazon Google eBay 我的世界後端

企業內部使用的OA系統 財務系統

哪些網站使用的Java開發的

JavaME 基本沒人用

JavaSE 桌面應用程式(什麼是桌面應用程式 QQ 百度影音播放器 瀏覽器 )

Android開發(基於Java語言)

Hadoop大資料

 

1-4 Java是跨平臺的

平臺是作業系統 Windows Linux Mac

JVM Java虛擬機器 Java開發的一箇中間軟體

JVM包含在JDK裡面,下載JDK的時候是需要選擇平臺的

JDK和JRE

JDK 是 java開發工具包(包含jre)

JRE 是java執行環境

Java開發環境

安裝JDK (Java Development Kit Java開發工具包) JDK9(Java SE JDK)

目錄不要有中文

解除安裝(控制面板 解除安裝程式)

通過Java和Javac命令驗證安裝的是否正確

Java執行原理圖

編譯和執行可以通過DOS來完成

 

1-5 HelloWorld.java 第一個Java程式

關於字尾名如何修改

寫程式碼必須全部是英文(除了個別中文字元)

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello World!");

}

}

javac xx.java

java xx

 

1-6 常見問題:

副檔名問題

class寫錯 Class classs claas

main寫錯 Main

列印語句問題 System.out.print(“”);

引號問題 ; ;

環境變數的配置

什麼作用

怎麼配置

配置完重啟cmd

Java_Home的作用和配置(jdk安裝目錄)

classpath

path裡面的是exe可執行檔案,class是java的執行檔案.class檔案

安裝notepad++(Eclipse MyEclipse)

行號

高亮顯示,程式碼提示

 

1-7 什麼是註釋

對程式碼進行解釋說明,不會影響程式的執行,編譯的時候,會忽略註釋,註釋就是為了開發人員方便閱讀程式碼使用的!

單行 //

多行 /* */

文件 /** */

1-8 Java識別符號

自己定義的東西的名字就是識別符號(類名,變數名,方法名)

1,有字母(大寫和小寫) 數字 下劃線_ 美元符$

2,不能以數字開頭,不能是關鍵字

3,區分大小寫 main Main

1-9 命名規範(駝峰命名):

見名知意

包:全部小寫,以域名開頭

com.sikiedu.tools

com.sikiedu.person

類名字:第一個單詞首字母大寫,後面的單詞首字母大寫

函式和變數名:第一個單詞首字母小寫,後面的單詞首字母大寫

 

 

 

1-10 Java關鍵字(變色)

https://baike.baidu.com/item/java%E5%85%B3%E9%94%AE%E5%AD%97/5808816?fr=aladdin

全部都是小寫的

 

1-11 常量:

字面值常量

字串,整數,小數,字元,布林,空常量

自定義常量

1-12 進位制

百度百科:https://baike.baidu.com/item/%E8%BF%9B%E5%88%B6/317457?fr=aladdin

進位制也就是進位制,是人們規定的一種進位方法。 對於任何一種進位制---X進位制,就表示某一位置上的數運算時是逢X進一位。 十進位制是逢十進一,十六進位制是逢十六進一,二進位制就是逢二進一,以此類推,x進位制就是逢x進位。

為什麼計算機只識別0和1 https://zhidao.baidu.com/question/191371417.html

為什麼0和1可以表示豐富的圖形和影視 https://www.zhihu.com/question/36269548

1-13 計算機儲存單位

二進位制(0b開頭) 八進位制(0開頭) 十進位制(預設) 十六進位制(0x)

 

1-14 變數

變數型別 變數名 = 初始化值;

 

整數預設為int 小數預設為double型別

變數注意事項:

作用域:定義在哪個大括號內,就在哪個大括號內有效。不能同名在同一個作用域裡面。

在使用之前初始化

一行可以定義多個變數,兩種寫法

一行多條語句

一行一條語句

變數型別一般:

整數型別

浮點型別

字元型別

布林型別

Notepad++的編碼修改為 ANSI編碼(中文)

1-15 變數注意事項

作用域(有效範圍):定義在哪個大括號內,就在哪個大括號內有效。不能同名在同一    個作用域裡面。

在使用之前初始化

一行可以定義多個變數,兩種寫法

一行多條語句

一行一條語句

1-16 常量final

在執行期間一直不會改變的量成為常量!一、字面值常量,二、自定義常量

怎麼自定義常量(一般常量名稱都全部大寫)

final 資料型別 常量名稱 = 值。

定義long或者float型別的時候要加上l(L)和f(F)

定義byte或者short的時候要保證給的值在型別的範圍內

char是否可以儲存漢字

可以的,因為char佔有兩個位元組,每個漢字也是佔用兩個位元組的

練習題1:

  1. 請寫出識別符號的命名規則是什麼?
  2. 由英文字母、數字、_和$組成,長度不限。
  3. 識別符號的第一個字元不能是數字
  4. 識別符號區分大小寫。
  5. 識別符號不能包含空格。
  6. 下列屬於正確識別符號的選項有[多選]()
  7. int B. $_Count C. 3M     D. Hello  
  8. b-7 F. ms#d G. bool     H. D9658 
  9. java的基本資料型別有哪些?
  10. java的基本資料型別中,有幾種可以表示數字?
  11. 寫一個程式,輸出你的姓名、身份證號、年齡、所在大學、專業、入學年限和學制。

第二章 運算子

2-1 運算子

賦值運算子

=

+=

-=

*=

/=

%=

 

 

a = 3;a = a + b;

x = y = z = 7;//不建議

a x= b; ======>  a = a x b;    x代表 + - * / %

 

2-2 算術運算子(可以對常量和變數進行操作)

規則: 運算元1 運算子 運算元2     int b = a + c;

2-2-1 加減乘除求餘

+

可以對整數和浮點數做加法操作

-

可以對整數和浮點數做減法操作

*

可以對整數和浮點數做乘法操作

/

可以對整數和浮點數做除法操作

(兩個整數相除得到的還是整數 = 略去小數部分)

如果想要得到小數,需要將其中一個轉成浮點數

%

可以對整數和浮點數做求餘操作

特殊一:

使用浮點數做運算的時候的不精確性

5.3-4.2

0.08f + 0.01f

6.9*7

7.6%2.0

原因:double 和 float兩個型別在java中本身就是非精確儲存的,再用兩個近 似值去做計算,得到的結果就只能是一個近似值了。

特殊二:

可以使用+對字串進行組拼,任何型別和字串相加都會把資料轉成字串,再 進行組拼

a+b+”Hello”

“Hello”+a+b

特殊三:

使用字元做算術運算的時候,會自動把字元轉換成對應的數字,然後進行數學運算

 

2-2-2 自增和自減運算子

++

兩種用法:放在前面或者放在後面

--

兩種用法:放在前面或者放在後面

 

2-2-3 比較運算子

結果為boolean型別(true/false)

<=

>=

==

!=

注意區分 == 和 =

System.out.println(a==b); System.out.println(a=b);

 

2-2-4 邏輯運算子(兩邊的運算元必須是boolean型別的)

規則: 運算元1 運算子 運算元2

&& (短路 與)

|| (短路 或)

&

|

^ 異或

!非(取反)

與:兩邊同時滿足條件的時候為true(其他情況為false)

或:兩邊只要滿足一個條件結果為true(其他情況為false)

異或:兩邊結果不一樣的時候結果為true(其他情況為false)

 

2-2-5 短路和不短路的區別

當可以通過運算元1判斷出來結果的時候,是否運算運算元2(短路表示不運算操 作數2)

 

注意:

1<x<9     1<x && x<9

 

2-2-6 位運算子

計算機是二進位制的,所有的資料使用二進位制來儲存。對於每個二進位制來說都有原碼、反碼和補碼。計算機儲存資料的時候,使用第一位表示數字的正負,0代表正數,1代表負數。計算機儲存正數的時候直接儲存正數的原碼,儲存負數的時候儲存負數的補碼。(為什麼儲存補碼,而不是原碼,這個是為了方便進行數學運算,具體不解釋了)

正數:原碼、反碼和補碼相同。

負數:

原碼(符號位為1)

反碼(符號位不變,其餘位數取反)

補碼(反碼+1)

 

只針對二進位制來說的,所以在進行運算之前會轉換成二進位制,再運算。

& 按位與:對應位都是1才是1

| 按位或:對應位有一個1,就是1

~ 按位取反:1變0,0變1

^ 按位異或:對應位不一樣才是1

<< 左移(高位拋棄,低位補0)

>> 右移(高位按照符號位補齊,低位拋棄)

>>>無符號右移(忽略符號位,高位補0,低位拋棄)

 

2-2-7 三元運算子

?:

規則: 布林表示式表示式1表示式2

如果布林表示式的結果為true,返回表示式1的結果

如果布林表示式的結果為false,返回表示式2的結果

案例:

取最大值(兩個整數和三個整數)

 

2-3 運算子優先順序

預設優先順序

通過()控制優先順序

 

2-4 資料型別轉換

2-4-1隱式型別轉換

小型別到大型別會自動轉換:byte->short,char->int->long->float->double

雖然float比long小,但是因為儲存方法不一樣導致float裡面可以儲存的資料 範圍比  long要大(浮點型來說,有一部分是用來表示有效位數的,有一部分是    用來表示多少次方。)

使用情況:

  • 賦值語句
  • 算術表示式中

2-4-2 顯式型別轉換(也叫做強制型別轉換)

把一個大型別賦值給小型別,需要進行前置型別轉換

int i = (int)3.3;

long j = (long)3.4f;

int c = ‘a’;//隱式轉換

 

練習題2

一、對於以下,有int x = 5, y = 6, z;

 

題目1:z = ++x + y++;

 

題目2:z = ++x + x++;

 

題目3:x = ++x + x++;

 

題目4:z = x > y ? ++x : y++;

二、下列說法正確的是(  ) 

    A、 JAVA程式的main方法必須寫在類裡面

B、 JAVA程式中可以有多個main方法

C、 JAVA程式中類名必須與檔名一樣 

D、 JAVA程式的main方法中如果只有一條語句,可以不用{}(大括號)括起來

三、變數命名規範說法正確的是(  ) 

A、 變數由字母、下劃線、數字、$符號隨意組成;

B、 變數不能以數字作為開頭;

C、 A和a在java中是同一個變數; 

D、 不同型別的變數,可以起相同的名字;

四、下列javaDoc註釋正確的是(  ) 

A、 /*我愛北京天安門*/

B、 //我愛北京天安門*/

C、 /**我愛北京天安門*/

D、 /*我愛北京天安門**/

五、為一個boolean型別變數賦值時,可以使用(  )方式 

A、 boolean = 1;

    B、 boolean a = (9 >= 10);

C、 boolean a="真";

D、 boolean a = = false;

六、以下(  )不是合法的識別符號 

A、 STRING B、 x3x; C、 void D、 de$f


 

第三章 流程控制

3-1 語句塊

以{開始,以}結束

{}

註釋事項

  • 遇到單純的語句塊的時候,會直接執行語句塊裡面的語句,從上到下
  • 語句塊可以訪問外面定義的變數,外面不能訪問語句塊裡面定義的變數

 

3-2 流程控制

控制程式中語句執行的流程(順序)。預設是從上到下一條語句一條語句執行。

 

3-3 條件語句

意義:通過條件判斷是否執行某些語句

3-3-1 if條件

3-3-1-1 第一種

if(布林表示式){

//語句,當布林表示式為true的時候才會執行的語句

}

3-3-1-2 第二種

if(){

//語句

}else{

//語句

}

3-3-1-3 第三種

if(){

}else if(){

}else{

}

3-3-1-4 特殊的用法:

if()

Xxx;

Xxx;

if();

3-3-1-5 注意事項

三元運算子可以實現的都可以使用if語句代替

區別:

三元運算子比較簡潔

三元運算子必須返回結果

if語句可以執行多條語句

3-3-2 switch分支語句

結構:

switch(表示式){

case 值1:

語句塊1;

break;

case 值2:

語句塊2;

break;

...

default:

Default語句塊;

break;

}

表示式可以是整數 字元 列舉 字串

case後面的值必須是常量

break用來中斷switch語句

 

3-4 迴圈語句

完成:建立10個敵人

完成:取得1-100的所有數的和

完成:輸出1-10

完成:輸出10-1

3-4-1 while迴圈

while(布林表示式){

//迴圈體

}

do ... while迴圈

do{

//迴圈體

}while(布林表示式);

4-3-2 for迴圈

for(初始化語句;判斷條件語句;更新語句){

//迴圈體

}

注意:

For初始化語句裡面定義的變數只能在for迴圈裡面使用

for迴圈的特殊使用方式

語句的巢狀

輸出1-100內的所有偶數

 

迴圈練習:

  • 求整數1~100的累加值,跳過所有個位為3的數。
  • 迴圈輸出以下結果:
    • 2*5=10
    • 4*10=40
    • 6*15=90
    • ……
    • ?*100=?

3,一張紙的厚度大約是0.08mm,對摺多少次之後能達到珠穆朗瑪峰的高度(8848.13  米)?

 

3-5 流程控制

3-5-1 break語句(中斷語句)

  • switch
  • 迴圈語句
    • 多層迴圈的情況下,跳出break所在的迴圈
    • 可以定義標籤,指定跳出哪個迴圈

3-5-2 continue語句(中斷當前迴圈,繼續下次迴圈)

使用在迴圈語句中

return

用來結束方法

 

如何接收使用者鍵盤輸入的資料

import java.util.Scanner;

 

Scanner s = new Scanner(System.in);

s.nextInt();