Java笔试/面试题

本文收录各种猥琐的Java笔试/面试题,一些比较容易忘记的,不定期更新。也希望大家在底下留言,贴出自己碰到或看到的各种猥琐笔试、面试题目。
J2EE基础部分
1、运算符优先级问题,下面代码的结果是多少?(笔试)
[java] view plaincopy
package test;

public class Test {
public static void main(String[] args) {
int k = 0;
int ret = ++k + k++ + ++k + k;
// ret的值为多少
System.err.println(ret);
}
}
2、运算符问题,下面代码分别输出什么?(笔试)
[java] view plaincopy
package test;

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);
}
}
3、下面代码的结果是什么?还是抛出异常?(笔试)
[java] view plaincopy
package test;

public class Test {

public void myMethod(String str) {  
    System.err.println("string");  
}  

public void myMethod(Object obj) {  
    System.err.println("object");  
}  

public static void main(String[] args) {  
    Test t = new Test();  
    t.myMethod(null);  
}  

}
4、假设今天是9月8日,下面代码输出什么?(笔试)
[java] view plaincopy
package test;

import java.util.Date;

public class Test {

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

}
5、下面代码的输出结果是什么?
[java] view plaincopy
package test;

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));  
}  

}
6、编程输出一个目录下的所有目录及文件名称,目录之间用tab。(笔试)
[java] view plaincopy
package test;

import java.io.File;

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();  
    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");  
        }  
    }  
}  

}
不要觉得很简单,最起码你要记得返回当前文件夹下的所有文件的方法是listFiles(),isDirectory别拼错了。
7、从键盘读入10个整数,然后从大到小输出。(笔试)
[java] view plaincopy
package test;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

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));  
}  

}
自己手写排序算法的可以无视此题,如果是Arrays.sort()的,请注意Comparator与Comparable接口的区别,别搞混了。
8、下面代码的结果是什么?
[java] view plaincopy
package test;

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”);
}
}
9、以下代码的结果是什么?
[java] view plaincopy
package test;

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().getSuperclass().getName());  
}  

}

class Base {
}
10、true or false?
[java] view plaincopy
package test;

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));  
}  

}
11、输出的结果是什么?
[java] view plaincopy
package test;

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;  
    }  
}  

}
这样呢?输出什么
[java] view plaincopy
package test;

public class Test {

public static void main(String[] args) {  
    System.err.println(method());  
}  

public static boolean method() {   
     try {   
        return true;   
    } finally {   
      return false;  
    }   
}  

}
12、方法m1和m2有区别吗?什么区别
[java] view plaincopy
package test;

public class Test {

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

public synchronized void m1() {  
}  

public static synchronized void m2() {  
}  

}
13、true or false?理由
[java] view plaincopy
package test;

public class Test {

public static void main(String[] args) {  
    Integer i1 = 127;  
    Integer i2 = 127;  
    System.err.println(i1 == i2);  

    i1 = 128;  
    i2 = 128;  
    System.err.println(i1 == i2);  
}  

}
14、true or false?理由
[java] view plaincopy
package test;

public class Test {

public static void main(String[] args) {  
    String str1 = "a";  
    String str2 = "a";  
    String str3 = new String("a");  

    System.err.println(str1 == str2);  
    System.err.println(str1 == str3);  
    str3 = str3.intern();  
    System.err.println(str1 == str3);  
}  

}
15、true or false?理由
[java] view plaincopy
package test;

public class Test {

public static void main(String[] args) {  
    System.err.println(12 - 11.9 == 0.1);  
}  

}
16、以下代码输出是什么?
[java] view plaincopy
package test;

import java.math.BigInteger;

public class Test {

public static void main(String[] args) {  
    BigInteger one = new BigInteger("1");  
    BigInteger two = new BigInteger("2");  
    BigInteger three = new BigInteger("3");  
    BigInteger sum = new BigInteger("0");  
    sum.add(one);  
    sum.add(two);  
    sum.add(three);  
    System.out.println(sum.toString());  
}  

}
17、输出的结果是什么?12345?根据单词排序?还是?
[java] view plaincopy
package test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Test {

public static void main(String[] args) {  
    Set<String> set = new HashSet<String>();  
    set.add("one");  
    set.add("two");  
    set.add("three");  
    set.add("four");  
    set.add("five");  
    for (Iterator<String> it = set.iterator(); it.hasNext();) {  
        System.err.println(it.next());  
    }  
}  

}
18、如何迭代Map容器,别所大概是……,手写个试试?
19、以下代码输出的结果(笔试选择题)
[java] view plaincopy
public class Test {

public static void main(String[] args) {  
    System.err.println(args.length);  
}  

}
/*
A. null B. 0 C. Test
D. Exception in thread “main” java.lang.NullPointerException
*/
20、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
[java] view plaincopy
public class Test {

public Test instance = null;  

public static Test getInstance() {  
    if (instance == null) {  
        instance = new Test();  
        return instance;  
    }  
}  

}

reader writer inputstream outputstream 区别
reader writer 取与写入 字符,通常处理文件方便
inputstream /outputstream 输入流输出流 二进制 处理图像音频

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值