本篇文章重點(diǎn)關(guān)注于Java基礎(chǔ)方面學(xué)習(xí)入門的大體流程框架,主要有以下幾個(gè)方面:
1、對Java大致的了解
2、Java SE基礎(chǔ)知識
3、Java語法基礎(chǔ)
1、面向?qū)ο?/strong>Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
而且Java也是有三個(gè)版本的,包括JAVASE(標(biāo)準(zhǔn)版,基于個(gè)人計(jì)算機(jī)的應(yīng)用。)JAVAEE、(企業(yè)版,定位在服務(wù)器端的應(yīng)用。(包含JavaSE))JAVAME(微型版,消費(fèi)型電子產(chǎn)品。(不常用))其中Javase是最基礎(chǔ)的,也是Javaee和Javame學(xué)習(xí)的基礎(chǔ)。
我們將世界上的每一個(gè)物體或是事物都可以定義為一個(gè)對象,每一個(gè)對象都擁有自己的屬性或者行為(如飛機(jī),屬性有它的飛機(jī)編號、各方面的參數(shù)等,行為有啟動、移動、起飛、降落等),不同的對象之間用方法進(jìn)行交互,這樣在面對大規(guī)模的事務(wù)時(shí),整體的代碼結(jié)構(gòu)會更加的清晰。
2、Java體系
(I)Java SE, Java EE, Java ME
可能你不止一次聽到Java SE、Java EE這些概念,那么這些究竟是什么呢?
首先明確一個(gè)概念,Java SE, Java EE, Java ME構(gòu)成了整個(gè)Java的體系,它們?nèi)齻€(gè)的關(guān)系可以用一張圖概括:
①Java SE(Java Standard Edition,Java 標(biāo)準(zhǔn)版)
作為Java技術(shù)的核心和基礎(chǔ),同時(shí)也是是Java ME和Java EE編程的基礎(chǔ),從圖中不難看出,Java SE是Java EE的子集。
②Java EE(Java Platform Enterprise Edition,Java平臺企業(yè)版,之前也稱Java2)
可以理解為在Java SE的基礎(chǔ)上添磚加瓦后出現(xiàn)的一種規(guī)范,它是Java應(yīng)用最為廣泛的部分,主要用于企業(yè)級開發(fā)、web開發(fā),幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)端Java應(yīng)用。
③Java ME(Micro Edition,微型版)
使用的較少,主要是用于移動端開發(fā)。
(II)JDK、JRE、JVM
*JDK是Java Development Kit的縮寫,是Java的開發(fā)工具包, 它是整個(gè)JAVA的核心,包括了Java運(yùn)行環(huán)境(JRE),Java工具(javac/java等)和Java基礎(chǔ)的類庫(即Java API )。
*JRE(Java Runtime Environment)是Java運(yùn)行環(huán)境,并不是一個(gè)開發(fā)環(huán)境,所以沒有包含任何開發(fā)工具(如編譯器和調(diào)試器),只是針對于使用Java程序的用戶。JRE中包含了JVM。
*JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,是JRE的一部分,它是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的,
本篇主要講述Java SE的學(xué)習(xí)框架。
二、Java SE基礎(chǔ)知識
1、字符串
2、時(shí)期
3、集合
4、正則匹配
5、堆棧隊(duì)列
6、IO流
7、異常處理
8、線程
9、通信協(xié)議
三、Java語法基礎(chǔ)
1、關(guān)鍵字:其實(shí)就是某種語言賦予了特殊含義的單詞。
保留字:其實(shí)就是還沒有賦予特殊含義,但是準(zhǔn)備日后要使用的單詞。
2、標(biāo)示符:其實(shí)就是在程序中自定義的名詞。比如類名,變量名,函數(shù)名。包含 0-9、a-z、$、_ ;
注意:
1)數(shù)字不可以開頭
2)不可以使用關(guān)鍵字
3、常量:是在程序中的不會變化的數(shù)據(jù)。
4、變量:其實(shí)就是內(nèi)存中的一個(gè)存儲空間,用于存儲常量數(shù)據(jù)。
作用:方便于運(yùn)算。因?yàn)橛行?shù)據(jù)不確定。所以確定該數(shù)據(jù)的名詞和存儲空間。
特點(diǎn):變量空間可以重復(fù)使用。
什么時(shí)候定義變量?
只要是數(shù)據(jù)不確定的時(shí)候,就定義變量。
變量空間的開辟需要什么要素呢?
(1)這個(gè)空間要存儲什么數(shù)據(jù)?數(shù)據(jù)類型
(2)這個(gè)空間叫什么名字啊?變量名稱
(3)這個(gè)空間的第一次的數(shù)據(jù)是什么? 變量的初始化值
變量的作用域和生存期:
變量的作用域:
作用域從變量定義的位置開始,到該變量所在的那對大括號結(jié)束;
生命周期:
變量從定義的位置開始就在內(nèi)存中活了;
變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;
數(shù)據(jù)類型:
(1):基本數(shù)據(jù)類型 :byte、short、int、long、float、double、char、boolean
(2):引用數(shù)據(jù)類型 : 數(shù)組、類、接口。
級別從低到高為:byte-->int-->float-->long-->double char-->int float-->double
自動類型轉(zhuǎn)換: 從低級別到高級別,系統(tǒng)自動轉(zhuǎn)的;
強(qiáng)制類型轉(zhuǎn)換: 什么情況下使用?把一個(gè)高級別的數(shù)賦給一個(gè)別該數(shù)的級別低的變量;
運(yùn)算符號:
(1)、算術(shù)運(yùn)算符
+ - * / % %: 任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開關(guān)運(yùn)算。
+:連接符。
++,--:自加、自減
(2)、賦值運(yùn)算符
= += -= *= /= %=
(3)、比較運(yùn)算符
特點(diǎn):該運(yùn)算符的特點(diǎn)是:運(yùn)算完的結(jié)果,要么是true,要么是false。
(4)、邏輯運(yùn)算符
& | ^ ! && ||
邏輯運(yùn)算符除了 ! 外都是用于連接兩個(gè)boolean類型表達(dá)式。
&: 只有兩邊都為true結(jié)果是true。否則就是false。
|:只要兩邊都為false結(jié)果是false,否則就是true
^:異或:和或有點(diǎn)不一樣。
兩邊結(jié)果一樣,就為false。
兩邊結(jié)果不一樣,就為true.
& 和 &&區(qū)別: & :無論左邊結(jié)果是什么,右邊都參與運(yùn)算。
&&:短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。
| 和|| 區(qū)別: |:兩邊都運(yùn)算。
||:短路或,如果左邊為true,那么右邊不參與運(yùn)算。
(5)、位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。
& | ^
<< >> >>>(無符號右移)
練習(xí):對兩個(gè)變量的數(shù)據(jù)進(jìn)行互換。不需要第三方變量。
int a = 3,b = 5;-->b = 3,a = 5;
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
a = a ^ b;//b = a ^ b;//b = a ^ b ^ b = aa = a ^ b;//a = a ^ b ^ a = b;
5、語句
If switch do while while for
這些語句什么時(shí)候用?
1)、當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if,也可以使用switch。
但是建議使用switch,效率相對較高。
switch(變量){
case 值:要執(zhí)行的語句;break;
…default:要執(zhí)行的語句;
}
工作原理:用小括號中的變量的值依次和case后面的值進(jìn)行對比,和哪個(gè)case后面的值相同了就執(zhí)行哪個(gè)case后面的語句,如果沒有相同的則執(zhí)行default后面的語句;
細(xì)節(jié):
1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止;
2):switch可以填byte short int char String enum;
3):default可以寫在switch結(jié)構(gòu)中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會從default開始執(zhí)行直到第一個(gè)break出現(xiàn)。
4)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類型時(shí),需要使用if。
5)、當(dāng)某些語句需要執(zhí)行很多次時(shí),就用循環(huán)結(jié)構(gòu)。
while和for可以進(jìn)行互換。
區(qū)別在于:如果需要定義變量控制循環(huán)次數(shù)。建議使用for。因?yàn)閒or循環(huán)完畢,變量在內(nèi)存中釋放。
break: 作用于switch ,和循環(huán)語句,用于跳出,或者稱為結(jié)束。
break語句單獨(dú)存在時(shí),下面不要定義其他語句,因?yàn)閳?zhí)行不到,編譯會失敗。當(dāng)循環(huán)嵌套時(shí),break只跳出當(dāng)前所在循環(huán)。要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱之為標(biāo)號。
continue: 只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。
作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語句單獨(dú)存在時(shí),下面不可以定義語句,執(zhí)行不到。
6、函 數(shù)
為了提高代碼的復(fù)用性,可以將其定義成一個(gè)單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。
java中的函數(shù)的定義格式:
修飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)1,…)
{執(zhí)行語句;
return 返回值;
}
當(dāng)函數(shù)沒有具體的返回值時(shí),返回的返回值類型用void關(guān)鍵字表示。
void類型是不需要返回值的,所以不需要加return
return的作用: 結(jié)束函數(shù)。結(jié)束功能。
如何定義一個(gè)函數(shù)?
函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過兩個(gè)明確來完成:
1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。
2)、在實(shí)現(xiàn)該功能的過程中是否有未知內(nèi)容參與了運(yùn)算,其實(shí)就是在明確這個(gè)函數(shù)的參數(shù)列表(參數(shù)類型&參數(shù)個(gè)數(shù))。
函數(shù)的作用:
1)、用于定義功能。
2)、用于封裝代碼提高代碼的復(fù)用性。
注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)。
主函數(shù):
1)、保證該類的獨(dú)立運(yùn)行。
2)、因?yàn)樗浅绦虻娜肟凇?/span>
3)、因?yàn)樗诒籮vm調(diào)用。
函數(shù)定義名稱是為什么呢?
答:1)、為了對該功能進(jìn)行標(biāo)示,方便于調(diào)用。
2)、為了通過名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。
重載的定義是:在一個(gè)類中,如果出現(xiàn)了兩個(gè)或者兩個(gè)以上的同名函數(shù),只要它們的參數(shù)的個(gè)數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。
如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒關(guān)系。
總結(jié):javaSE內(nèi)容是Java的入門知識,屬于重中之重,新手很多都會卡在這里,這里給大家提供個(gè)技巧,第一遍學(xué)不懂沒關(guān)系,學(xué)習(xí)不要停下來,繼續(xù)往下走,等把整個(gè)體系過完一遍后,再回頭從0開始學(xué)一遍,這一遍就重點(diǎn)掌握練習(xí)思考第一遍沒學(xué)懂的知識,并做記錄,這是一個(gè)很好的學(xué)習(xí)方法。
掃碼二維碼 獲取免費(fèi)視頻學(xué)習(xí)資料
- 本文固定鏈接: http://www.wangchenghua.com/post/10873/
- 轉(zhuǎn)載請注明:轉(zhuǎn)載必須在正文中標(biāo)注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費(fèi)視頻資料