Java笔试/面试题目

1、运算符优先级问题,下面代码的结果是多少?(笔试)

public class Test {
    public static void main(String[] args) {
        int k = 0;
        int ret = ++k + k++ + ++k + k;
        // ret的值为多少
        System.err.println(ret);
    }
}

ret == 8

ret == 1 + 1 + 3 + 3, K值不同;(栈空间)

 

2、运算符问题,下面代码分别输出什么?(笔试)

public class Test {
    public static void main(String[] args) {
        int i1 = 10, i2 = 10;
        System.err.println("i1 + i2 = " + i1 + i2);
        System.err.println("i1 - i2 = " + (i1 - i2));
        System.err.println("i1 * i2 = " + i1 * i2);
        System.err.println("i1 / i2 = " + i1 / i2);
    }
}
i1 + i2 = 1010  (优先级)
i1 - i2 = 0
i1 * i2 = 100
i1 / i2 = 1

 

3、下面代码的结果是什么?还是抛出异常?(笔试)

public class Test {
    
    public void myMethod(String str) {
        System.err.println("string");    // str == "null"
    }
    
    public void myMethod(Object obj) {
        System.err.println("object");
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        t.myMethod(null);   // null is not a instance of "Object", it's a null type;
                // The null reference can always be cast to any reference type } }

string

4、假设今天是9月8日,下面代码输出什么?(笔试)

public class Test {

    public static void main(String[] args) {
        Date date = new Date();
        System.err.println(date.getMonth() + " " + date.getDate());
    }
}

?? 8 8

5、下面代码的输出结果是什么?

public class Test {

    public static void main(String[] args) {
        double val = 11.5;
        System.err.println(Math.round(val));
        System.err.println(Math.floor(val));
        System.err.println(Math.ceil(val));
    }
}

12
11.0
12.0

6、编程输出一个目录下的所有目录及文件名称,目录之间用tab。(笔试)

public class Test {

    public static void main(String[] args) {
        new Test().read("D:/test", "");
    }
    
    public void read(String path, String tab) {
        File file = new File(path);
        File[] childFiles = file.listFiles();   //返回当前文件夹下的所有文件的方法是listFiles()
        for (int i = 0; childFiles != null && i < childFiles.length; i++) {
            System.err.println(tab + childFiles[i].getName());
            if (childFiles[i].isDirectory()) {
                read(childFiles[i].getPath(), tab + "\t");
            }
        }
    }
}

 

7、从键盘读入10个整数,然后从大到小输出。(笔试)

public class Test {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意这里的数组,不是int的
        Integer[] arr = new Integer[10];
        for (int i = 0; i < 10; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if (o1 > o2) return -1;
                if (o1 < o2) return 1;
                return 0;
            }
            
        });
        System.err.println(Arrays.toString(arr));
    }
    
}

 

8、下面代码的结果是什么?

public class Test extends Base {

    public static void main(String[] args) {
        Base b = new Test();
        b.method();
        
        Test t = new Test();
        t.method();
    }

    @Override
    public void method() {
        System.err.println("test");
    }
    
}

class Base {
    public void method() throws InterruptedException {
        System.err.println("base");
    }
}

test
test

9、以下代码的结果是什么?

public class Test extends Base {

    public static void main(String[] args) {
        new Test().method();
    }

    public void method() {
        System.err.println(super.getClass().getName());
        System.err.println(this.getClass().getName());
        
        System.err.println(super.getClass().getSuperclass().getName());
        System.err.println(this.getClass().getSuperclass().getName()); } }
class Base { }

CheckTest.Test
CheckTest.Test
CheckTest.Base
CheckTest.Base

 

10、true or false?

public class Test {

    public static void main(String[] args) {
        String str1 = new String("abc");
        String str2 = new String("abc");
        System.err.println(str1.equals(str2));
        
        StringBuffer sb1 = new StringBuffer("abc");
        StringBuffer sb2 = new StringBuffer("abc");
        System.err.println(sb1.equals(sb2));
    }
}

true
false

 

11、输出的结果是什么?

public class Test {

    public static void main(String[] args) {
        System.err.println(new Test().method1());
        System.err.println(new Test().method2());
    }
    
    public int method1() {
        int x = 1;
        try {
            return x;
        } finally {
            ++x;
        }
    }
    
    public int method2() {
        int x = 1;
        try {
            return x;
        } finally {
            return ++x;
        }
    }
}

1   (暂时无法解释.....)
2

转载于:https://www.cnblogs.com/surong/archive/2012/04/25/2470734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值