1. Java有沒有goto?
有, Goto語句在java中做爲保留字, 並無實現它. 帶標號的break, continue侷限於循環體中跳轉 帶標號的goto能夠在一個函數(c語言)中任意跳轉 Goto比帶標號的break,continue用法靈活, 正由於太靈活了使程序的邏輯結構變得複雜, 流程不夠清晰, 程序的可讀性降低 因此java把goto保留了.
2.在JAVA中如何跳出當前的多重嵌套循環?
Break關鍵字+標籤, 標籤的位置放在最外層循環開始的上一行, 以冒號結束. 即便用break outer到指定的位置, 來結束多重嵌套循環.
3.short s1= 1; s1 = 1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
沒有錯; 沒有錯
4.char型變量中能不能存貯一箇中文漢字?爲何?
能夠, 由於char是兩個字節, 而unicode的漢字編碼所佔用的存儲空間就是兩個字節
5.使用final關鍵字修飾一個變量時,是引用不能變,仍是引用的對象不能變?
是引用不能變, 而不是引用的對象不能改變
6.接口是否可繼承接口?抽象類是否可實現(implements)接口?抽象類是否可繼承具體類(concreteclass)?抽象類中是否能夠有靜態的main方法?
接口能夠繼承接口, 抽象類能夠實現接口, 抽象類能夠繼承具體類, 抽象類能夠有靜態的main方法, 還能夠直接執行的.
7.Overload和Override的區別?Overload的方法是否能夠改變返回值的類型?
Overload是在一個類裏面方法的重載, 指方法名相同參數類型,個數,順序不一樣, 來實現的方法重載 Override是在繼承關係中, 子類重寫父類的方法, 方法名, 返回值, 參數都必須相同. 重載的時候是能夠改變方法的返回值的, 由於重載與方法的放回值類型無關
8.構造方法的做用是什麼?構造方法和普通方法的區別?
構造方法的做用是在新建一個對象的時候, 調用構造方法來建立對象.
構造方法和普通方法的區別: 1.普通方法必須有返回值類型修飾符, 而構造方法不能有返回值類型修飾符; 2.構造方法名必須和類名相同 3.普通方法用來定義對象的行爲, 而構造方法用來初始化 9.super()或者this():爲何必定要定義在第一行?是否能夠同時出現?
由於super()和this()是調用的父類或本類的無參構造器, 由於Java不容許調用沒有初始化的成員. 只有使用了super()或this()來初始化了對象以後, 才能調用該對象並繼續進行後續操做. Super()爲何要定義在第一行? 由於子類的構造器中可能會使用父類的屬性或方法, 若是父類都沒有被建立, 那麼就會致使空指針異常, 所以, super()應先執行, 來建立父類的對象. This()爲何要定義在第一行? 由於若是不定義在第一行, 那麼當子類建立對象時, 首先會調用父類的無參構造器, 這時候就建立了一個父類的對象. 而後繼續執行, 遇到了this()的時候, 就調用該構造器, 而這個構造器又屬因而建立子類的對象, 又須要去調用父類的構造器. 也就是說, 形成了資源的浪費, 和同步不一致的問題. 不能同時出現, 由於它們兩個都要求只能出如今第一行. Super()和this()都是調用構造函數進行初始化, 而初始化的動做須要先完成.
10.訪問修飾符有哪些?各自的做用範圍是什麼? Private: 私有的, 本類中 Public: 共有的, 任何位置 Protected: 受保護的, 本類, 同一個包和子類中能夠訪問 缺省的: 同一個包中
11.static的做用和用法?
Static的做用是把屬性和方法定義爲靜態的, 能夠在不建立對象的時候就調用這些屬性和方法. 它只須要初始化一次, 可用來定義不常常改變的屬性, 或者是對象的計數器. 用法? 類名.屬性 或 類名.方法名() , 即經過類名直接調用.
12.是否能夠從一個static方法內部發出對非static方法的調用? 不能夠. Static的方法內部職能訪問static修飾的屬性和方法 由於普通的屬性和方法是依賴於對象的, 只有建立了對象以後, 才能經過對象進行訪問. 而此時靜態方法是沒有建立對象的, 所以就會報異常.
13.值傳遞和引用傳遞的區別? 1.一個是針對基本數據類型, 一個針對引用數據類型 2.值傳遞傳遞的是值, 引用傳遞傳遞的是地址 3.值傳遞是拷貝了一份新的值給形式參數, 在方法中進行操做不會影響原來的值; 而引用傳遞的是地址, 兩個引用指向同一個地址, 所以方法中改變了這個地址中的數據,那麼原來的數據也會改變.
14.什麼繼承?繼承有什麼優勢?繼承使用什麼關鍵字?繼承的特色?繼承的限制?一個類能夠同時繼承多個類嗎?全部類的父類是什麼?
繼承就是一個類繼承另外一個類的屬性和方法. 繼承的優勢是能夠實現代碼的重用, 使組件類型保持一致. Extends關鍵字, 類只能單繼承類, 但能夠實現多個接口. 全部類的父類是Object類
15.什麼是重寫?用什麼方法能夠強制檢當前方法是否重寫父類方法?
重寫是指在繼承關係中, 子類從新實現了父類中存在的方法. @Override關鍵字
16.什麼是多態?多態主要的應用是什麼?
多態就是指同一個方法, 不一樣的實現. 多態分爲編譯時的多態和運行時的多態, 編譯時的多態經過方法的重載實現. 運行時的多態經過方法的重寫實現. 多態主要運用於增長程序的靈活性, 增長程序的可擴展性.
17.什麼是抽象方法?什麼是抽象類?Java抽象類能夠有構造函數嗎?Java抽象類能夠有static方法嗎?abstract方法能夠用static修飾嗎? 抽象方法就是使用abstract關鍵字修飾的方法.
抽象類是指abstract關鍵字修飾的類.
Java抽象類能夠有構造函數,
Java抽象類能夠有static方法,
abstract方法不能用static修飾, 由於抽象方法須要被繼承和實現,
而static修飾的方法是能夠經過類名直接訪問的, 尚未方法體就被訪問邏輯上是不合理的.
18.靜態方法能夠被重寫嗎?Java抽象類中能夠包含main方法嗎?
靜態方法不能夠被重寫. 由於靜態方法是在類加載時就被加載到內存中的方法, 在整個運行過程當中保持不變, 於是不能重寫.
但非靜態方法是在對象實例化才單獨申請內存空間, 爲每個實例分配獨立的運行內存, 於是能夠重寫. Java抽象類能夠包含main方法
19.abstract class 和interface的區別?
抽象類是指abstract關鍵字所修飾的類, 裏面能夠包含普通方法和抽象方法, 還能夠有構造函數和普通屬性. Interface是接口,裏面只能包含常量和抽象方法, 不能有構造方法,普通屬性和普通方法, 也不鞥你有main方法, 抽象類是一個類, 而接口的核心是方法
20.請說說引用和對象? 引用是指一個指向引用數據類型地址的指針, 對象是指一個類的實例. 引用能夠指向一個對象, 對象也能夠包含多個引用 對象是引用數據類型, 引用數據類型不只僅包含對象