java入門基礎(chǔ)知識有哪些_java語法基礎(chǔ)知識 IT知識
電腦知識 由優(yōu)爾供稿零基礎(chǔ)入門學(xué)習(xí)Java開發(fā)要學(xué)習(xí)Java基礎(chǔ)語法、關(guān)鍵字、標(biāo)識符、變量、AScii碼和Unicode碼、基本數(shù)據(jù)類型轉(zhuǎn)化、String類、進(jìn)制、運(yùn)算符、程序流程控制語句等基礎(chǔ)知識。下面是9252兒童網(wǎng)小編為大家整理的java入門基礎(chǔ)知識,希望對你們有幫助。
Java初學(xué)者基礎(chǔ)知識
1、先明白了解什么是Java的四個方面
初學(xué)者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區(qū)別與聯(lián)系,分別有哪些應(yīng)用。想想這些代碼中用到了哪些知識點。不要一味地照著書本敲代碼。而不去理解。
1.Java編程語言,即語法。
2.Java文件格式,即各種文件夾、文件的后綴。
3.Java虛擬機(jī)(JVM),即處理*.class文件的解釋器。
4.Java應(yīng)用程序接口(Java API)。
2、掌握靜態(tài)方法和屬性
靜態(tài)方法和屬性用于描述某一類對象群體的特征,而不是單個對象的特征。Java中大量應(yīng)用了靜態(tài)方法和屬性,這是一個通常的技巧。但是這種技巧在很多語言中不被頻繁地使用。理解靜態(tài)方法和屬性對于理解類與對象的關(guān)系是十分有幫助的,在大量的Java規(guī)范中,靜態(tài)方法和屬性被頻繁使用。因此學(xué)習(xí)者應(yīng)該理解靜態(tài)方法和屬性。Java在方法和屬性的調(diào)用上是一致的,區(qū)別只表現(xiàn)在聲明的時候,這和c++是不同的。
3、初學(xué)者還需明白JAVA的三個技術(shù)平臺的關(guān)系
Java分為三個體系,分別為Java SE(J2SE,Java2 Platform Standard Edition,標(biāo)準(zhǔn)版)。JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業(yè)版)。Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
要知道java是分兩部分的:一個是編譯,一個是運(yùn)行。
javac:負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時,會啟動java的編譯器程序。對指定擴(kuò)展名的.java文件進(jìn)行編譯。 生成了jvm可以識別的字節(jié)碼文件。也就是class文件,也就是java的運(yùn)行程序。
java:負(fù)責(zé)運(yùn)行的部分.會啟動jvm.加載運(yùn)行時所需的類庫,并對class文件進(jìn)行執(zhí)行.一個文件要被執(zhí)行,必須要有一個執(zhí)行的起始點,這個起始點就是main函數(shù)。
4、掌握J(rèn)AVA代碼的基本格式
1、Java注釋盡可能全面
對于方法的注釋應(yīng)該包含詳細(xì)的入?yún)⒑徒Y(jié)果說明,有異常拋出的情況也要詳細(xì)敘述:類的注釋應(yīng)該包含類的.功能說明、作者和修改者。
2、多次使用的相同變量最好歸納成常量
多處使用的相同值的變量應(yīng)該盡量歸納為一個常量,方便日后的維護(hù)。
3、盡量少的在循環(huán)中執(zhí)行方法調(diào)用
盡量在循環(huán)中少做一些可避免的方法調(diào)用,這樣可以節(jié)省方法棧的創(chuàng)建。例如:
for(int i=0;i
System.out.println(i);
}
可以修改為:
for(int i=0,size=list.size();i
System.out.println(i);
}
4、常量的定義可以放到接口中
在Java中,接口里只允許存在常量,因此把常量放到接口中聲明就可以省去public static final這幾個關(guān)鍵詞。
5、ArrayList和LinkedList的選擇
這個問題比較常見。通常程序員最好能夠?qū)ist的使用場景做出評估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實現(xiàn)的,因此隨機(jī)讀取數(shù)據(jù)會比LinkedList快很多,而LinkedList是使用鏈表實現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。
6、String,StringBuffer和StringBuilder
這個問題也比較常見。在進(jìn)行字符串拼接處理的時候,String通常會產(chǎn)生多個對象,而且將多個值緩存到常量池中。例如:
String a=“a”;
String b=“b”;
a=a+b;
這種情況下jvm會產(chǎn)生“a”,“b”,“ab”三個對象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時候盡量采用StringBuffer和StringBuilder來。
7、包裝類和基本類型的選擇
在代碼中,如果可以使用基本數(shù)據(jù)類型來做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因為基本類型的變量是存放在棧中的,包裝類的變量是在堆中,棧的操作速度比堆快很多。
8、盡早的將不再使用的變量引用賦給null
這樣做可以幫助jvm更快的進(jìn)行內(nèi)存回收。當(dāng)然很多人其實對這種做法并不感冒。
9、在finally塊中對資源進(jìn)行釋放
典型的場景是使用io流的時候,不論是否出現(xiàn)異常最后都應(yīng)該在finally中對流進(jìn)行關(guān)閉。
10、在HashMap中使用一個Object作為key時要注意如何區(qū)分Object是否相同
在jdk的HashMap實現(xiàn)中,判斷兩個Object類型的key是否相同的標(biāo)準(zhǔn)是hashcode是否相同和equals方法的返回值。如果業(yè)務(wù)上需要對兩個數(shù)據(jù)相同的內(nèi)存對象當(dāng)作不同的key存儲到hashmap中就要對hashcode和equals方法進(jìn)行覆蓋。
Java描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的主要方式是集合框架。Java沒有指針,而是通過強(qiáng)大的集合框架描述數(shù)組、對象數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。學(xué)好這些數(shù)據(jù)結(jié)構(gòu)的描述方法對于應(yīng)用程序編寫,特別是涉及到服務(wù)器方、3層結(jié)構(gòu)編程至關(guān)重要。程序員在這個時候不能再用諸如數(shù)據(jù)庫結(jié)果集之類的結(jié)構(gòu)描述數(shù)據(jù)了。
由于很多語言沒有這么強(qiáng)大的集合框架體系,很多初學(xué)者不知所措,更不知道拿來做什么用,因此應(yīng)該引起足夠的重視。
Java的基礎(chǔ)知識
Int基本類型
首先,Java整數(shù)是32位有符號(即正整數(shù)和負(fù)整數(shù)),用int關(guān)鍵字表示:
Int someNumber = 10;
當(dāng)然,與所有基本類型一樣,整數(shù)也有其局限性。因為它只有32位,所以它的值范圍從-2147483648到2147483647。那可是個大數(shù)目!當(dāng)然,我們可以使用以下技術(shù)在DrJava交互面板中確認(rèn)這一點:
MAX_VALUE //打印2,147,483,647整數(shù)。MIN_VALUE //打印-2,147,483,648
自然,int是最常用的用于簡單計算的整數(shù)類型。如果您需要更大的數(shù)字范圍,請參閱下面的long。
兩個基本類型
與int不同,Java的double類型是一個64位浮點數(shù),由double關(guān)鍵字表示:
雙someNumber = 110.55;
需要注意的是,浮點數(shù)實際上是實數(shù)。換句話說,一個雙精度浮點數(shù)包含一個小數(shù)點。
由于雙精度類型是64位的,所以它可以表示比整數(shù)更多的數(shù)字。同樣,我們可以使用交互面板來確認(rèn)雙精度類型的范圍:
翻倍。MAX_VALUE / / 1.7976931348623157 e308雙打印
重要的是要注意,負(fù)指數(shù)表示非常小的數(shù)字,而不是非常大的負(fù)數(shù)。所以這里的取值范圍和整數(shù)不完全一樣。
通常,double是Java中使用浮點數(shù)的默認(rèn)選擇。另一種選擇是浮動。
炭基類型
如我們所見,Java中的字符類型表示16個字符,由CHAR關(guān)鍵字表示:
Char someCharacter = 'f';
Java中的所有字符都用單引號表示。此外,雙引號用于表示字符串。我們稍后會講到字符串。(頁面)
像往常一樣,我們可以通過以下代碼來查找字符的范圍:
的性格。MAX_VALUE / / print '??'字符。MIN_VALUE / /打印”
為了使這個范圍有意義,我們可以把結(jié)果轉(zhuǎn)換成整數(shù)(更多關(guān)于這個稍后):
(int)字符。輸出65535(int)字符。min_value //輸出0
如您所見,char類型是Java中唯一的無符號類型。換句話說,字符的值范圍從0到65535,每個值映射到一個特定的字符。如果需要創(chuàng)建該范圍之外的字符,可以組合一對字符。
字節(jié)基類型
當(dāng)我們討論二進(jìn)制時,我們實際上是在討論比特的概念。字節(jié)由8位組成,字節(jié)是Java支持的基本類型之一。實際上,字節(jié)類型只不過是一個8位整數(shù),其值從-128到127不等??梢圆碌?,字節(jié)由byte關(guān)鍵字表示:
someByte = 20;
同樣,您可以使用以下代碼片段來確認(rèn)字節(jié)類型的值范圍:
字節(jié)。輸出127字節(jié)。min_value //打印-128
字節(jié)類型在讀取和處理原始數(shù)據(jù)時很有用。但一般來說,我們不會用它因為范圍太小了。
java語法基礎(chǔ)知識
1,關(guān)鍵字:其實就是某種語言賦予了特殊含義的單詞。
保留字:其實就是還沒有賦予特殊含義,但是準(zhǔn)備日后要使用過的單詞。
2,標(biāo)示符:其實就是在程序中自定義的名詞。比如類名,變量名,函數(shù)名。包含 0-9、a-z、$、_ ;
注意:
1),數(shù)字不可以開頭。
2),不可以使用關(guān)鍵字。
3,常量:是在程序中的不會變化的數(shù)據(jù)。
4,變量:其實就是內(nèi)存中的一個存儲空間,用于存儲常量數(shù)據(jù)。
作用:方便于運(yùn)算。因為有些數(shù)據(jù)不確定。所以確定該數(shù)據(jù)的名詞和存儲空間。
特點:變量空間可以重復(fù)使用。
什么時候定義變量?只要是數(shù)據(jù)不確定的時候,就定義變量。
變量空間的開辟需要什么要素呢?
1,這個空間要存儲什么數(shù)據(jù)?數(shù)據(jù)類型。
2,這個空間叫什么名字啊?變量名稱。
3,這個空間的第一次的數(shù)據(jù)是什么? 變量的初始化值。
變量的作用域和生存期:
變量的作用域:
作用域從變量定義的位置開始,到該變量所在的那對大括號結(jié)束;
生命周期:
變量從定義的位置開始就在內(nèi)存中活了;
變量到達(dá)它所在的作用域的時候就在內(nèi)存中消失了;
數(shù)據(jù)類型:
1):基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean
2):引用數(shù)據(jù)類型: 數(shù)組、類、接口。
級別從低到高為:byte,char,short(這三個平級)-->int-->float-->long-->double
自動類型轉(zhuǎn)換:從低級別到高級別,系統(tǒng)自動轉(zhuǎn)的;
強(qiáng)制類型轉(zhuǎn)換:什么情況下使用?把一個高級別的數(shù)賦給一個別該數(shù)的級別低的變量;
運(yùn)算符號:
1)、算術(shù)運(yùn)算符。
+ - * / % %:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實現(xiàn)開關(guān)運(yùn)算。
+:連接符。
++,--
2)、賦值運(yùn)算符。
= += -= *= /= %=
3)、比較運(yùn)算符。
特點:該運(yùn)算符的特點是:運(yùn)算完的`結(jié)果,要么是true,要么是false。
4)、邏輯運(yùn)算符。
& ^ ! &&
邏輯運(yùn)算符除了 ! 外都是用于連接兩個boolean類型表達(dá)式。
&: 只有兩邊都為true結(jié)果是true。否則就是false。
:只要兩邊都為false結(jié)果是false,否則就是true
^:異或:和或有點不一樣。
兩邊結(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í):對兩個變量的數(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 = a
a = a ^ b;//a = a ^ b ^ a = b;
練習(xí):高效的算出 2*8 = 2<<3;
5,語句。
If switch do while while for
這些語句什么時候用?
1)、當(dāng)判斷固定個數(shù)的值的時候,可以使用if,也可以使用switch。
但是建議使用switch,效率相對較高。
switch(變量){
case 值:要執(zhí)行的語句;break;
…
default:要執(zhí)行的語句;
}
工作原理:用小括號中的變量的值依次和case后面的值進(jìn)行對比,和哪個case后面的值相同了
就執(zhí)行哪個case后面的語句,如果沒有相同的則執(zhí)行default后面的語句;
細(xì)節(jié):1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止;
2):switch 后面的小括號中的變量應(yīng)該是byte,char,short,int四種類型中的一種;
3):default可以寫在switch結(jié)構(gòu)中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會從default開始執(zhí)行直到第一個break出現(xiàn)。
2)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類型時,需要使用if。
3)、當(dāng)某些語句需要執(zhí)行很多次時,就用循環(huán)結(jié)構(gòu)。
while和for可以進(jìn)行互換。
區(qū)別在于:如果需要定義變量控制循環(huán)次數(shù)。建議使用for。因為for循環(huán)完畢,變量在內(nèi)存中釋放。
break:作用于switch ,和循環(huán)語句,用于跳出,或者稱為結(jié)束。
break語句單獨(dú)存在時,下面不要定義其他語句,因為執(zhí)行不到,編譯會失敗。當(dāng)循環(huán)嵌套時,break只跳出當(dāng)前所在循環(huán)。要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個名字稱之為標(biāo)號。
continue:只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。
作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語句單獨(dú)存在時,下面不可以定義語句,執(zhí)行不到。
三 函數(shù)
6,函 數(shù):為了提高代碼的復(fù)用性,可以將其定義成一個單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。
java中的函數(shù)的定義格式:
修飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)1,…){
執(zhí)行語句;
return 返回值;
}
當(dāng)函數(shù)沒有具體的返回值時,返回的返回值類型用void關(guān)鍵字表示。
如果函數(shù)的返回值類型是void時,return語句可以省略不寫的,系統(tǒng)會幫你自動加上。
return的作用:結(jié)束函數(shù)。結(jié)束功能。
如何定義一個函數(shù)?
函數(shù)其實就是一個功能,定義函數(shù)就是實現(xiàn)功能,通過兩個明確來完成:
1)、明確該功能的運(yùn)算完的結(jié)果,其實是在明確這個函數(shù)的返回值類型。
2)、在實現(xiàn)該功能的過程中是否有未知內(nèi)容參與了運(yùn)算,其實就是在明確這個函數(shù)的參數(shù)列表(參數(shù)類型&參數(shù)個數(shù))。
函數(shù)的作用:
1)、用于定義功能。
2)、用于封裝代碼提高代碼的復(fù)用性。
注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)。
主函數(shù):
1)、保證該類的獨(dú)立運(yùn)行。
2)、因為它是程序的入口。
3)、因為它在被jvm調(diào)用。
函數(shù)定義名稱是為什么呢?
答:1)、為了對該功能進(jìn)行標(biāo)示,方便于調(diào)用。
2)、為了通過名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。
重載的定義是:在一個類中,如果出現(xiàn)了兩個或者兩個以上的同名函數(shù),只要它們的參數(shù)的個數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。
如何區(qū)分重載:當(dāng)函數(shù)同名時,只看參數(shù)列表。和返回值類型沒關(guān)系。
7,數(shù) 組:用于存儲同一類型數(shù)據(jù)的一個容器。好處:可以對該容器中的數(shù)據(jù)進(jìn)行編號,從0開始。數(shù)組用于封裝數(shù)據(jù),就是一個具體的實體。
如何在java中表現(xiàn)一個數(shù)組呢?兩種表現(xiàn)形式。
1)、元素類型[] 變量名 = new 元素類型[元素的個數(shù)];
2)、元素類型[] 變量名 = {元素1,元素2...};
元素類型[] 變量名 = new 元素類型[]{元素1,元素2...};
---------------------------------------------------------
//二分查找法。必須有前提:數(shù)組中的元素要有序。
public static int halfSeach_2(int[] arr,int key){
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (max+min)>>1; //(max+min)/2;
while(arr[mid]!=key){
if(key>arr[mid]){
min = mid + 1;
}
else if(key
max = mid - 1;
if(max
return -1;
mid = (max+min)>>1;
}
return mid;
}
---------------------------------------------------------
java分了5片內(nèi)存。
1:寄存器。2:本地方法區(qū)。3:方法區(qū)。4:棧。5:堆。
棧:存儲的都是局部變量 ( 函數(shù)中定義的變量,函數(shù)上的參數(shù),語句中的變量 );
只要數(shù)據(jù)運(yùn)算完成所在的區(qū)域結(jié)束,該數(shù)據(jù)就會被釋放。
堆:用于存儲數(shù)組和對象,也就是實體。啥是實體啊?就是用于封裝多個數(shù)據(jù)的。
1:每一個實體都有內(nèi)存首地址值。
2:堆內(nèi)存中的變量都有默認(rèn)初始化值。因為數(shù)據(jù)類型不同,值也不一樣。
3:垃圾回收機(jī)制。
- c語言基礎(chǔ)常識有哪些_C語言基礎(chǔ)常識
- it運(yùn)維知識有哪些_IT英文縮寫
- c語言的冷知識有哪些_C語言的優(yōu)缺點
- 計算機(jī)基礎(chǔ)知識有哪些_計算機(jī)基礎(chǔ)操作入門
- java面試基礎(chǔ)知識有哪些_Java工程師需要具
- java編程的基礎(chǔ)理論知識有哪些_java程序員
- IT程序員必備的基礎(chǔ)知識有哪些_計算機(jī)硬件
- java程序設(shè)計基礎(chǔ)知識有哪些_Java編程語言
- it運(yùn)維基礎(chǔ)知識有哪些_it基礎(chǔ)知識
- it的分類及基礎(chǔ)知識_計算機(jī)的應(yīng)用領(lǐng)域
- c語言重要知識點有哪些_C語言基本算法
- java基礎(chǔ)知識有哪些_Java程序員必須掌握知