天天進步一點點,距離大腿又近一步!
閱讀本文大概須要6分鐘
系列文章
java面試| 精選基礎題(1)
java面試|精選基礎題(2)java
答:不正確,編譯沒法經過。3.4是雙精度數,將雙精度型(double)賦值給浮點型(float)屬於下轉型(down-casting,也稱爲窄化)會形成精度損失,所以須要強制類型轉換float f =(float)3.4
; 或者寫成float f =3.4F;
。(推薦閱讀:java"當心機"(1)【資源彩蛋!】第4點類型轉換)面試
例1:short s1 = 1; s1 = s1 + 1;有錯嗎?例2:short s1 = 1; s1 += 1;有錯嗎?
public class ReturnInTry { public static void main(String[] args){ System.out.println(test()); } static public String test(){ String str = "return1"; try{ return str; }finally { str = "return2"; System.out.println("finally"); } }}
輸出:數組
finallyreturn1
因而可知,finally代碼塊中的代碼會在return語句前執行,但爲何finally代碼塊中的str = "return2";
未生效呢?
其實它這樣執行的:當try中含有return語句且存在finally代碼塊,return語句不會馬上返回而是記錄下該返回值
(存在某個地方),待finally代碼塊執行完畢後再返回該值
,因此在finally代碼塊中沒法改變return的返回值。安全
public class ThisTest { public ThisTest retutrnThis(){ //this至關因而指向當前對象自己 //返回對象自己 return this; }}
2.形參與成員名字重名時,用this來區分微信
public class ThisTest { private String name; public void ThisTest (String test){ this.test = test; }}
3.引用構造函數函數
public class ThisTest { private String name; private int count; public void ThisTest (String test){ this.test = test; } public void ThisTest (String test,int count){ //調用另外一個構造函數 //只能在第一行調用,且只能調用一次 this.ThisTest(test); this.count = count; }}
當前對象自己
,super指向的是當前調用對象的父類
。子類建立對象時調用構造函數,會隱式調用
父類的無參構造方法
,建立一個子類對象的同時,該子類對象
還包含了一個父類對象
。該父類對象在子類對象內部(super指向該對象)。public class Father { public String name; public Father(String name) { this.name = name; }}public class Son extends Father{ public Son(String name) { //必須調用,不然他會默認調用父類的無參構造函數, //而父類的無參構造函數已經被有參的覆蓋,因此找不到 super(name); }}
2.子類重寫了父類的方法,又想用父類該方法時性能
class Parents{ Public Parents(){} public void write(){ System.out.println("Parents"); }}class Children extends Parents{ Public Children(){} public void write(){ System.out.println("Children"); super.write();//調用父類的write方法 }}
熱門閱讀:this
**實用代碼|javaMail發送郵件(文末重磅資源!)
【推薦兩款神器】不限速下載、追劇神器
java"當心機"(1)【資源彩蛋!】**spa
**一個立志成大腿而天天努力奮鬥的年輕人
期待你的到來!**指針
若是以爲文章不錯,請點個贊、分享給你的朋友唄!