美文网首页IT技术进阶技术干货
JAVA面试题「社招篇」

JAVA面试题「社招篇」

作者: 5f1df32e8c44 | 来源:发表于2017-12-25 21:52 被阅读69次

    1. hashcode跟equals

    2. hashmap的实现原理

    3. 如何扩容,为什么要扩容

    4. 1.6 1.7 1.8之间的区别

    5. 1.8用了树解决冲突,既然是树就有排序,那是怎么排序的

    6. 1.8为什么要换成树,什么是hash碰撞攻击

    7. concurrenthashmap原理

    8.concurrenthashmap在读写并发的时候,什么时候可见,什么时候不可见

    9.怎么实现一个简单lrumap

    10.如果上面都答出来,那还可以问在一个高并发场景下面hashmap触发一次扩容导致rt爆长,请问有什么好的解决方案

    基础知识:考察基础的时候一般都不会太深入地去问,主要目的是考察知识面,如果发现候选人很多都不知道可能就不会继续进入下一步的考察。

    JDK 集合、BIO/NIO、annotation 等

    虚拟机 内存模型、类加载原理

    数据库 索引、事务、死锁 等

    并发 并发优缺点、内存可见性(volatile)、锁、同步、线程池框架

    网络 TCP/HTTP

    常见设计模式

    深入考察

    深入考察的时候不会像考察基础一样面面俱到,而是会在某个点上深入去聊,这个点的选择可能是让候选人自己选一个点,也可能是面试官根据简历内容去选,主要目的是考察候选人对某个技术点的深入掌握程度,技术是相通的,如果一个人能在某个技术点上达到很深入的程度,其他点上通常也不会有太大问题;相反如果某个人在他声称很了解的点上都支支吾吾、一知半解多半可以判断此人要么技术能力有限、要么遇到问题不愿深入考察、浅尝辄止。

    JDK ConcurrentHashMap如何提高并发度、NIO的原理(零拷贝、堆外内存),优缺点

    虚拟机 包冲突,类冲突的形成原理及解决办法(可能会引申JDK9的模块化设计)、TCCL的存在价值

    分布式 一致性哈希、RPC原理和设计(通信协议、序列化方式、超时机制等)、负载均衡、分布式缓存架构设计、分布式消息、分布式事务、paxos(这个可能只有在技术专业型很强的职位上会去问)

    数据库 数据库性能优化(慢sql、索引优化、大事务、内核参数调优),也可能会把一些工作中碰到的诡异场景抛出来问

    并发 非阻塞锁(CAS)、并发对编译器优化的影响、线程池调优、也肯会把工作中碰到的并发问题抛出来问

    技术趋势、docker、微服务等新技术发展历史、带来的福利

    如何准备

    首先要声明的是,最好的“准备”方式一定是平时多积累、遇到问题不要逃避或者讨巧、深入去思考并解决,在解决一个个问题的过程中积累解决问题的能力,形成自己的知识体系。所以这里说的如何准备不是说临时抱佛脚,而是如何能通过提前准备把自己平时的积累展现出来,不因为临场的表现影响面试官对你的判断。

    针对以上列的知识点思考答案甚至扩展,如果能知道大部分,深入一部分就很好,这个过程主要是整理自己的知识体系

    回忆整理简历和过往项目中的”难点“、”亮点“,因为这些是用来区分候选人很重要的点,合格的面试官一定会问类似于”你在项目中经历的最大的技术难点是什么?“,整理一下思路,不至于在面试时候因为时间久远而回忆不起来细节影响面试效果。

    沟通过程中做到有理有据,不要过于自大,也无需刻意迎合面试官。沟通的本质是信息透明化,工作中也许我们无法做到完全客观公正,但是在技术问题上坚持自己的客观和原则是我认为技术人应该坚持的品格,我这里说的坚持不是一根筋的固执已见,而是根据共同认可的事实进行逻辑推断得出的观点。长远来看这种品格会带给你足够的技术影响力和回报。

    对Java感兴趣的朋友可以加入到我们的学习交流群:450936584每天都会分享最新的视频和资料 可以免费领取学习视频和资料

    相关文章

      网友评论

        本文标题:JAVA面试题「社招篇」

        本文链接:https://www.haomeiwen.com/subject/byurgxtx.html