天天进步一点点,距离大腿又近一步!
阅读本文大概须要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
**一个立志成大腿而天天努力奋斗的年轻人
期待你的到来!**指针
若是以为文章不错,请点个赞、分享给你的朋友呗!