java变态级面试题

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 108 收藏 0 点赞 0 评论 0

 

1. Java类初始化顺序

Java类初始化顺序(无继承):
静态变量–>静态初始化块–>其他变量–>初始化块–>构造器
Java类初始化顺序(有继承):先静后动,先父后子
父类静态初始化—->子类静态初始化—->父类初始化块—->父类构造方法—->子类初始化块—->子类构造方法。
以下例子执行结果:6375142
Test2构造函数加上super()不影响结果
public class Test2 extends Test1 {
{
System.out.print(“1”);
}

Test2() {
System.out.print(“2”);
}

static {
System.out.print(“3”);
}
{
System.out.print(“4”);
}

public static void main(String[] args) {
new Test2();
}
}

class Test1 {
Test1() {
System.out.print(“5”);
}

static {
System.out.print(“6”);
}
{
System.out.print(“7”);
}
}

2.Java开发中”==”与”equals”

public class TestEquals {
public static void main(String args[]){
Double d1 = new Double(10);
Double d2 = new Double(10.0);
Double d3 = new Double(10);
System.out.println(d1==d2);//false value
System.out.println(d1==d3);//false value
System.out.println(d1.equals(d2));//true object
System.out.println(d1.equals(d3));//true object
Integer i1 = new Integer(10);
System.out.println(d1.equals(i1));//false
Long l1 = new Long(10);
System.out.println(l1.equals(i1));//false
//System.out.println(l1==i1);//false,编译错误
System.out.println(l1.intValue()==i1.intValue());//true
String s1 = “test”;
String s2 = “test”;
String s3 = new String(“test”);
System.out.println(s1==(s2));//true
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
System.out.println(s1==(s3));//false
}
}

3.java继承

java里的类不能多重继承,如果一个类一旦继承了它的父类,那么它就别想再继承别的类。一个儿子只能有一个老爸,所以单继承也有其不利处,如果想多继承最好使用接口继承的方式。

4.异常中finally

public class TestException {
public static void main(String args[]) throws Exception{
try{
//throw new Exception(“excepiton”);//finally end
//int i = 10/0;//finally end
return;//finally end
//System.exit(0);//不执行finally,其他都执行
}catch(Exception e){
throw e;
}finally{
System.out.println(“finally end”);
}
}
}

5.java数组初始化

public class TestArray {
public static void main(String args[]){
//int[3] t1 = new int[]{1,2,3};//error delete 3
int[] t2 = new int[]{1,2,3};
int[] t3 = new int[3];
int[] t4 = {1,2,3};
//int[] t5 = {{},2,3};//error,{}是对象
int[] t6;
int[][] t7 = new int[3][];
int[][] t8 = new int[3][8];
//int[][] t9 = new int[][10];//error
//int[] t10 = new int[];//error
//String[] s1 = {{},”s1″,”s2″};//errror,can’t convert from object[] to String
String[][] s2 = {{},{}};
String[][] s3 = {{“s1”},{}};

}
}

评论列表
文章目录