Java程序员面试题与经验工与总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java程序员面试题与经验工与总结 一、面试到底在问些什么东西? 首先你要知道,面试官的提问和你简历上写的内容是紧密联系的,所以你简历上写的技能一定要会。 一般面试包括下面几方面知识类型: Java基础、多线程、IO与NIO、虚拟机、设计模式 数据结构与算法(要有手写算法的能力) 计算机网络(TCP三次握手和四次挥手) 数据通信(RESTful、RPC、消息队列) 操作系统(Linux的基本命令以及使用) 主流框架(Spring底层原理与源码问的很多) 数据存储(最常见的是MySQL、Redis) 分布式 其他问题: 实际场景题 生活方面的问题 性格/其他方面的问题 二、面试常问的知识点 1)集合相关问题(必问) HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现 HashMap和Hashtable的区别 ArrayList、LinkedList、Vector的区别 HashMap和ConcurrentHashMap的区别 HashMap和LinkedHashMap的区别 HashMap是线程安全的吗 ConcurrentHashMap是怎么实现线程安全的 HashMap 的长度为什么是2的幂次方 2)多线程并发相关问题(必问) 创建线程的3种方式 什么是线程安全 Runnable接口和Callable接口的区别 wait方法和sleep方法的区别 synchronized、Lock、ReentrantLock、ReadWriteLock 介绍下CAS(无锁技术),什么是悲观锁和乐观锁 volatile关键字的作用和原理 什么是ThreadLocal 创建线程池的4种方式 ThreadPoolExecutor的内部工作原理 分布式环境下,怎么保证线程安全 synchronized和lock区别以及volatile和synchronized的区别 3)JVM相关问题 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。 垃圾收集有哪些算法,各自的特点。 类加载的过程。 双亲委派模型。 有哪些类加载器。 能不能自己写一个类叫java.lang.String。 4)设计模式相关问题(必问) 设计模式比较常见的就是让你手写一个单例模式(注意单例模式的几种不同的实现方法)或者让你说一下某个常见的设计模式在你的项目中是如何使用的。 另外面试官还有可能问你抽象工厂和工厂方法模式的区别、工厂模式的思想这样的问题。 建议把代理模式、观察者模式、(抽象)工厂模式好好看一下,这三个设计模式很有用。 5)数据库相关问题,针对MySQL(必问) 给题目让你手写SQL。 有没有SQL优化经验。 MySQL索引的数据结构。 SQL怎么进行优化。 SQL关键字的执行顺序。 有哪几种索引。 什么时候该(不该)建索引。 Explain包含哪些列。 6)框架相关问题 Hibernate和Mybatis的区别。 Spring MVC和Struts2的区别。 Spring用了哪些设计模式。 Spring中AOP主要用来做什么。 Spring注入bean的方式。 什么是IOC,什么是依赖注入。 Spring是单例还是多例,怎么修改。 Spring事务隔离级别和传播性。 介绍下Mybatis/Hibernate的缓存机制。 Mybatis的mapper文件中#和$的区别。 Mybatis的mapper文件中resultType和resultMap的区别。 7)其他问题 介绍下栈和队列。 IO和NIO的区别。 接口和抽象类的区别。 int和Integer的自动拆箱/装箱相关问题。 常量池相关问题。 ==和equals的区别。 什么是JDK?什么是JRE?什么是JVM?三者之间的联系与区别 Java和C++的区别 重载和重写的区别。 String和StringBuilder、StringBuffer的区别。 静态变量、实例变量、局部变量线程安全吗,为什么。 try、catch、finally都有return语句时执行哪个。 介绍下B树、二叉树。 分布式锁的实现。 分布式session存储解决方案。 常用的linux命令。 三、其他经验分享 **1)**不要一开始就去面试自己最想去的公司,把面试当作一次技术的交流,面试的越多,经验越多,等面出了心得再去投理想的公司。 **2)**不熟悉的技术不要主动提。 **3)**如果没有明白面试官的问题,不要不懂装懂,可以礼貌地让对方重复一遍,也让自己多一点时间思考。 **4)**在面试的日子里,要保持每天学习,无论是学习新东西还是复习旧东西。 **5)**如果超过3-5天还没有得到结果,自己又很想去这家公司,可以主动联系HR询问面试结果,就算面试没有通过,也可

文档评论(0)

蓝玥 + 关注
实名认证
文档贡献者

活泼开朗、乐观上进、有爱心并善于施教并行;上进心强、勤于学习能不断提高自身的能力与综合素质。

1亿VIP精品文档

相关文档