更新時(shí)間:2020-08-26 15:32:51 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2578次
1.Java的垮平臺(tái)原理
JVM也是一個(gè)軟件,不同的平臺(tái)有不同的版本。我們編寫(xiě)的Java源碼,編譯后會(huì)生成一種.class文件,稱(chēng)為字節(jié)碼文件。Java虛擬機(jī)就是負(fù)責(zé)將字節(jié)碼文件翻譯成特定平臺(tái)下的機(jī)器碼然后運(yùn)行。也就是說(shuō),只要在不同平臺(tái)上安裝對(duì)應(yīng)的JVM,就可以運(yùn)行字節(jié)碼文件,運(yùn)行我們編寫(xiě)的Java程序。
而這個(gè)過(guò)程中,我們編寫(xiě)的Java程序沒(méi)有做任何改變,僅僅是通過(guò)JVM這一”中間層“,就能在不同平臺(tái)上運(yùn)行,真正實(shí)現(xiàn)了”一次編譯,到處運(yùn)行“的目的。
JVM是一個(gè)”橋梁“,是一個(gè)”中間件“,是實(shí)現(xiàn)跨平臺(tái)的關(guān)鍵,Java代碼首先被編譯成字節(jié)碼文件,再由JVM將字節(jié)碼文件翻譯成機(jī)器語(yǔ)言,從而達(dá)到運(yùn)行Java程序的目的。
注意:編譯的結(jié)果不是生成機(jī)器碼,而是生成字節(jié)碼,字節(jié)碼不能直接運(yùn)行,必須通過(guò)JVM翻譯成機(jī)器碼才能運(yùn)行。不同平臺(tái)下編譯生成的字節(jié)碼是一樣的,但是由JVM翻譯成的機(jī)器碼卻不一樣。
所以,運(yùn)行Java程序必須有JVM的支持,因?yàn)榫幾g的結(jié)果不是機(jī)器碼,必須要經(jīng)過(guò)JVM的再次翻譯才能執(zhí)行。即使你將Java程序打包成可執(zhí)行文件(例如.exe),仍然需要JVM的支持。
注意:跨平臺(tái)的是Java程序,不是JVM。JVM是用C/C++開(kāi)發(fā)的,是編譯后的機(jī)器碼,不能跨平臺(tái),不同平臺(tái)下需要安裝不同版本的JVM。
2.Java中INT占幾個(gè)字節(jié)
char占2個(gè)字節(jié)
boolean一個(gè)字節(jié)(1位)
封裝、抽象、繼承和多態(tài)。
封裝:在面向?qū)ο笳Z(yǔ)言中,封裝特性是由類(lèi)來(lái)體現(xiàn)的,我們將現(xiàn)實(shí)生活中的一類(lèi)實(shí)體定義成類(lèi),其中包括屬性和行為(在Java中就是方法).例如電腦,
抽象:抽象就是將一類(lèi)實(shí)體的共同特性抽象出來(lái),封裝在一個(gè)抽象類(lèi)中,所以抽象在面向?qū)ο笳Z(yǔ)言是由抽象類(lèi)來(lái)體現(xiàn)的。比如人.
class Person{}
繼承:繼承就像是我們現(xiàn)實(shí)生活中的父子關(guān)系,兒子可以遺傳父親的一些特性,在面向?qū)ο笳Z(yǔ)言中,就是一個(gè)類(lèi)可以繼承另一個(gè)類(lèi)的一些特性,從而可以代碼重用.
eg:class Zhangsan extends Person{};
多態(tài):多態(tài)就是通過(guò)傳遞給父類(lèi)對(duì)象引用不同的子類(lèi)對(duì)象從而表現(xiàn)出不同的行為
eg:Person person=new Zhangsan();
4.裝箱和拆箱
為什么需要裝箱和拆箱:是java早年設(shè)計(jì)缺陷。基礎(chǔ)類(lèi)型是數(shù)據(jù),不是對(duì)象,也不是Object的子類(lèi)。
裝箱就是自動(dòng)將基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換為包裝器類(lèi)型;拆箱就是自動(dòng)將包裝器類(lèi)型轉(zhuǎn)換為基本數(shù)據(jù)類(lèi)型。
1.Integer a=Integer.valueOf(123);//裝箱
1.int b=a.intValue();//拆箱
5.==和EQUALS的區(qū)別
關(guān)于==
1.基本數(shù)據(jù)類(lèi)型,也稱(chēng)原始數(shù)據(jù)類(lèi)型。byte,short,char,int,long,float,double,boolean他們之間的比較,應(yīng)用雙等號(hào)(==),比較的是他們的值。
2.復(fù)合數(shù)據(jù)類(lèi)型(類(lèi))當(dāng)他們用(==)進(jìn)行比較的時(shí)候,比較的是他們?cè)趦?nèi)存中的存放地
equals
Java語(yǔ)言里的equals方法其實(shí)是交給開(kāi)發(fā)者去覆寫(xiě)的,讓開(kāi)發(fā)者自己去定義滿足什么條件的兩個(gè)Object是equal的。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java系統(tǒng)開(kāi)發(fā)工程師筆試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743