Java簡答題附答案


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.請說說引用和對象?
引用是指一個指向引用數據類型地址的指針, 對象是指一個類的實例. 引用可以指向一個對象, 對象也可以包含多個引用 對象是引用數據類型, 引用數據類型不僅僅包含對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM