那些年做过经典的JAVA面试题,看看你是否依旧能够全部做对呢?有时候停下脚步回头瞅瞅也是一件很有意思的事情。答案在最后哦。
2题解释:
public void
two(){
int i =
Interger.Max_VALUE;
System.err.println((i+1)
System.out.println("2
存在一个i,使得(i+1)
}
4题解释:
private
static volatile int count = 0;
private
static void four() {
ExecutorService
executorService = Executors.newCachedThreadPool();
for (int j =
0; j < 10; j++) {
executorService.submit(()
-> {
for (int i =
0; i < 1000000; i++) {
count++;
}
});
}
System.out.println("count
should be: " + 10000000 + ", actual be: "+ count);
System.out.println("4.
volatile不能保证线程安全");
}
5题解释:
private
static void five() {
ArrayList
list = new ArrayList<>(20);
list.add(1);
System.out.println("debug
code, not execute grow method");
System.out.println("5.
list grow 0 times");
}
6题解释:
private
static void six() {
System.out.println("BufferedReader's
constructor only accepts a Reader instance");
System.out.println("6.
new BufferedReader(new FileInputStream(\"a.dat\")); is
wrong");
}