最新国产在线不卡AV,国产又爽又黄的视频免费看,精品综合久久久久久97,日韩欧美高清中文字幕免费一区二区

            科普

            java入門基礎(chǔ)知識(shí)有哪些_java語(yǔ)法基礎(chǔ)知識(shí) IT知識(shí)

            電腦知識(shí)優(yōu)爾供稿

            零基礎(chǔ)入門學(xué)習(xí)Java開(kāi)發(fā)要學(xué)習(xí)Java基礎(chǔ)語(yǔ)法、關(guān)鍵字、標(biāo)識(shí)符、變量、AScii碼和Unicode碼、基本數(shù)據(jù)類型轉(zhuǎn)化、String類、進(jìn)制、運(yùn)算符、程序流程控制語(yǔ)句等基礎(chǔ)知識(shí)。下面是9252兒童網(wǎng)小編為大家整理的java入門基礎(chǔ)知識(shí),希望對(duì)你們有幫助。

            java入門基礎(chǔ)知識(shí)有哪些

            Java初學(xué)者基礎(chǔ)知識(shí)

            1、先明白了解什么是Java的四個(gè)方面

            初學(xué)者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區(qū)別與聯(lián)系,分別有哪些應(yīng)用。想想這些代碼中用到了哪些知識(shí)點(diǎn)。不要一味地照著書本敲代碼。而不去理解。

            1.Java編程語(yǔ)言,即語(yǔ)法。

            2.Java文件格式,即各種文件夾、文件的后綴。

            3.Java虛擬機(jī)(JVM),即處理*.class文件的解釋器。

            4.Java應(yīng)用程序接口(Java API)。

            2、掌握靜態(tài)方法和屬性

            靜態(tài)方法和屬性用于描述某一類對(duì)象群體的特征,而不是單個(gè)對(duì)象的特征。Java中大量應(yīng)用了靜態(tài)方法和屬性,這是一個(gè)通常的技巧。但是這種技巧在很多語(yǔ)言中不被頻繁地使用。理解靜態(tài)方法和屬性對(duì)于理解類與對(duì)象的關(guān)系是十分有幫助的,在大量的Java規(guī)范中,靜態(tài)方法和屬性被頻繁使用。因此學(xué)習(xí)者應(yīng)該理解靜態(tài)方法和屬性。Java在方法和屬性的調(diào)用上是一致的,區(qū)別只表現(xiàn)在聲明的時(shí)候,這和c++是不同的。

            3、初學(xué)者還需明白JAVA的三個(gè)技術(shù)平臺(tái)的關(guān)系

            Java分為三個(gè)體系,分別為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是分兩部分的:一個(gè)是編譯,一個(gè)是運(yùn)行。

            javac:負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時(shí),會(huì)啟動(dòng)java的編譯器程序。對(duì)指定擴(kuò)展名的.java文件進(jìn)行編譯。 生成了jvm可以識(shí)別的字節(jié)碼文件。也就是class文件,也就是java的運(yùn)行程序。

            java:負(fù)責(zé)運(yùn)行的部分.會(huì)啟動(dòng)jvm.加載運(yùn)行時(shí)所需的類庫(kù),并對(duì)class文件進(jìn)行執(zhí)行.一個(gè)文件要被執(zhí)行,必須要有一個(gè)執(zhí)行的起始點(diǎn),這個(gè)起始點(diǎn)就是main函數(shù)。

            4、掌握J(rèn)AVA代碼的基本格式

            1、Java注釋盡可能全面

            對(duì)于方法的注釋應(yīng)該包含詳細(xì)的入?yún)⒑徒Y(jié)果說(shuō)明,有異常拋出的情況也要詳細(xì)敘述:類的注釋應(yīng)該包含類的.功能說(shuō)明、作者和修改者。

            2、多次使用的相同變量最好歸納成常量

            多處使用的相同值的變量應(yīng)該盡量歸納為一個(gè)常量,方便日后的維護(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這幾個(gè)關(guān)鍵詞。

            5、ArrayList和LinkedList的選擇

            這個(gè)問(wèn)題比較常見(jiàn)。通常程序員最好能夠?qū)ist的使用場(chǎng)景做出評(píng)估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實(shí)現(xiàn)的,因此隨機(jī)讀取數(shù)據(jù)會(huì)比LinkedList快很多,而LinkedList是使用鏈表實(shí)現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。

            6、String,StringBuffer和StringBuilder

            這個(gè)問(wèn)題也比較常見(jiàn)。在進(jìn)行字符串拼接處理的時(shí)候,String通常會(huì)產(chǎn)生多個(gè)對(duì)象,而且將多個(gè)值緩存到常量池中。例如:

            String a=“a”;

            String b=“b”;

            a=a+b;

            這種情況下jvm會(huì)產(chǎn)生“a”,“b”,“ab”三個(gè)對(duì)象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時(shí)候盡量采用StringBuffer和StringBuilder來(lái)。

            7、包裝類和基本類型的選擇

            在代碼中,如果可以使用基本數(shù)據(jù)類型來(lái)做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因?yàn)榛绢愋偷淖兞渴谴娣旁跅V械模b類的變量是在堆中,棧的操作速度比堆快很多。

            8、盡早的將不再使用的變量引用賦給null

            這樣做可以幫助jvm更快的進(jìn)行內(nèi)存回收。當(dāng)然很多人其實(shí)對(duì)這種做法并不感冒。

            9、在finally塊中對(duì)資源進(jìn)行釋放

            典型的場(chǎng)景是使用io流的時(shí)候,不論是否出現(xiàn)異常最后都應(yīng)該在finally中對(duì)流進(jìn)行關(guān)閉。

            10、在HashMap中使用一個(gè)Object作為key時(shí)要注意如何區(qū)分Object是否相同

            在jdk的HashMap實(shí)現(xiàn)中,判斷兩個(gè)Object類型的key是否相同的標(biāo)準(zhǔn)是hashcode是否相同和equals方法的返回值。如果業(yè)務(wù)上需要對(duì)兩個(gè)數(shù)據(jù)相同的內(nèi)存對(duì)象當(dāng)作不同的key存儲(chǔ)到hashmap中就要對(duì)hashcode和equals方法進(jìn)行覆蓋。

            Java描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的主要方式是集合框架。Java沒(méi)有指針,而是通過(guò)強(qiáng)大的集合框架描述數(shù)組、對(duì)象數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。學(xué)好這些數(shù)據(jù)結(jié)構(gòu)的描述方法對(duì)于應(yīng)用程序編寫,特別是涉及到服務(wù)器方、3層結(jié)構(gòu)編程至關(guān)重要。程序員在這個(gè)時(shí)候不能再用諸如數(shù)據(jù)庫(kù)結(jié)果集之類的結(jié)構(gòu)描述數(shù)據(jù)了。

            由于很多語(yǔ)言沒(méi)有這么強(qiáng)大的集合框架體系,很多初學(xué)者不知所措,更不知道拿來(lái)做什么用,因此應(yīng)該引起足夠的重視。

            Java的基礎(chǔ)知識(shí)

            Int基本類型

            首先,Java整數(shù)是32位有符號(hào)(即正整數(shù)和負(fù)整數(shù)),用int關(guān)鍵字表示:

            Int someNumber = 10;

            當(dāng)然,與所有基本類型一樣,整數(shù)也有其局限性。因?yàn)樗挥?2位,所以它的值范圍從-2147483648到2147483647。那可是個(gè)大數(shù)目!當(dāng)然,我們可以使用以下技術(shù)在DrJava交互面板中確認(rèn)這一點(diǎn):

            MAX_VALUE //打印2,147,483,647整數(shù)。MIN_VALUE //打印-2,147,483,648

            自然,int是最常用的用于簡(jiǎn)單計(jì)算的整數(shù)類型。如果您需要更大的數(shù)字范圍,請(qǐng)參閱下面的long。

            兩個(gè)基本類型

            與int不同,Java的double類型是一個(gè)64位浮點(diǎn)數(shù),由double關(guān)鍵字表示:

            雙someNumber = 110.55;

            需要注意的是,浮點(diǎn)數(shù)實(shí)際上是實(shí)數(shù)。換句話說(shuō),一個(gè)雙精度浮點(diǎn)數(shù)包含一個(gè)小數(shù)點(diǎn)。

            由于雙精度類型是64位的,所以它可以表示比整數(shù)更多的數(shù)字。同樣,我們可以使用交互面板來(lái)確認(rèn)雙精度類型的范圍:

            翻倍。MAX_VALUE / / 1.7976931348623157 e308雙打印

            重要的是要注意,負(fù)指數(shù)表示非常小的數(shù)字,而不是非常大的負(fù)數(shù)。所以這里的取值范圍和整數(shù)不完全一樣。

            通常,double是Java中使用浮點(diǎn)數(shù)的默認(rèn)選擇。另一種選擇是浮動(dòng)。

            炭基類型

            如我們所見(jiàn),Java中的字符類型表示16個(gè)字符,由CHAR關(guān)鍵字表示:

            Char someCharacter = 'f';

            Java中的所有字符都用單引號(hào)表示。此外,雙引號(hào)用于表示字符串。我們稍后會(huì)講到字符串。(頁(yè)面)

            像往常一樣,我們可以通過(guò)以下代碼來(lái)查找字符的范圍:

            的性格。MAX_VALUE / / print '??'字符。MIN_VALUE / /打印”

            為了使這個(gè)范圍有意義,我們可以把結(jié)果轉(zhuǎn)換成整數(shù)(更多關(guān)于這個(gè)稍后):

            (int)字符。輸出65535(int)字符。min_value //輸出0

            如您所見(jiàn),char類型是Java中唯一的無(wú)符號(hào)類型。換句話說(shuō),字符的值范圍從0到65535,每個(gè)值映射到一個(gè)特定的字符。如果需要?jiǎng)?chuàng)建該范圍之外的字符,可以組合一對(duì)字符。

            字節(jié)基類型

            當(dāng)我們討論二進(jìn)制時(shí),我們實(shí)際上是在討論比特的概念。字節(jié)由8位組成,字節(jié)是Java支持的基本類型之一。實(shí)際上,字節(jié)類型只不過(guò)是一個(gè)8位整數(shù),其值從-128到127不等??梢圆碌?,字節(jié)由byte關(guān)鍵字表示:

            someByte = 20;

            同樣,您可以使用以下代碼片段來(lái)確認(rèn)字節(jié)類型的值范圍:

            字節(jié)。輸出127字節(jié)。min_value //打印-128

            字節(jié)類型在讀取和處理原始數(shù)據(jù)時(shí)很有用。但一般來(lái)說(shuō),我們不會(huì)用它因?yàn)榉秶×恕?/p>

            java語(yǔ)法基礎(chǔ)知識(shí)

            1,關(guān)鍵字:其實(shí)就是某種語(yǔ)言賦予了特殊含義的單詞。

            保留字:其實(shí)就是還沒(méi)有賦予特殊含義,但是準(zhǔn)備日后要使用過(guò)的單詞。

            2,標(biāo)示符:其實(shí)就是在程序中自定義的名詞。比如類名,變量名,函數(shù)名。包含 0-9、a-z、$、_ ;

            注意:

            1),數(shù)字不可以開(kāi)頭。

            2),不可以使用關(guān)鍵字。

            3,常量:是在程序中的不會(huì)變化的數(shù)據(jù)。

            4,變量:其實(shí)就是內(nèi)存中的一個(gè)存儲(chǔ)空間,用于存儲(chǔ)常量數(shù)據(jù)。

            作用:方便于運(yùn)算。因?yàn)橛行?shù)據(jù)不確定。所以確定該數(shù)據(jù)的名詞和存儲(chǔ)空間。

            特點(diǎn):變量空間可以重復(fù)使用。

            什么時(shí)候定義變量?只要是數(shù)據(jù)不確定的時(shí)候,就定義變量。

            變量空間的開(kāi)辟需要什么要素呢?

            1,這個(gè)空間要存儲(chǔ)什么數(shù)據(jù)?數(shù)據(jù)類型。

            2,這個(gè)空間叫什么名字啊?變量名稱。

            3,這個(gè)空間的第一次的數(shù)據(jù)是什么? 變量的初始化值。

            變量的作用域和生存期:

            變量的作用域:

            作用域從變量定義的位置開(kāi)始,到該變量所在的那對(duì)大括號(hào)結(jié)束;

            生命周期:

            變量從定義的位置開(kāi)始就在內(nèi)存中活了;

            變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;

            數(shù)據(jù)類型:

            1):基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean

            2):引用數(shù)據(jù)類型: 數(shù)組、類、接口。

            級(jí)別從低到高為:byte,char,short(這三個(gè)平級(jí))-->int-->float-->long-->double

            自動(dòng)類型轉(zhuǎn)換:從低級(jí)別到高級(jí)別,系統(tǒng)自動(dòng)轉(zhuǎn)的;

            強(qiáng)制類型轉(zhuǎn)換:什么情況下使用?把一個(gè)高級(jí)別的數(shù)賦給一個(gè)別該數(shù)的級(jí)別低的變量;

            運(yùn)算符號(hào):

            1)、算術(shù)運(yùn)算符。

            + - * / % %:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開(kāi)關(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ū)別: & :無(wú)論左邊結(jié)果是什么,右邊都參與運(yùn)算。

            &&:短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。

            和 區(qū)別::兩邊都運(yùn)算。

            :短路或,如果左邊為true,那么右邊不參與運(yùn)算。

            5)、位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。

            & ^

            << >> >>>(無(wú)符號(hào)右移)

            練習(xí):對(duì)兩個(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 = a

            a = a ^ b;//a = a ^ b ^ a = b;

            練習(xí):高效的算出 2*8 = 2<<3;

            5,語(yǔ)句。

            If switch do while while for

            這些語(yǔ)句什么時(shí)候用?

            1)、當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if,也可以使用switch。

            但是建議使用switch,效率相對(duì)較高。

            switch(變量){

            case 值:要執(zhí)行的語(yǔ)句;break;

            default:要執(zhí)行的語(yǔ)句;

            }

            工作原理:用小括號(hào)中的變量的值依次和case后面的值進(jìn)行對(duì)比,和哪個(gè)case后面的值相同了

            就執(zhí)行哪個(gè)case后面的語(yǔ)句,如果沒(méi)有相同的則執(zhí)行default后面的語(yǔ)句;

            細(xì)節(jié):1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止;

            2):switch 后面的小括號(hào)中的變量應(yīng)該是byte,char,short,int四種類型中的一種;

            3):default可以寫在switch結(jié)構(gòu)中的任意位置;如果將default語(yǔ)句放在了第一行,則不管expression與case中的value是否匹配,程序會(huì)從default開(kāi)始執(zhí)行直到第一個(gè)break出現(xiàn)。

            2)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類型時(shí),需要使用if。

            3)、當(dāng)某些語(yǔ)句需要執(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)語(yǔ)句,用于跳出,或者稱為結(jié)束。

            break語(yǔ)句單獨(dú)存在時(shí),下面不要定義其他語(yǔ)句,因?yàn)閳?zhí)行不到,編譯會(huì)失敗。當(dāng)循環(huán)嵌套時(shí),break只跳出當(dāng)前所在循環(huán)。要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱之為標(biāo)號(hào)。

            continue:只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。

            作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語(yǔ)句單獨(dú)存在時(shí),下面不可以定義語(yǔ)句,執(zhí)行不到。

            三 函數(shù)

            6,函 數(shù):為了提高代碼的復(fù)用性,可以將其定義成一個(gè)單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。

            java中的函數(shù)的定義格式:

            修飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)1,…){

            執(zhí)行語(yǔ)句;

            return 返回值;

            }

            當(dāng)函數(shù)沒(méi)有具體的返回值時(shí),返回的返回值類型用void關(guān)鍵字表示。

            如果函數(shù)的返回值類型是void時(shí),return語(yǔ)句可以省略不寫的,系統(tǒng)會(huì)幫你自動(dòng)加上。

            return的作用:結(jié)束函數(shù)。結(jié)束功能。

            如何定義一個(gè)函數(shù)?

            函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過(guò)兩個(gè)明確來(lái)完成:

            1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。

            2)、在實(shí)現(xiàn)該功能的過(guò)程中是否有未知內(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)樗浅绦虻娜肟凇?/p>

            3)、因?yàn)樗诒籮vm調(diào)用。

            函數(shù)定義名稱是為什么呢?

            答:1)、為了對(duì)該功能進(jìn)行標(biāo)示,方便于調(diào)用。

            2)、為了通過(guò)名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。

            重載的定義是:在一個(gè)類中,如果出現(xiàn)了兩個(gè)或者兩個(gè)以上的同名函數(shù),只要它們的參數(shù)的個(gè)數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。

            如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒(méi)關(guān)系。

            7,數(shù) 組:用于存儲(chǔ)同一類型數(shù)據(jù)的一個(gè)容器。好處:可以對(duì)該容器中的數(shù)據(jù)進(jìn)行編號(hào),從0開(kāi)始。數(shù)組用于封裝數(shù)據(jù),就是一個(gè)具體的實(shí)體。

            如何在java中表現(xiàn)一個(gè)數(shù)組呢?兩種表現(xiàn)形式。

            1)、元素類型[] 變量名 = new 元素類型[元素的個(gè)數(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:堆。

            棧:存儲(chǔ)的都是局部變量 ( 函數(shù)中定義的變量,函數(shù)上的參數(shù),語(yǔ)句中的變量 );

            只要數(shù)據(jù)運(yùn)算完成所在的區(qū)域結(jié)束,該數(shù)據(jù)就會(huì)被釋放。

            堆:用于存儲(chǔ)數(shù)組和對(duì)象,也就是實(shí)體。啥是實(shí)體啊?就是用于封裝多個(gè)數(shù)據(jù)的。

            1:每一個(gè)實(shí)體都有內(nèi)存首地址值。

            2:堆內(nèi)存中的變量都有默認(rèn)初始化值。因?yàn)閿?shù)據(jù)類型不同,值也不一樣。

            3:垃圾回收機(jī)制。

              為你推薦