前言
朋友本科毕业,做了3年外包,每天就是增删改查,坐吃等死状态,心里总觉得这样下去要丸,于是下定决心辞职,在家爆肝三个月,面试了10余家公司,最后拿到了京东Java岗的offer。
小编厚着脸皮要朋友总结了他面试过程中常遇到的问题,这里分享给大家,希望能帮助到想要面试的小伙伴们。
java基础
1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
2、“static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
3、是否可以在static环境中访问非static变量?
4、Java支持的数据类型有哪些?什么是自动拆装箱?
5、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
6、Java支持多继承么?
7、接口和抽象类的区别是什么?
8、什么是值传递和引用传递?
9、创建线程有几种不同的方式?你喜欢哪一种?为什么?
10、同步方法和同步代码块的区别是什么?
11、什么是死锁(deadlock)?
12、如何确保N个线程可以访问N个资源同时又不导致死锁?
13、Java集合类框架的基本接口有哪些?
14、什么是迭代器(Iterator)?
15、Iterator和ListIterator的区别是什么?
16、Java中的HashMap的工作原理是什么?
17、HashMap和Hashtable有什么区别?
18.数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
19.ArrayList和LinkedList有什么区别?
20.如何