Java基礎語法吐血整理
阿新 • • 發佈:2020-12-16
# 前言
自己的Java理論知識方面一直都不是很好,決定從0開始好好總結下,把想到的和以前不確定的(查閱資料確定)的知識整理一下,加油!!堅持!!!
# Java概述
## Java三大體系
1、JavaSE 標準版
2、JavaEE 企業版(主流)
3、JavaME 微型版
## JDK下載安裝
> 建議安裝JDK8以上
## 環境變數配置
1、JAVA_HOME
> JDK安裝根目錄,示例:
```bash
D:\JDK8_211
```
2、path
```bash
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
```
3、CLASSPATH
```bash
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
```
## 驗證安裝和編譯執行DOS
### 驗證安裝
```bash
java -version
```
### 編譯執行
1、javac:編譯成class檔案
```bash
javac Hello.java
```
2、java:執行java
```bash
java Hello
```
### HelloWorld.java
```java
public class HelloWorld{
public static void main(String args[]){
System.out.println("Hello World!");
}
}
```
# Java語法規則(規範)
1、大小寫敏感
2、類名首字母大寫
3、方法名小寫
4、原始檔名與類名必須相同,字尾名為.java
5、一個原始檔只能有一個public修飾的類,可以有多個其他類(內部類、匿名類)
6、所有程式由主方法(main())入口開始執行
7、**識別符號規則**
1. 以字母、美元符、下劃線開頭,不能用數字開頭
2. 關鍵字不能做識別符號
8、**註釋**
1. 單行://
2. 多行:/**/
# Java關鍵字
常見的都在這裡了,可以邊看邊回憶這些關鍵字的意義和使用,複習鞏固,查漏補缺
## 訪問控制
```java
private //私有模式
protected //保護模式
public //共用模式
```
## 類、方法和變數修飾符
```java
class //宣告一個類
abstract //表明類或者成員方法具有抽象屬性
extends //繼承
final //最終屬性,不能改變
interface //宣告一個介面
implements //實現一個介面
new //建立新例項物件
static //表明具有靜態屬性
synchronized //表明一段程式碼需要同步執行
volatile //表明兩個或者多個變數必須同步發生變化
```
## 程式控制語句
```java
break //跳出最裡迴圈
continue //跳出本次繼續下一次迴圈
return //從成員方法返回資料
do..while() //至少先執行一次,再判斷是否繼續迴圈
if()..else //如果,條件判斷
for //迴圈
instanceof //判斷一個物件是否是指定型別的例項物件
switch //分支語句
case //在switch後,表示其中的一個分支
default //switch中都不符合條件則使用default
```
## 錯誤處理
```java
try //嘗試一個可能丟擲異常的程式碼塊
catch //捕捉異常,並進行處理
throw //丟擲異常
throws //宣告在當前成員方法所有需要丟擲的異常
```
## 包相關
```java
import //指定要訪問的包或類
package //包
```
## 基本型別
```java
boolean //布林型
byte //位元組型
short //短整型
int //整型
long //長整型
char //字元型
float //單精度浮點型
double //雙精度浮點型
null //空,注意:不能賦給原始型別(int,long...)
true //真
false //假
```
## 變數引用
```java
super //表示當前物件父型別的引用或父型別的構造方法
this //表示當前物件的引用
void //表示當前成員方法沒有返回值
```
## 保留關鍵字
```java
goto
const
```
# 常量和變數
## 常量
1、使用final修飾常量
2、一般使用大寫命名,示例:
```java
final String DEMO = "Hello";
```
> final 修飾變數只允許初始化一次,一般與 static 一起使用
## 變數
示例:int a = 2;
# 資料型別
## 基本資料型別
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201201164751137.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NjUxMjUy,size_16,color_FFFFFF,t_70#pic_center)
## 引用資料型別
陣列
類
介面
## 資料型別轉換
### 自動型別轉換
> 1、表數範圍小的自動轉換為表數範圍大的
> 2、byte和short不能和char相互轉換,char值範圍為0~65535,byte和short都包含負數
> 3、字串與任何資料型別相連都會轉換為字串型別
> 4、運算有多種資料型別結果自動轉換為最大的資料型別
### 強制型別轉換
> 1、表數大的轉表數小的需要強制轉換
> 2、運算子為(),括號裡寫小的資料型別,示例:byte b = (byte)12
# 運算子
## 算數
> +,-,*,/,%,++,--
## 賦值
> =,+=,*=,/=,%/
## 比較
> < ,>, >= , <=, != ,==
## 邏輯
> &&, || ,!
## 三目
> 條件?true的取值:false的取值
## 優先順序
> 儘量使用 小括號,可讀性更好
## instanceof
> 檢查當前物件是否是某個特定型別
# 控制流程
## 順序
## 分支
> if else
switch case
## 迴圈
> while
> do while
>至少執行一次
>for
**增強型for迴圈**
```java
for(int hero : heros)
{
//程式碼句子
}
```
**關鍵字**
> break
最裡層迴圈完全中止
>continue
中止本次迴圈,開始下一次迴圈
>return
直接結束一個方法
# 陣列
## 定義
>儲存在堆上的物件,可儲存多個同類型變數
>陣列初始化,記憶體所佔空間固定,長度不可改變
### 靜態初始化
```java
int demoArray[3] = {1,2,3};
```
### 動態初始化
```java
int demoArray[10];
```
### 宣告
```java
int[] a
```
### 建立
```java
int[] a = new int[5];
int[] a = {1,2,3,4,5};
```
### 遍歷
```java
//陣列索引從0開始
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
//for each迴圈
for (double element: myList) {
System.out.println(element);
}
```
### Arrays類方法
>排序
sort
>比較
equals
### 常見操作
排序(冒泡,選擇)
求最大最小值
折半查詢
說實話,有點難頂[笑哭]。。。。加油!!堅持!!
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201201172754378.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NjUxMjUy,size_16,color_FFFFFF,t_70#pic_