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