日期:2014-05-20  浏览次数:20792 次

Java面试2012-06-04
1、java中不用第三方变量交换两个int变量的值
a = a + b;
b = a - b;
a = a - b;

a = a * b;
b = a / b;
a = a / b;

a = a ^ b;
b = a ^ b;
a = a ^ b; 

说明:
       参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
2、ArrayList与Vector
详见:Java util之常用数据类型特性盘点
3、List<String>从中删除值为“123”的数据
说明:
     List<String> strings = new ArrayList<String>();
     假设该strings里面的值为:"123"、"abc"、"f"、"123"、"3"、"f"、"123"、"123"
     如何将该List里面值为“123”的全部删除?

4、递归列出某目录下的所有文件
// 递归列出创建时间最早的文件
private void funList(File file) {
	//log(file);
	if (file.isDirectory()) {
		File[] files = file.listFiles();
		if (files == null) {
			return;
		} else {
			for (File f : files) {
				funList(f);
			}
		}
	} else {
		if (!file.isHidden()) {
				//deleteArea.setText("");
				//deleteArea.setText(file.toString());
				log(file);
				fileDateLists.add(file);
		} else {
			// log("隐藏文件:"+file);
		}
	}		
}

//delete dir
void deleteDir(File file) {
	if (file.isDirectory()) {
		File[] files = file.listFiles();
		for (int i = 0; i < files.length; i++) {
			File f = files[i];
			if (f.isDirectory()) {
				deleteDir(files[i]);
			} else {
				if (!f.delete()) {
					System.err.println(f.getAbsolutePath() + "cann't be deleted .");
				}
			}
		}
	}
	if (!file.delete()) {
		System.err.println(file.getAbsolutePath() + "cann't be deleted .");
	}
}

5、多线程
Class Demo {
	synchronized A () {....}
	synchronized B () {....}
}

在多线程环境下有线程One和线程Two,而demo为new Demo()的对象,问在两个线程中是否可以分别调用demo.A()和demo.B()?

6、Java实现双向链表

7、JS是否有类

8、定义了函数function f(x, y) {......}但是在调用时想给函数f传递三个参数f(x, y, z),问在不改变原有函数f的情况下,如何将z传递到f函数中?