招商银行的面试题

question1:

一个String的题目,看程序写出程序输出的结果。

package com.it.test;
/**
 * Created by lingmao on 2016/2/23.
 *
 */
public class test
{
    public static void main(String args[]){
        String s1="ab";
        String s2="cd";
        String s3="abcd";
        System.out.println(s1+s2==s3);
        System.out.println("ab" + s2 == s3);
        System.out.println(s1+s2=="abcd");
        System.out.println(s3=="abcd");
    }
}
招商银行的面试题_第1张图片
解释:String字符串存在一个常量池的说法,就是在第四条输出的时候,新建的字符串和原来的字符串是同一个字符串。所以相等,String是对象类型,用==号即使是相同的内容都是不相等的。

question2:

看程序写出程序的结果

package com.it.test;

/**
 * Created by lingmao on 2016/2/27.
 */
public class Father {
    public void method2(){
        System.out.println("father method2...");
    }
    static {
        System.out.println("father static...");
    }
}
package com.it.test;

/**
 * Created by lingmao on 2016/2/27.
 */
public class Son extends Father {
    public void method2(){
        System.out.println("son method2...");
    }
    static {
        System.out.println("son static...");
    }
    public static void main(String args[]){
        Father s=new Son();
        s.method2();
    }
}
招商银行的面试题_第2张图片
解释:静态块是在类加载的时候就开始加载进去了,执行的时间是非常早的,方法2的话就是子类的方法已经把父类的方法覆盖掉了。父类的方法不再执行。

如果没有static关键字的话将会发生什么情况???实验证明,没有static关键字的话,结果是一样的。

知识扩展:如果有构造函数的话,会发生什么现象。

package com.it.test;

/**
 * Created by lingmao on 2016/2/27.
 */
public class Father {
    Father(){
        System.out.println("father constructor...");
    }
    static
    {
        System.out.println("father static...");
    }
}
package com.it.test;

/**
 * Created by lingmao on 2016/2/27.
 */
public class Son extends Father {
      Son(){
        System.out.println("son constructor...");
    }
    static
    {
        System.out.println("son static...");
    }
    public static void main(String args[]){
        Son s=new Son();
    }
}

招商银行的面试题_第3张图片

从上面的情况可以看出,构造方法和静态块一样都是从父类开始初始化的,另外,java的变量和方法的继承关系是不一样的,方法可以覆盖,变量不能覆盖。

package com.it.test;

/**
 * Created by lingmao on 2016/2/28.
 */
public class T1 {
    int i=1;
    public void method(){
        System.out.println(i);
    }
}
package com.it.test;

/**
 * Created by lingmao on 2016/2/28.
 */
public class T2 extends T1{
    int i  = 2;
    public void method(){
        System.out.println(i);
    }
    public static void main(String args[]){
        T2 t2=new T2();
        System.out.println(t2.i);
        t2.method();
        //向上转型
        T1 t3=new T2();
        System.out.println(t3.i);
        t3.method();
        //向下转型(原来必须向上转型)
        T2 t4=(T2)t3;
        System.out.println(t4.i);
        t4.method();
        //直接新建父类的对象
        T1 t5=new T1();
        System.out.println(t5.i);
        t5.method();
    }
}
招商银行的面试题_第4张图片  
question3:

一个集合的选择题,大概是下面的样子。

招商银行的面试题_第5张图片

选出一个能编译正确的,我把代码直接放到IDE中,所以一眼就能看出正确的了。

question4:

java虚拟机的问题类加载的一些问题。

question5:

同步的关键字:

synchronized

question6:

公钥加密体制的一些问题。

question6:

java异常处理。

question7:

数据库技术:索引,视图。复杂的SQL语句。





项目风险。





软件项目的基线理解。











未完待续。。。。

你可能感兴趣的:(招商银行的面试题)