收录各种猥琐的Java笔试/面试题目

本文收录各种猥琐的Java笔试/面试题,一些比较容易忘记的,不定期更新。也希望大家在底下留言,贴出自己碰到或看到的各种猥琐笔试、面试题目。

J2EE基础部分

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

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、运算符问题,下面代码分别输出什么?(笔试)

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、下面代码的结果是什么?还是抛出异常?(笔试)

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日,下面代码输出什么?(笔试)

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、下面代码的输出结果是什么?

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。(笔试)

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个整数,然后从大到小输出。(笔试)

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、下面代码的结果是什么?

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、以下代码的结果是什么?

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?
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、输出的结果是什么?

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;
		}
	}
}
这样呢?输出什么

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有区别吗?什么区别

package test;

public class Test {

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

	public synchronized void m1() {
	}

	public static synchronized void m2() {
	}
}
13、true or false?理由

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?理由

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?理由

package test;

public class Test {

	public static void main(String[] args) {
		System.err.println(12 - 11.9 == 0.1);
	}
}
16、以下代码输出是什么?

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?根据单词排序?还是?

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、以下代码输出的结果(笔试选择题)

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、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。

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


先写这么多,会一直更新。

请记住本文地址:http://blog.csdn.net/smcwwh/article/details/7315041

  • 38
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 88
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值