更新時(shí)間:2023-01-30 16:49:08 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1976次
1.成員變量與局部變量的區(qū)別有那些?
從語法形式上,看成員變量是屬于類的,而局部變量是在方法中定義的變量或是方法的參數(shù);成員變量可以被public,private,static等修飾符所修飾,而局部變量不能被訪問控制修飾符及static所修飾;成員變量和局部變量都能被final所修飾;
從變量在內(nèi)存中的存儲(chǔ)方式來看,成員變量是對(duì)象的一部分,而對(duì)象存在于堆內(nèi)存,局部變量存在于棧內(nèi)存
從變量在內(nèi)存中的生存時(shí)間上看,成員變量是對(duì)象的一部分,它隨著對(duì)象的創(chuàng)建而存在,而局部變量隨著方法的調(diào)用而自動(dòng)消失。
成員變量如果沒有被賦初值,則會(huì)自動(dòng)以類型的默認(rèn)值而賦值(一種情況例外被final修飾但沒有被static修飾的成員變量必須顯示地賦值);而局部變量則不會(huì)自動(dòng)賦值。
2.創(chuàng)建一個(gè)對(duì)象用什么運(yùn)算符?對(duì)象實(shí)體與對(duì)象引用有何不同?
new運(yùn)算符,new創(chuàng)建對(duì)象實(shí)例(對(duì)象實(shí)例在堆內(nèi)存中),對(duì)象引用指向?qū)ο髮?shí)例(對(duì)象引用存放在棧內(nèi)存中)。一個(gè)對(duì)象引用可以指向0個(gè)或1個(gè)對(duì)象(一根繩子可以不系氣球,也可以系一個(gè)氣球);一個(gè)對(duì)象可以有n個(gè)引用指向它(可以用n條繩子系住一個(gè)氣球)
3.什么是方法的返回值?返回值在類的方法里的作用是什么?
方法的返回值是指我們獲取到的某個(gè)方法體中的代碼執(zhí)行后產(chǎn)生的結(jié)果!(前提是該方法可能產(chǎn)生結(jié)果)。返回值的作用:接收出結(jié)果,使得它可以用于其他的操作!
4.一個(gè)類的構(gòu)造方法的作用是什么?若一個(gè)類沒有聲明構(gòu)造方法,改程序能正確執(zhí)行嗎?為什么?
主要作用是完成對(duì)類對(duì)象的初始化工作??梢詧?zhí)行。因?yàn)橐粋€(gè)類即使沒有聲明構(gòu)造方法也會(huì)有默認(rèn)的不帶參數(shù)的構(gòu)造方法。
5.構(gòu)造方法有哪些特性?
名字與類名相同;
沒有返回值,但不能用void聲明構(gòu)造函數(shù);
生成類的對(duì)象時(shí)自動(dòng)執(zhí)行,無需調(diào)用。
6.靜態(tài)方法和實(shí)例方法有何不同?
靜態(tài)方法和實(shí)例方法的區(qū)別主要體現(xiàn)在兩個(gè)方面:
在外部調(diào)用靜態(tài)方法時(shí),可以使用"類名.方法名"的方式,也可以使用"對(duì)象名.方法名"的方式。而實(shí)例方法只有后面這種方式。也就是說,調(diào)用靜態(tài)方法可以無需創(chuàng)建對(duì)象。
靜態(tài)方法在訪問本類的成員時(shí),只允許訪問靜態(tài)成員(即靜態(tài)成員變量和靜態(tài)方法),而不允許訪問實(shí)例成員變量和實(shí)例方法;實(shí)例方法則無此限制
7.String 類的常用方法都有那些?
(1)常見String類的獲取功能
length:獲取字符串長(zhǎng)度;
charAt(int index):獲取指定索引位置的字符;
indexOf(int ch):返回指定字符在此字符串中第一次出現(xiàn)處的索引;
substring(int start):從指定位置開始截取字符串,默認(rèn)到末尾;
substring(int start,int end):從指定位置開始到指定位置結(jié)束截取字符串;
(2)常見String類的判斷功能
equals(Object obj): 比較字符串的內(nèi)容是否相同,區(qū)分大小寫;
contains(String str): 判斷字符串中是否包含傳遞進(jìn)來的字符串;
startsWith(String str): 判斷字符串是否以傳遞進(jìn)來的字符串開頭;
endsWith(String str): 判斷字符串是否以傳遞進(jìn)來的字符串結(jié)尾;
isEmpty(): 判斷字符串的內(nèi)容是否為空串"";
(3)常見String類的轉(zhuǎn)換功能
byte[] getBytes(): 把字符串轉(zhuǎn)換為字節(jié)數(shù)組;
char[] toCharArray(): 把字符串轉(zhuǎn)換為字符數(shù)組;
String valueOf(char[] chs): 把字符數(shù)組轉(zhuǎn)成字符串。valueOf可以將任意類型轉(zhuǎn)為字符串;
toLowerCase(): 把字符串轉(zhuǎn)成小寫;
toUpperCase(): 把字符串轉(zhuǎn)成大寫;
concat(String str): 把字符串拼接;
(4)常見String類的其他常用功能
replace(char old,char new) 將指定字符進(jìn)行互換
replace(String old,String new) 將指定字符串進(jìn)行互換
trim() 去除兩端空格
int compareTo(String str) 會(huì)對(duì)照ASCII 碼表 從第一個(gè)字母進(jìn)行減法運(yùn)算 返回的就是這個(gè)減法的結(jié)果,如果前面幾個(gè)字母一樣會(huì)根據(jù)兩個(gè)字符串的長(zhǎng)度進(jìn)行減法運(yùn)算返回的就是這個(gè)減法的結(jié)果,如果連個(gè)字符串一摸一樣 返回的就是0。
8.如何將字符串反轉(zhuǎn)?
添加到StringBuilder中,然后調(diào)用reverse()。
9.String 類的常用方法都有那些?
equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpty等等。
10.普通類和抽象類有哪些區(qū)別?
抽象類不能被實(shí)例化;
抽象類可以有抽象方法,只需申明,無須實(shí)現(xiàn);
有抽象方法的類一定是抽象類;
抽象類的子類必須實(shí)現(xiàn)抽象類中的所有抽象方法,否則子類仍然是抽象類;
抽象方法不能聲明為靜態(tài)、不能被static、final修飾。
以上就是“精選出來的幾道Java語法基礎(chǔ)面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)