1、有A、B两个类,在A和B中都有一个静态的变量和一个非静态变量,且A extends B,main方法中执行A a = new A()时,a的初始化顺序;B b = new A(),b的初始化顺序。
2、set、map、Arraylist、LinkedList低层用什么实现,他们有什么区别,分别用在什么地方?大量数据时,用什么查询快,为什么?
3、windows和Linux、unix有什么不一样?
4、给定一个int数组、数组元素为升序排列,从数组中查找指定的一个数,如果查到,返回它的下标,如果查不到,给出查不到的提示,要求用二分法实现。
5、找出100万以内的素数,要求:效率要高。

解决方案 »

  1.   

    1.
    (1)先初始化父类B的变量-->父类B构造器的数据-->子类A的类变量-->子类A的构造器的数据
    (2)跟(1)的一样;
    测试代码如下:
    public class InitValue {

    public static void main(String[] args){
    A a1 = new A();
    System.out.println("-------------------------------------");
    B b1 = new A();
    }}class A extends B {
    static int a = 5; public A() {
    System.out.println("初始化A类构造器前的变量a="+a);
    System.out.println("初始化A类的构造器变量");
    }
    }class B {
    int b = 4;
    public B() {
    System.out.println("初始化B类构造器前的变量b="+b);
    System.out.println("初始化B类的构造器变量");
    }
    //int b =4; 不管b变量放在上面,还是放在构造器的下面,初始化的顺序不变!
    }输出结果如下:
    初始化B类构造器前的变量b=4
    初始化B类的构造器变量
    初始化A类构造器前的变量a=5
    初始化A类的构造器变量
    -------------------------------------
    初始化B类构造器前的变量b=4
    初始化B类的构造器变量
    初始化A类构造器前的变量a=5
    初始化A类的构造器变量