Q:这是一个代码片段,如何使得该代码抛出ArrayIndexOutOfBounds异常?
private static String[] list = null;
public static String[] getArray(size) {
list= new String[size];
for (int i = 0; i < size; i++) {
list = "a" + i
}
return list;
}
A:如果两个线程并行执行还用值10和7调用这个方法,第一个线程将创建10维数组,然后第二个线程将重新初始化7维同样的静态数组,接着第一个线程将运行这个数组从0到9还放值在里面,然而数组维数现在是7于是在list[7]它将抛出该异常。
Q:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。写一个版本算法复杂度O(N^2)和一个O(N)
A:private static String match(String a, String b) {
String result = "";
Set lettersSet = new HashSet(26);
for (int i=0; i
lettersSet.add(new Character(b.charAt(i)));