Java 面试题经典 77 问(含答案)!
image 推荐:成为架构师的十阶段学习资料 金三银四了,3月底,4月初,找工作换单位的黄金时期。4月初将会有有一大批职场人士流动。。。 作为Java开发码农的你是不是也在蠢蠢欲动,或者已经搞了几轮车轮战了? 我们为大家准备了 77 道经典 Java 面试题,如果你面试不力,基础还不够强,那么你或许会受用! 1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 2、JDK和JRE的区别是什么? 3、static关键字是什么意思?Java中是否可以覆盖(override)一个private或者是 static的方法? 4、是否可以在static环境中访问非static变量? 5、Java支持的数据类型有哪些?什么是自动拆装箱? 6、Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思? 7、Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数? 8、Java支持多继承么? 9、接口和抽象类的区别是什么? 10、什么是值传递和引用传递? 11、进程和线程的区别是什么? 12、创建线程有几种不同的方式?你喜欢哪一种?为什么? 13、概括的解释下线程的几种可用状态。 14、同步方法和同步代码块的区别是什么? 15、什么是死锁(deadlock)? 16、如何确保N个线程可以访问N个资源同时又不导致死锁? 17、Java集合类框架的基本接口有哪些? 18、为什么集合类没有实现Cloneable和Serializable接口? 19、什么是迭代器(Iterator)? 20、Iterator和ListIterator的区别是什么? 21、快速失败(fail-fast)和安全失败(fail-safe)的区别是什么? 22、Java中的HashMap的工作原理是什么? 23、hashCode()和equals()方法的重要性体现在什么地方? 24.HashMap和Hashtable有什么区别? 25、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是 ArrayList? 26、ArrayList和LinkedList有什么区别? 27、Comparable和Comparator接口是干什么的?列出它们的区别。 28、什么是Java优先级队列(Priority Queue)? 29、你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么? 30、如何权衡是使用无序的数组还是有序的数组? 31、Java集合类框架的最佳实践有哪些? 32、Enumeration接口和Iterator接口的区别有哪些? 33、HashSet和TreeSet有什么区别? 34、System.gc()和Runtime.gc()会做什么事情? 35、finalize()方法什么时候被调用?析构函数(finalization)的目的是什么? 36、果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存? 37、Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)? 38、串行(serial)收集器和吞吐量(throughput)收集器的区别是什么? 39、在Java中,对象什么时候可以被垃圾回收? 40、JVM的永久代中会发生垃圾回收么? 41、Java中的两种异常类型是什么?他们有什么区别? 42、Java中Exception和Error有什么区别? 43、throw和throws有什么区别? 44、异常处理完成以后,Exception对象会发生什么变化? 45、finally代码块和finalize()方法有什么区别? 46、什么是JDBC? 47、解释下驱动(Driver)在JDBC中的角色。 48、Class.forName()方法有什么作用? 49、PreparedStatement比Statement有什么优势? 50、什么时候使用CallableStatement?用来准备CallableStatement的方法是什么? 51、数据库连接池是什么意思? 52、什么是RMI? 53、什么是分布式垃圾回收(DGC)?它是如何工作的? 54、解释下Serialization和Deserialization。 55、什么是Servlet? 56、说一下Servlet的体系结构。 57、GenericServlet和HttpServlet有什么区别? 58、解释下Servlet的生命周期。 59、doGet()方法和doPost()方法有什么区别? 60、什么是服务端包含(Server Side Include)? 61、什么是Servlet链(Servlet Chaining)? 62、如何知道是哪一个客户端的机器正在请求你的Servlet? 63、HTTP响应的结构是怎么样的? 64、什么是cookie?session和cookie有什么区别? 65、浏览器和Servlet通信使用的是什么协议? 66、什么是HTTP隧道? 67、sendRedirect()和forward()方法有什么区别? 68、什么是URL编码和URL解码? 69、JSP请求是如何被处理的? 70、什么是JSP指令(Directive)?JSP中有哪些不同类型的指令? 71、什么是JSP动作(JSP action)? 72、隐含对象是什么意思?有哪些隐含对象? 73、面向对象软件开发的优点有哪些? 74、封装的定义和好处有哪些? 75、多态的定义? 76、继承的定义? 77、抽象的定义?抽象和封装的不同点? 推荐:Spring Boot & Cloud 最强技术教程 扫描关注我们的微信公众号,干货每天更新。 image 在以下公众号回复 "答案" 获取全部参考答案。 image