Java面试题库之面向对象(二)

12.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

答:

父类:

package test;

public class FatherClass {
    public FatherClass() {
        System.out.println("创建父类");
    }
} 

子类:

package test1;

import test.FatherClass;

public class ChildClass extends FatherClass {
    public ChildClass() {
        super();
        System.out.println("创建子类");
    }

    public static void main(String[] args) {
        FatherClass fc = new FatherClass();
        ChildClass cc = new ChildClass();
    }
}

[v_act]创建父类
创建父类
创建子类[/v_act]

13.内部类的实现方式?

答:示例代码如下:

package test;
public class OuterClass
{
    private class InterClass
    {
        public Interlass()
        {
            System.out.println("创建内部内");
        }
    }
    public OuterClass()
    {
        InterClass ic = new InterClass();
        System.out.println("创建外部类");
    }
    public static void main(String[] args)
    {
        OuterClass oc = new OuterClass();
    }
}

[v_act]创建内部类
创建外部类[/v_act]

14.JAVA类实现序列化的方法?如在COLLECTION框架中,实现比较要实现什么样的接口?

JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection框架中实现比较要实现Comparable 接口和 Comparator接口

15.Java编程,打印昨天的当前时刻

public class YesterdayCurrent {
    public void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -1);
        System.out.println(cal.getTime());
    }
}

16.指出下面程序的运行结果。

class A {
    static {
        System.out.print("1");
    }

    public A() {
        System.out.print("2");
    }
}

class B extends A {
    static {
        System.out.print("a");
    }

    public B() {
        //super();
        System.out.print("b");
    }
}

public class Hello {
    public static void main(String[] ars) {
        A ab = new B(); //执行到此处,结果: 1a2b。需要先执行A的构造方法
        ab = new B(); //执行到此处,结果: 1a2b2b
    }
}

[v_blue]注:类的static 代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造。[/v_blue]

17.抽象类和接口的区别?

(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见)

[v_notice]参考资料:[接口和抽象类有什么区别?](https://www.zhihu.com/question/20149818)[/v_notice]

18.什么是类的反射机制?

通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是反射、struts、hibernate都是通过类的反射进行开发的。

[v_notice]参考资料:[Java 类反射机制分析](https://www.cnblogs.com/yg6405816/p/5693878.html)[/v_notice]

19.类的返射机制中的包及核心类?

java.lang.Class
java.lang.refrection.Method
java.lang.refrection.Field java.lang.refrection.Constructor
java.lang.refrection.Modifier
java.lang.refrection.Interface

20.得到Class的三个过程是什么?

对象.getClass()
类.class或Integer.type(int)  Integer.class(java.lang.Integer)
Class.forName();

21.如何唤起类中的一个方法?

产生一个Class数组,说明方法的参数
通过Class对象及方法参数得到Method
通过method.invoke(实例,参数值数组)唤醒方法

22.如何将数值型字符转换为数字(Integer,Double)?

Integer.parseInt(“1234”)
Double.parseDouble(“123.2”)
本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java面试题库之面向对象(二)

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多