Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
        

GIT視頻教程(結合github,碼云)免費領取

SpringBoot打造全棧在線教育平臺實戰課程

畢設代做論文包查重聯系人QQ:1982956321畢設大神

66套java實戰課程無套路領取

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

java技術面試寶典2020版 PDF 下載


分享到:
時間:2020-06-11 17:16來源:http://www.bxroef.tw 作者:小鋒  侵權舉報
java技術面試寶典2020版 PDF 下載
失效鏈接處理
java技術面試寶典2020版  PDF 下載

本站整理下載:
提取碼:4ioc 
 
 
相關截圖:
 
主要內容:

一. Java 基礎部分
基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,
線程的語法,集合的語法,io 的語法,虛擬機方面的語法。
1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制?
可以有多個類,但只能有一個 public 的類,并且 public 的類名必須與文件名相一致。
2、Java 有沒有 goto? 
java 中的保留字,現在沒有在 java 中使用。
3、說說&和&&的區別。
&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結果都
為 true 時,整個運算結果才為 true,否則,只要有一方為 false,則結果為 false。
&&還具有短路的功能,即如果第一個表達式為 false,則不再計算第二個表達式,例如,對
于 if(str != null && !str.equals(“”))表達式,當 str 為 null 時,后面的表達式不會執行,所以不會出
現 NullPointerException 如果將&&改為&,則會拋出 NullPointerException 異常。If(x==33 & ++y>0) 
y 會增長,If(x==33 && ++y>0)不會增長
&還可以用作位運算符,當&操作符兩邊的表達式不是 boolean 類型時,&表示按位與操作,
我們通常使用 0x0f 來與一個整數進行&運算,來獲取該整數的最低 4 個 bit 位,例如,0x31 & 0x0f
的結果為 0x01。
備注:這道題先說兩者的共同點,再說出&&和&的特殊之處,并列舉一些經典的例子來表
明自己理解透徹深入、實際經驗豐富。
4、switch 語句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上? 
在 switch(expr1)中,expr1 只能是一個整數表達式或者枚舉常量(更大字體),整數表達式
可以是 int 基本類型或 Integer 包裝類型,由于,byte,short,char 都可以隱含轉換為 int,所以,這
些類型以及這些類型的包裝類型也是可以的。顯然,long 和 String 類型都不符合 switch 的語法
規定,并且不能被隱式轉換成 int 類型,所以,它們不能作用于 swtich 語句中。
5、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯? 
對于 short s1 = 1; s1 = s1 + 1; 由于 s1+1 運算時會自動提升表達式的類型,所以結果是 int 型,
再賦值給 short 類型 s1 時,編譯器將報告需要強制轉換類型的錯誤。
對于 short s1 = 1; s1 += 1;由于 += 是 java 語言規定的運算符,java 編譯器會對它進行特殊處
理,因此可以正確編譯。
視頻網站 https://edu.51cto.com/lecturer/2086101.html
網址 https://blog.csdn.net/zhangchen124 
15
6、char 型變量中能不能存貯一個中文漢字?為什么? 
char 型變量是用來存儲 Unicode 編碼的字符的,unicode 編碼字符集中包含了漢字,所以,char
型變量中當然可以存儲漢字啦。不過,如果某個特殊的漢字沒有被包含在 unicode 編碼字符集中,
那么,這個 char 型變量中就不能存儲這個特殊漢字。補充說明:unicode 編碼占用兩個字節,所
以,char 類型的變量也是占用兩個字節。
備注:后面一部分回答雖然不是在正面回答題目,但是,為了展現自己的學識和表現自己對
問題理解的透徹深入,可以回答一些相關的知識,做到知無不言,言無不盡。
7、用最有效率的方法算出 2 乘以 8 等於幾? 
2 << 3,
因為將一個數左移 n 位,就相當于乘以了 2 的 n 次方,那么,一個數乘以 8 只要將其左移 3
位即可,而位運算 cpu 直接支持的,效率最高,所以,2 乘以 8 等於幾的最效率的方法是 2 << 3。 8、使用 final 關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變?
使用 final 關鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內容
還是可以改變的。例如,對于如下語句:
final StringBuffer a=new StringBuffer("immutable");
執行如下語句將報告編譯期錯誤: a=new StringBuffer("");
但是,執行如下語句則可以通過編譯:
a.append(" broken!");
有人在定義方法的參數時,可能想采用如下形式來阻止方法內部修改傳進來的參數對象:
public void method(final StringBuffer param){
實際上,這是辦不到的,在該方法內部仍然可以增加如下代碼來修改參數對象:
param.append("a");
9、"=="和 equals 方法究竟有什么區別?
==操作符專門用來比較兩個變量的值是否相等,也就是用于比較變量所對應的內存中所存
儲的數值是否相同,要比較兩個基本類型的數據或兩個引用變量是否相等,只能用==操作符。
如果一個變量指向的數據是對象類型的,那么,這時候涉及了兩塊內存,對象本身占用一塊
內存(堆內存),變量也占用一塊內存,例如 Objet obj = new Object();變量 obj 是一個內存,new 
Object()是另一個內存,此時,變量 obj 所對應的內存中存儲的數值就是對象占用的那塊內存的
首地址。對于指向對象類型的變量,如果要比較兩個變量是否指向同一個對象,即要看這兩個變
視頻網站 https://edu.51cto.com/lecturer/2086101.html
網址 https://blog.csdn.net/zhangchen124 
16
量所對應的內存中的數值是否相等,這時候就需要用==操作符進行比較。
equals 方法是用于比較兩個獨立對象的內容是否相同,就好比去比較兩個人的長相是否相同,
它比較的兩個對象是獨立的。例如,對于下面的代碼:
String a=new String("foo");
String b=new String("foo");
兩條 new 語句創建了兩個對象,然后用 a,b 這兩個變量分別指向了其中一個對象,這是兩個
不同的對象,它們的首地址是不同的,即 a 和 b 中存儲的數值是不相同的,所以,表達式 a==b
將返回 false,而這兩個對象中的內容是相同的,所以,表達式 a.equals(b)將返回 true。
在實際開發中,我們經常要比較傳遞進行來的字符串內容是否等,例如,String input 
= …;input.equals(“quit”),許多人稍不注意就使用==進行比較了,這是錯誤的,隨便從網上找幾
個項目實戰的教學視頻看看,里面就有大量這樣的錯誤。記住,字符串的比較基本上都是使用
equals 方法。
如果一個類沒有自己定義 equals 方法,那么它將繼承 Object 類的 equals 方法,Object 類的
equals 方法的實現代碼如下:
boolean equals(Object o){
return this==o;
}
這說明,如果一個類沒有自己定義 equals 方法,它默認的 equals 方法(從 Object 類繼承的)
就是使用==操作符,也是在比較兩個變量指向的對象是否是同一對象,這時候使用 equals 和使
用==會得到同樣的結果,如果比較的是兩個獨立的對象則總返回 false。如果你編寫的類希望能
夠比較該類創建的兩個實例對象的內容是否相同,那么你必須覆蓋 equals 方法,由你自己寫代
碼來決定在什么情況即可認為兩個對象的內容是相同的。

 
 
------分隔線----------------------------
鋒哥公眾號


鋒哥微信


關注公眾號
【Java資料站】
回復 666
獲取 
66套java
從菜雞到大神
項目實戰課程
大乐透走势图夸距