緒論: Java版本區別:J2EE (企業版) J2SE(標準版) J2ME(小型版) Java特性:跨平臺 JVM、JRE、JDK介紹: 綜上,所以安裝JDK就可以了 使用JDK開發的java程式,交給JRE運行 JRE=JVM+類庫 JDK=JRE+java開發工具 DOS命令行:dir列出目錄 ...
緒論:
Java版本區別:J2EE (企業版) J2SE(標準版) J2ME(小型版)
Java特性:跨平臺
JVM、JRE、JDK介紹:
- JVM(Java虛擬機) 不同平臺上裝指定版本虛擬機,就能運行Java程式
- JRE(Java運行環境) 包括JVM和Java程式所需的核心類庫
- JDK(Java開發程式包) 包括JRE
綜上,所以安裝JDK就可以了 使用JDK開發的java程式,交給JRE運行
JRE=JVM+類庫 JDK=JRE+java開發工具
DOS命令行:dir列出目錄 cd 改變目錄 cd..後退 cd\根目錄
md創建目錄 rd 刪除 del 刪除(文件) *通配符
help尋求幫助,可以查用法
Java -version用來在命令行中查看使用的Java版本
環境變數表示方法:%變數名%
臨時設置: Path=haha(這個haha是代表任意值) 在當前命令行視窗有效 ; 刪除時Path=
正文:
/*Demo演示的意思 println書寫並換行
文件夾選項可以選擇不要隱藏擴展名 classpath臨時環境變數 classpath加;號在當前目錄再找一次*/
Java語言基礎組成:
關鍵字:都是小寫; 類名大寫
標識符:數字不能開頭,不可以使用關鍵字(標識符里有-和$符號)
註釋://單行註釋 /*多行註釋*/ /**文檔註釋*/
註釋可以嵌套,但多行不能套多行 javadoc可提取(Java特有)
可以使用註釋,進行逐段調試
註釋的應用:/*需求:練習...思路: 1、...2、...3、...步驟:1、用class關鍵字完成定義;2、主函數:固定格式;3、輸出語句*/
常量與變數:整數、小數、布爾、字元、字元串、null常量
進位 byte位元組=8個二進位位
負數:四個位元組表示
變數:變數作用範圍(一對{}之間有效)
名字,類型,數據
格式:數據類型 變數名=值;
整數:byte(1位)、short(2位)、int(預設)(4位),long(8位)
小數:float(4個位元組),double(預設)(8個位元組)
字元:char(2個位元組,一個中文正好兩個位元組)
布爾:boolean(只有True和False)
自動類型轉換
強制類型轉換(丟失精度)
字元+數,顯示ACSII碼
字元類型運算過程(Java底層用Unicode碼)
類型運算符細節(byte擔心存不下,Integer.Max_VALUE(int 型最大值))
算數運算符:算術運算符+ - * / %(取餘) +(連接符)
++ --(在原來的基礎上自加自減1)
賦值運算符:(=、+=、-=、*=、......)
+=不等於=......+......(+=在賦值中做了強制轉換,=...+....是兩步運算)
比較運算符:(運算完結果必須是True或者False)== != > < <= >=
邏輯運算符:&用於連接兩個布爾類型的表達式
&與|或 &運算特點: ^異或:兩邊相同為假 !非
&&和&運算結果一樣,但過程有點小區別 &右邊始終參與,&&左為假,右不參與
||左邊為真,後邊不參與
位運算符:<<左移 >>右移 >>>無符號右移
左移幾位就是乘以2的幾次方,
右移:以前最高位是啥就拿啥補空位,右移就是該數據除以2的幾次冪
無符號右移:右移,高位出現的空位用0補
兩個數互換問題:1、引入第三方變數
2、a=a+b; b=a-b; a=a-b;
3、a=a^b; b=a^b; a=a^b;
三元運算符:(條件表達式)?表達式1:表達式2;
程式流程式控制制:順序結構 判斷結構 選擇結構 迴圈結構
判斷結構:if語句:1、if(條件表達式) { 執行語句; }
2、if(條件表達式){ 執行語句; } else{ 執行語句; }
3、if ........else if...........else if........ else
當if.....else......運算後有具體結果,可以用三元運算符代替
代碼塊:局部代碼可以定義局部變數周期
switch(表達式){ case 取值1:執行語句;break; case 取值2:執行語句;break; default:執行語句;break;} (挨著大括弧的break可以不用寫)
迴圈結構:while(條件表達式){ 執行語句; }
do{ 執行語句;}while(條件表達式)
for(初始化表達式;迴圈條件表達式;迴圈後表達式)
其他流程式控制制語句:continue(繼續);break(跳出);
函數:
定義在類中具有特點功能的一段獨立小程式
函數也稱方法;
可以將代碼封裝,復用;
定義思想錯誤;
記憶體載入進程; 棧的特點:先進後出
重載:(重覆載入):在同一個類中,允許存在一個以上的同名函數,只要參數個數或者參數類型不同即可;
數組:
同一類型數據的集合,其實就是一個容器
格式1:元素類型【】 數組名=new 元素類型【元素個數或數組長度】;
int【】 arr=new int【3】;
格式2:元素類型【】 數組名=new 元素類型【】{元素,元素,...};
記憶體空間的劃分:局部代碼塊;決定局部變數生命周期
堆特點:存儲實體(一堆數據),不能消失;
棧:引入(指向)堆中的數據 引入(指針)
堆: 垃圾回收機制:自動不定時回收堆中的垃圾
當訪問到數組中不存在角標時會發生異常
當引用型變數沒有任何實體指向時,還在用其操作實體,就會發生異常
哈希值【數組 I int型
正向遍歷,反向遍歷,對角標操作
獲取最值
排序(選擇排序、冒泡排序、排序位置置換代碼提取)
性能問題
面向對象:
三個特征:封裝、繼承、多態
對象:(名詞提煉法)
用Java語言對現實生活中事物描述,通過類的形式體現
對事物描述兩方面:1、屬性;2、行為
對象就是該類事物實實在在個體
引用數據類型參數傳遞
封裝:
private私有,只在本類中有效,其他類就算創建對象也訪問不到
public void 函數名(){ }
函數裡邊可以用if判斷語句
隱藏實現細節、對象屬性、僅對外提供公共訪問方式
1、安全性;2、便於隔離;3、提高重用性;
私有僅僅是一種體現形式(封裝的)
Java語言中最小的封裝體是函數
構造函數:特點:1、函數名與類名相同
2、不用定義返回值類型
3、沒有具體返回值
作用:給對象初始化;
一個類中如果沒有定義構造函數,該類中會有一個預設的空參數構造函數
一般函數和構造函數區別:
構造函數:對象創建時就會調用與之對應的構造函數初始化
一般函數:對象創建後,需要時才調用
什麼時候定義構造函數
在描述事物時,該事物已存在就具備的一些內容,這些內容都定義在構造函數中;
構造函數,重載
參數類型,參數個數;
構造函數細節:1、對象改名:p1.setname("小強");
2、構造函數加void成一般函數;