好程序員 Java 教程分享: Java 工程師常見面試題
一: BigInteger
(1) 針對大整數的運算:可以讓超過 Integer 范圍內的數據進行運算。
(2) 構造方法
A:BigInteger(String s)
(3) 成員方法 ( 自己補齊 )
BigInteger b1=new BigInteger("100");
BigInteger b1=new BigInteger("50");
A: 加 :b1.add(b2);//150
B: 減 :b1.subtract(b2);//50
C: 乘 :b1.multiply(b2);//500 (這個面試題考過)
D: 除 :b1.divide(b2);//2
二:面試題:
( 1 )靜態代碼塊 , 構造代碼塊 , 構造方法的順序問題 ?
靜態代碼塊 > 構造代碼塊 > 構造方法其中靜態代碼塊(只執行一次)
( 2 )當 Son s=new Son(); 時父類和子類中各種代碼執行順序。(先進行父類初始化,然后進行子類初始化)
父類靜態代碼塊 1
子類靜態代碼塊 2
父類構造代碼塊 3
父類無參構造方法 4
子類構造代碼塊 5
子類無參構造方法 6
十一:面試題
== 和 equals() 的區別 ?
A:==
基本類型:比較的是值是否相同
引用類型:比較的是地址值是否相同
B:equals()
equals : Object 中默認比較引用類型的地址值,而 String 類重寫了 equals ()方法,比較的是內容是否相等。
三:靜態變量和成員變量的區別
A: 所屬不同
靜態變量:屬于類,類變量
成員變量:屬于對象,對象變量,實例變量
B: 內存位置不同
靜態變量:方法區的靜態區
成員變量:堆內存
C: 生命周期不同
靜態變量:靜態變量是隨著類的加載而加載,隨著類的消失而消失
成員變量:成員變量是隨著對象的創建而存在,隨著對象的消失而消失
D: 調用不同
靜態變量:可以通過對象名調用,也可以通過類名調用
成員變量:只能通過對象名調用
四: final 修飾 局部變量
a: 基本類型 值不能發生改變 ,是常量。如: final int x=10;
b: 引用類型 地址值不能發生改變,但是對象的內容是可以改變的 .
final Student s=new Student();
s.age=100;
如教室編號, 302 教室一旦被 final 確定,就沒法改變,但是教室里的學生(值)是可以改變的。
五:兩個面試題:
A:Override 和 Overload 的區別 ?Overload 是否可以改變返回值類型 ? 方法重寫和方法重載的區別。
方法重寫:子類中出現了和父類中一模一樣的方法聲明。又稱方法覆蓋,方法復寫
方法重載:本類中出現了方法名一樣,參數列表不同的方法,與返回值無關。
B:this 和 super 的區別和各自的作用 ?
this :代表當前類的對象引用,
super :代表父類存儲空間的標識,(可以理解為父類的引用,通過這個東西可以訪問父類的成員)
六:繼承的好處:
A: 提高了代碼的復用性
B: 提高了代碼的維護性
C: 讓類與類產生了一個關系,是多態的前提
繼承的弊端:
A: 讓類的耦合性增強。這樣某個類的改變,就會影響其他和該類相關的類。
開發的原則:低耦合,高內聚。
耦合:類與類的關系
內聚:自己完成某件事情的能力
B: 打破了封裝性
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。