java最簡單最全入門基礎筆記(不簡單,不全你打我)

剛開始學習java的時候,可能是一頭霧水,不知道從何學起,這裏跟大家分享一下!(僅僅只供初級學者學習,大佬勿噴)

一、初始java

1.生活中的程序:

從起牀到教室上課的過程

穿衣打扮》起牀》洗漱》出宿舍》》喫早餐》到教室

按照特定的順序去完成某一件事的過程我們叫做生活中的程序

2.計算機中的程序:

一組有序指令的集合,需要和計算機交流就要使用計算機語言,java就是計算機語言的一種

3.java能做什麼:

1、開發桌面應用程序,比如:QQ、酷狗

2、開發internet應用程序,比如:淘寶、天貓

4.java技術平臺

1、Java SE:標準版,java的技術與核心,開發桌面應用程序

2、Java EE:提供企業級項目的解決方案,開發網頁應用

5.安裝jdk:

jdk:java的一個核心工具包

jre:java的一個運行環境(表示java除了可以在windows系統運行,還可以在蘋果系統運行)

環境變量:告訴計算機可以執行.java的運行程序在哪裏

6.開發java程序的步驟:

1、編寫一個java源程序

新建記事本,將後綴名改爲.java

2、編譯java源程序,語法:javac 源文件名.java

編譯後會生成一個.class的字節碼文件

3、運行java程序,運行的是.class的文件,語法:java 源文件名

注意:java嚴格區分大小寫

System.out.println ()打印之後換一行,先打印再換行

System.out.print ()打印之後不換行

7.轉義字符:

使用"\n"進行換行

使用"\t"空格一個製表符的位置,也就是一個tab的位置,8個英文字母的長度

8.java中的註釋:

//註釋內容單 行註釋:表示對下一條語句進行一個解釋

/* 註釋內容 */ 多行註釋:表示對下面一段語句進行一個解釋

/**註釋內容 */ 文檔註釋:表示對一段文本註釋

註釋的語句是不會進行編譯的

9.java的編碼規範:

1、遇到大括號 { 就進行一次縮進,縮進距離一個tab鍵的長度

2、每一個大括號 } 單獨佔一行,表示一段語句的結束

3、 ; 表示每行語句的結束,每一行只寫一句代碼

10.使用開發工具開發java程序的步驟:

1、新建一個java工程

2、選中新建的工程,選中src文件夾,點擊右鍵new,新建一個class,新建時選中

public static void main這一項,會自動生成java源程序的框架

3、去編寫java源程序

4、編譯java源程序,開發工具會自動編譯

5、運行java程序

二、變量、數據類型和運算符

1.每個程序都只有一個入口,也就是隻有一個main方法,只有一個程序可以打開QQ,其他的地方都打

開不了

2.程序沒有運行是存儲磁盤上,運行在內存中

3.酒店中入住:

1、開房間(根據不同人數開不同類型的房間)

2、入住

4.變量的概念:內存根據數據不同類型開闢的這個空間叫做變量

酒店相當於內存

房間相當於變量

入住的人 相當於 數據(變量值)

房間類型相當於 數據類型(數字還是文字)

房間號相當於變量名

5.變量名:用於快速找到內存中變量空間位置取得名字

6.數據類型:

數值型:

1、整型(int):用於存儲整數,整數的類型123,999,666

byte字節型,short短整型,long長整型

long》int》short》byte

2、非整型:用於存儲小數,小數的類型1234.5,3.14

雙精度浮點型(double):小數的長度比較長

單精度浮點型(float):小數的長度短一些

非數值型:

1、字符型(char):用於存儲單個字符,都需要使用英文狀態的單引號括起來

比如:‘男’、‘女’、‘開’、‘關’

2、字符串型(String):用於存儲一串字符,存儲0~n個字符,都需要用英文狀

態下的雙引號括起來

比如:“我的名字是張三”,“我的愛好是打遊戲”

7.變量名的命名規則

1、只能夠使用_和這兩個符號;2、只能使用英文字母、、 這兩個符號;2、只能使用英文字母、_、這兩個符號;2、只能使用英文字母、、​ 三個開頭,後面的可以使用數字、字母和_、$;

3、使用java語言中的關鍵字

4、採用見文識意的方式命名,採用駝峯命名法ageOfStudent,多個字母命名時,

第一個字母的首字母小寫,後面字母首字母大寫

8.變量的使用:

1、聲明變量,就是在內存開一個空間

語法:數據類型 變量名;(空格和分號不能少),比如:int qian;

2、變量賦值,就是將數據放到開闢的這個空間

語法:變量名 = 變量值;比如:qian = 1000;

3、使用變量

比如:System.out.println(qian);

9.運算符的使用:

1、賦值運算符(=),將等號右邊的值賦給左邊

2、拼接運算符(+),將+左右兩邊的連起來

表達式:就是符號(如加號、減號)與操作數(如b,3等)的組合,比如:b-1

算術運算符:

四則運算:+、-、*、/

%(取模運算):除以一個數得到餘數,就是求餘數的運算的運算

10.從鍵盤掃描輸入的值:

1、找到有掃描儀的商店,語法:import java.util.Scanner;寫在public class的前面

2、購買一臺新的掃描儀,給它取一個名字

語法:Scanner input = new Scanner(System.in);

3、使用掃描儀的掃描功能

如果掃描整數:使用input.nextInt();

如果掃描小數:使用input.nextDouble();

如果掃描字符串:使用input.next();

11.類型轉換

自動類型轉換:

1、必須兩種類型互相兼容,比如:都是數值類型int和double,double和float

2、轉換成的類型一定要比被轉換的類型要大,比如:int轉換成double

float轉換成double

12.強制類型轉換:

語法:數據類型 變量名 = (數據類型)變量名;

比如:double b = 3.14

int a = (int)b;

1、同類型的強制類型轉換,比如:int a = (int)10.9;

2、不同類型的強制類型轉換,只有char和int可以,通過ASCII碼錶去轉換

比如:int b = (int)‘a’;

13.運算符:

1、賦值運算符 =,將右邊的值賦給左邊

2、算術運算符+、-、、/、%,數學運算一樣,先、/、%,後+、-

3、關係運算符(比較運算符):>、<、>=、<=、==、!=

4、邏輯運算符

boolean類型(布爾類型):用於比較運算,只有兩個值(true和false)

14.運算符的優先級:

1、最高優先級,英文狀態下的小括號()

2、最低優先級,賦值運算符=

3、算術運算符>關係運算符>邏輯運算符>賦值運算符

三、選擇結構

1.if選擇結構

if基本選擇結構

語法:if(要滿足的條件){

如果條件爲true的時候,進入大括號中

滿足條件之後得到的結果,不滿足條件不會去執行

}

如果條件爲false的時候,繞過大括號執行外面的

條件只能是boolean類型的數據

1條件只能是boolean類型的數據

2.邏輯運算符

&&(shift+7):and符號,並且的意思,同時滿足連接前後條件才爲true,有一個不滿足爲

false

||(shirt+):或者的意思,只要前後兩個條件一個爲true,整個表達式就爲true,同時爲

false才爲false

!(shirt+1):非的意思,就是取反,如果表達式爲true,使用非就爲false

3.if-else選擇結構:

適用於基本選擇條件的情況

語法:if(要滿足的條件){

滿足條件得到的結果

}else{

不滿足條件的得到的結果

}

4.產生一個隨機數:

1、找到一個有隨機數產生器的商店,語法:import java.util.Random;

2、購買一臺隨機數產生器並取一個名字,語法:Random ran = new Random();

3、使用這臺隨機數產生器的功能區產生隨機數,語法:ran.nextInt(數字);

ran.nextInt(10)表示產生一個0~9之間的隨機數

ran.nextInt(10)+1表示產生一個1~10之間的隨機數

5.多重if選擇結構

適用於很多條件分支的情況

語法:if(要滿足的條件1){

滿足條件1得到的結果

}else if(要滿足的條件2){//默認不滿足條件1

滿足條件1得到的結果

}else if(要滿足的條件n){//默認不滿足條件2

滿足條件n得到的結果

}else{//默認不滿足條件n

不滿足所有條件得到的結果

}

只要找到一個滿足的條件,執行完之後,結束選擇結構

6.嵌套if選擇結構

適用於在一個判斷的基礎再做一次判斷的情況

語法:if(要滿足的條件1){

滿足條件1得到的結果

if(要滿足的條件2){

滿足條件2得到的結果

}

}else{

不滿足條件1得到的結果

}

==只能夠比較數值類型,比較字符串是否相等,使用.equals(“要等於哪個字符串”);

比如:sex.equals(“男”);10 == 10

四、循環結構

1.循環結構

打印50份試卷,是從第1份開始打印,打印到第50份結束,重複打印試卷的過程

繞操場跑10圈,從第1圈開始,到第10圈結束,重複跑步的過程

做100道編程題,從第1題開始,到第100道結束,重複做題的過程

2.循環的概念:重複完成某一件事情或者某一個操作,有一個開始位置和結束位置就叫做

循環

3.循環的特點

1、循環條件:也就是滿足某個條件下才做重複的操作

2、循環操作:也就是重複所做的事情或者操作

4.while循環的語法:

while(循環條件){

滿足條件的時候所做的循環操作

}

特點:先判斷,再執行

使用while循環的步驟:

1、確定是否存在重複操作

2、分析出循環條件和循環操作分別是什麼

3、套用while循環語法寫出循環結構

4、檢查循環是否能正確退出

5.do-while循環結構的語法:

do{

循環操作

}while(循環條件);

特點:先執行循環操作,再進行循環條件判斷(先執行,再判斷)

6.while循環和do-while循環的差別:

1、循環的次序不同,while循環是先判斷,再執行,do-while是先執行,再判斷;

2、while循環在初始值不滿足循環條件的時候一次都不會執行,do-while循環在初始值不

滿足循環條件的時候至少執行一次

7.程序調試:

斷點調試的步驟:(每次調試後取消掉斷點)

1、設置斷點:在左側邊欄的位置點擊鼠標左鍵兩次,可以生成一個斷點

2、進入調試模式:點擊右鍵,選擇debug as進入debug調試模式,程序會在設置斷點的地

方停下來

3、單步執行,也就是一行一行的執行代碼,按F6單步跳過執行代碼

4、觀察變量值的變化

5、找出錯誤的位置

6、改正錯誤

7、運行看結果是否正確**

8.for循環結構

語法:for(表達式1;表達式2;表達式3){

循環操作

}

表達式1:循環從哪裏開始,也就是循環的初始值,比如:int num = 1

表達式2:循環的條件,也就是循環到哪裏結束,比如:num <100

表達式3:計數器,也就是每循環一次,初始值產生怎樣的變化,比如:num++

每個表達式之間用分號隔開,每個表達式都可以不寫,但是分號不能省略

for循環的執行順序:

①先去執行表達式1,也就是先去找初始值

②第二步去執行表達式2,也就是去找循環條件

③第三步去執行循環操作

④最後纔去執行表達式3,也就是最後才實現初始值變化的過程

表達式1和表達3中可以寫多個,表達式2,條件只能有一個

9.跳轉語句的使用:

break關鍵字:(通常和if選擇結構一起使用)

在switch使用break表示結束switch選擇結構去執行選擇結構外的代碼

在循環中使用break表示結束循環結構去執行循環結構外的代碼

continue關鍵字:(通常和if選擇結構一起使用)

continue只能夠在循環結構中使用

在循環中使用continue表示結束當前這一次循環,然後開始下一次循環

使用場合:

break常用於switch結構和循環結構中

continue一般用於循環結構中

作用(循環結構中)

break語句終止某個循環,程序跳轉到循環塊外的下一條語句

continue跳出本次循環,進入下一次循環

10.循環結構四要素:

1、初始值,也就是循環要從哪裏開始

2、循環條件,循環要到哪裏結束

3、循環操作(循環體),就是需要重複做的某些操作

4、計數器(迭代部分),就是每次重複之後,初始值要產生的變化

11.while、do-while和for循環的區別:

1、執行順序不同

while和for循環:先判斷,再執行

do-while循環:先執行,再判斷

2、適用場景(循環次數固定推薦使用for循環)

for循環只適用於循環次數固定的情況

while和do-while循環無論循環次數是否固定都可以使用

五、數組

1.數組的概念

在內存中開闢的一串連續的空間,用來存儲相同數據類型的,比如:鞋櫃只會放鞋子,衣

櫃只會用來放衣服

2.數組的基本要素

1、標識符(數組名):數組的名稱,用來區分不同的數組

2、數組元素:存放在數組空間中的數據

3、數組下標:對數組中的空間進行編號,區分每個空間,數組下標從0開始,可以通過數

組下標找到對應的空間

4、元素類型:數組的數據類型

3.數組的定義和使用

1、聲明數組:告訴計算機數組是什麼類型

語法:數據類型[] 數組名 或者 數據類型 數組名[]

比如:String[] args;int[] nums,數組名的命名方式和變量命名方式一樣

2、分配空間:告訴計算機要開闢一串連續的多長的空間

語法:數組名 = new 數據類型[數組長度];

比如:scores = new int[30];

第一步和第二步可以一起寫

數據類型[] 數組名 = new 數據類型[數組長度];

3、賦值:向開闢好空間裏面去存放數據

語法:數組名[數組下標] = 數據;

比如:scores[0] = 60;//表示將數組第一個空間存放了60這個整數

scores[1] = 80;

直接聲明數組時就進行賦值

語法:數據類型[] 數組名 = new 數據類型[]{數據1,數據2,數據n};

數據類型[] 數組名 = {數據1,數據2,數據n};

注意:如果在聲明數組時就直接賦值,那麼不要寫數組長度

比如:int[] scores = new int[]{60,80,100,50,60,70};

通過循環的方式動態的錄入數據

循環從初始0開始,到數組的最大長度結束,每次加1

for(int i = 0;i < 5;i++){

System.out.println("請輸入第"+(i+1)+"名學生的成績:");

scores[i] = input.nextInt();

}

4、數據的使用:將存放在數組空間中的元素拿出來使用

使用循環的方式將存放在每個空間中數據拿出來使用

for(int i = 0;i < 5;i++){

System.out.println("第"+(i+1)+"名的學生成績爲"+scores[i]);

}

數組名.length表示數組的長度

比如:int[] scores = new int[10];

scores.length = 10;//數組長度爲多少,該值就爲多少

4.數組的排序

使用Arrays類,使用Arrays的步驟

1、找到有Arrays的商店,語法:import java.util.Arrays;

2、Arrays是一個公用的工具,不需要夠買,只要去使用就可以,

語法:Arrays.sort(數組名);

它會將該數組進行一個升序的排列

二重循環:在一個循環中再使用一個循環結構

循環特點:外層循環循環一次,內層循環循環一遍(也就是從開始到結束循環完)

while循環,do-while循環和for循環之間可以相互嵌套,也就是說while循環可以放while,

do-while和for循環,其他兩種一樣

5.二重循環中跳轉語句的使用

continue:如果continue在內層循環中,表示結束內層循環的本次循環,開始內層循環的

下一次循環,如果在外層循環表示結束外層循環的本次循環,開始外層循環的

下一次循環,也就是說,continue在哪一個循環的{}中,就結束哪一個循環的

本次循環,開始該循環的下一次循環。

break:如果break在內層循環中,表示結束內層循環的整個循環,開始執行內層循環外面

語句,如果在外層循環中表示結束整個循環,也就是說,break在哪個循環中,結

束的就是哪個循環的整個循環。

六、類和對象

1.OO:Object Oriented表示面向對象的意思

2.世界由什麼組成:水,陸地,草,人,動物,植物,樓房,汽車等等

由所有一切真實存在的東西組成,這些真實存在的東西就叫作對象

屬性:就是對象所具有特徵

方法:就是對象所執行的行爲或操作

對象:用來描述真實存在事物的一個實體,由一組屬性和方法組成

封裝:對象的屬性和方法通常封裝在一起,共同體現事物的特性,兩者不可分割

類:將對象共同的屬性和方法抽取出來就是類

類是模子,定義對象所具有的屬性和方法

3.類和對象的關係:

類是抽象的,對象是具體的實體

對象是類的一個實體,類是對象的抽象概念

4.定義一個類的步驟:

1、新建一個class,給這個class取一個類名,名字和你想要定義的類型一致

類名的取名方式,使用帕斯卡命名法,所有單詞的首字母大寫

2、定義類的屬性

3、定義類的方法

5.使用定義好的類:

1、新建一個對象,語法:類名 對象名 = new 類名();

比如:Car car1 = new Car();

2、通過“.”操作符來使用這個對象的屬性和方法

六、類的無參方法

1.定義類的方法:

語法:返回修飾符 返回值類型 方法名(){

//具體實現方法的操作

}

比如:

public void sayHello(){

//具體實現方法的操作

System.out.println(“你好”);

}

1、訪問修飾符(在哪些地方能夠使用這個方法),public公共的,最高級別

2、返回值類型,執行完方法後能夠得到什麼數據

void,表示沒有返回值,也就是沒有任何數據返回

如果有數據返回,那麼就需要使用return關鍵字返回一個數據,並且返回的數據類型

和返回值的數據類型一致

3、方法名(),方法名錶示方法的名字

4、方法體:具體實現方法的操作

2.編寫類的方法步驟:

1、先定義方法的訪問修飾符,先寫沒有返回值類型,定義方法名,方法名的命名採用見

文識意的方式

2、定義方法體,也就是寫具體實現方法的操作

3、判斷方法是否有返回值,如果有,添加return關鍵字返回該數據,並修改返回值類型

方法是怎麼去實現,方法是怎麼實現的只需要在定義方法的關心,使用的時候只要知道是哪一個方

法是什麼作用就可以了

3.方法的調用:

1、在同一個類調用同一類中的方法,只需要通過方法名()就可以指直接調用

2、在不同類中調用方法,需要先new一個需要調用方法的類的對象,然後通過對象名.方

法名的方式去調用方法

調用方法的時候,實際上就是去執行方法體中的代碼

4.常見錯誤:

1、返回值數據類型必須和返回值類型一致

2、不可以返回多個值,也不能寫多個返回值類型

3、定義方法不能夠相互嵌套

4、程序邏輯代碼(順序、選擇、循環結構)只能寫在方法體中

5.面向對象的編程:

類的方法實現某個特定的功能,其他類不需要知道它如何實現,只需要知道它是用來幹什

麼的

6.全局變量:(成員變量)它是指定義在類中的變量,它在類中的任意位置都可以被識別

比如:類的屬性

1、作用域:作用在類中任意位置

2、初始值不同:如果沒有給它賦值,系統會默認給它一個初始值,int類型爲0,double

爲0.0,String爲null

3、在同一個類中不允許同名存在

7.局部變量:它是指定義在方法體中變量,它只能在該方法中被識別

1、作用域:作用在定義該變量的方法體中

2、初始值不同:必須給它賦值後才能去使用,系統不會給它賦初始值

3、在同一個類中,不同的方法中可以存在相同的命名,同名的兩個變量沒有任何關係

在同一個類中,允許局部變量和成員變量命名相同,如果兩個命名一樣,在使用時,局部變量有

更高優先級

七、類的有參方法

1.帶參數的方法

無參方法:在方法名()的括號中沒有參數的方法

有參方法:在方法名()的括號中有參數的方法

2.定義有參方法的語法:

訪問修飾符 返回值類型 方法名(參數1、參數2、參數3…參數n){

方法體(具體實現方法的過程)

}

3.參數:實際就是聲明的一個變量,聲明的變量使用“,”隔開

在定義方法的時候,方法中的參數只是進行了聲明,並沒有賦值,這個參數就叫做形式參

數,也就是形參;

在調用方法的時候,對方法中參數進行賦值,這個參數就叫作實際參數,也就是實參

4.調用帶參數的方法:

同一類中調用同一類中的方法,直接方法名()調用

不同類中調用不同類中的方法,先new一個對象,再通過對象名.方法名()的方式調用

必須和定義方法的參數個數相同,並且數據類型必須一致,順序也要和定義的位置一致

5.二次傳遞:在調用方法的時候,傳遞一個參數值給該方法,然後在該方法中去調用了另外的方法,

再將這個參數值傳遞給在該方法中調用的這個方法

F5:單步跳入,遇到方法的時候回進入方法體中,逐方法體的代碼一行一行的執行

F6:單步跳過,遇到方法的時候直接執行完方法,獲得結果,不進入方法體

6.對象數組:就是自己定義的類型的數組

自己定義類型,如果沒有new一個對象,那麼它的初始就爲null

7.包:在windows中以文件夾的方式存在

1)將類分爲幾個類似於文件夾的單元

2)防止命名衝突,在同一個包不允許重複命名,不同包可以重複

3)可以對類中數據中進行一個保護作用

聲明包,語法:package 包名;必須爲java源文件中第一條非註釋語句

包名:1、通常由小寫的英文字母組成,不能以圓點開頭或結尾

2、開頭一般是一個頂級域名cn,com,org,net

3、後續部分一般由公司名稱、部門名稱、小組名稱、項目名稱

導入包:語法:import 包名;

導入包,可以將在這個包中的所有類導入到我們這個類中,導入後才能使用該包中的類

通過ctrl+鼠標左鍵點擊進入定義方法的位置

八、字符串

1.字符串:就是一個或多個字符組成

2.聲明字符串

1、直接聲明,比如:String name = “張三”;

2、使用對象的方式,new一個String類的對象,

比如:String name = new String(“張三”);

3.棧:用來存儲較小的數據,離訪問位置比較近,比如:int,double,short。。

堆:用來存儲較大的數據,離訪問位置比較遠,比如:String,數組,自己定義的類型

4.引用數據類型:通過在棧中的地址去引用存儲在堆中數據的數據類型

只要使用了new關鍵字,就表示在堆中新開了一個空間,然後在棧中留下一個地址

String類型中的值是不可變的

5.比較字符串:

使用比較的是存儲的地址,引用類型地址不相同,不能使用比較

.equals比較的是存儲的數據,將數據一一比較,字符串使用.equals比較是否相等

.equals()比較字符串是否相等

.equalsIgnoreCase()忽略大小寫比較字符串是否相等

.toLowerCase()將字符串中所有字符轉化爲小寫

.toUpperCase()將字符串中所有字符轉化爲大寫

6.獲得字符串長度:

字符串名.length,獲得字符串長度,每個字符就是一個長度

7.字符串的拼接:

1、使用拼接符+進行拼接

2、使用.concat()方法進行拼接

8.字符串的查詢和提取

indexOf("@qq")、indexOf(’@’),查詢第一個字符出現的位置

.lastIndexOf(‘7’)、.lastIndexOf(“77”),查詢最後一個字符出現的位置

查詢:字符串名.indexOf(需要查找字符串名),返回一個int類型的數據,第一個數從0

開始,返回字符串第一個字符所在位置,找不到指定的字符串返回-1

9.提取:

.substring(8)提取第9個字符串後面的所有字符串

.substring(8,12)提取從第8個字符到第11個字符,開始的位置從0開始數起,結束的位置

從1開始數起

忽略字符串前後的空格

.trim()忽略字符串前後的空格,中間不能忽略

10.字符串的分割

.split(以什麼爲分割的字符),返回一個String的數組,將分割的每個字符串放到這個數

組中

11.字符串的替換

.replaceAll(表示替換前的字符,表示替換後的字符),返回一個String的數據

StringBuffer類,是一個可變的字符串類型

語法:StringBuffer sb = new StringBuffer(“小林”);

StringBuffer的拼接:

.append(“需要追加的字符串”);追加的時候不會新開闢空間

StringBuffer的插入字符:

.insert(插入的位置,要插入的字符);

————————————————

最後,我自己是一名從事了多年開發的JAVA老程序員,今年年初我花了一個月整理了一份最適合2020年學習的java學習乾貨,可以送給每一位喜歡java的小夥伴,想要獲取的可以關注我簡書並在後臺私信我:交流,即可免費獲取。

*有什麼問題歡迎大家提出來 ♪(´○`)o團結就是力量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章