向上转型(术语):类型提升 ,eg:byte b=2;int i=b;
--------------------------------------------
6、(常见)在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结:成员函数在多态调用时,编译看左边,运行看右边
7、(面试)在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
例
class fu
{
int num=5;
}
class zi extends fu
{
int num=8;
}
fu f=new zi();
zi z=new zi();
s.o.p(f.num);//5
s.o.p(z.num);//8
2)在多态中,静态(static)成员函数的特点:
无论编译和运行,都参考左边。
-------------------------------------------------
8、(面试)实现方式和继承方式有什么区别呢?
实现方式好处:避免了单继承的局限性
在定义线程时,建议使用实现方式。(134视频)
两种方式区别
继承Thread:线程代码存放Thread子类的run方法中。
实现Runnable:线程代码存放在接口的子类run方法中。
-------------------------------------------------
12、(面试)懒汉式:特点:实例的延迟加载,问题:有,如果多线程访问会出现错误,同步解决。锁是该类所属的字节码为对象
写一个延迟加载的单例设计模式实例
class Demo
{
private static Demo d=null;
private Demo(){}
public static Demo getInstance()
{
if(d==null)
{
synchronized(Demo.class)
{
if(d==null)
d=new Demo();
}
}return d;
}
}
--------------------------------------
5、(面试)Integer
当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会再开辟新空间
例1
Integer m=128;Integer n=128;
m==n; false
例2
Integer m=127;Integer n=127;//n,m指向同一个Integer对象
m==n; True |