面经汇总-社招-6年

​ 本文列出了别人面经各个重难点,还有自己不会的地方,暂时没学到的:Netty就跳过了

​ 感觉面试核心宝贵点都是在项目介绍,而不同人项目不一样,还是得多看别人项目,面经里面的非项目都只能算是基础或者中级知识。

参考链接:https://mp.weixin.qq.com/s/eqJ4mKdS69ADOCoB4035Fg

1.丰疆智能
  1. ArrayList 的扩容机制:
    初始化创建不会定义长度,第一次调用add定义为10,后续扩容为原来1.5倍

  2. HashMap 什么场景下是线程不安全的?会导致什么后果?
    jdk1.8之后put采用尾插法,多线程下数据会覆盖

  3. 当核心线程数未满,继续提交任务,是复用已经空闲的线程还是继续创建?
    继续创建,一方面是为了线程预热,核心线程个数本身就是配置好的最优值,另一方面复用之前线程是有争抢资源锁开销的。

  4. AQS 了解?里面都有哪些属性?AQS 有几种模式?你对 AQS 还有哪些理解?
    State,CLH。独占和共享(…见尚硅谷-JUC-AQS篇)

  5. JVM 的内存模型?哪个区域不会发生 OOM?

​ [外链图片转存中…(img-srtbGtA0-1659345030120)]

2.西安移动研究院
  1. 包装类是深拷贝还是浅拷贝?
    深拷贝。深拷贝:复制一份全新过来。浅拷贝:只复制指针引用,修改后就改了原先的值,Integer包装类底层final int ,就是深拷贝

  2. Redis 的 key 删除策略?
    3种。定期删除(定时扫描),定时删除(过期时间到了就删除),惰性删除(不处理,用到了再判断是否删除)

  3. 写代码时常见的内存泄漏?

    1. 长生命周期引用修饰短生命周期引用:static 引用 = 局部变量
    2. 数据库、文件IO、socket连接后没有关闭断开
    3. set集合添加对象后又修改该对象属性再次添加(修改属性就是修改hashcode)后。重复添加后原对象hashcode变更,添加进去一个新的引用对象,就会造成内存泄漏(…见尚硅谷-JVM-内存泄漏的8种情况)
  4. 线程 A 中创建线程 B,线程 B 如何捕获线程 A 的异常?

    1. 子线程中定义一个线程,设置setUncaughtExceptionHandler。(网上找代码实验即可)
  5. 有哪些让线程阻塞的方法?有哪些类使用了 LockSupport?(这个问题问的真的好)

    1. Object->wait,notify
    2. Condition->await,signal
    3. LockSupport->park,unpark。(AQS底层就是靠LockSupport阻塞线程,而AQS上层实现就是ReentreenLock.lock, Future.get, CompletableFuture.get等这些,它们底层代码都显式用到了LockSupport.park)
  6. 泛型中 Extends 和 Super 关键字的区别?在 put 操作多时用哪种,为什么?在 get 操作多时用哪种,为什么

    1. <? extends T>是上界通配符,包含T和T子类,只能取数据,不能读
    2. <? super T>是下界通配符,包含T和T超类,只能存数据,不能取
  7. SpringBoot 自动装配原理?

    1. SpringBoot启动会自动加载各个配置类,然后按需加载组件(具体见尚硅谷-SpringBoot-自动装配,之前学习跳过了,后面学一下)
3.西安卓派
  1. Spring 中的 ApplicationEvent 使用过?
    1. 事件监听,由于暂时没用到就没学。(尚硅谷-Spring注解驱动有讲到)
  2. DDD 了解?是否知道其中的术语?
    1. domain-driven design领域驱动设计:就是把一个大型需求拆成一个个问题域,问题域下面拆成对象,然后考虑各个问题域之间的调用和协作。是相较于面向过程编程、面向对象编程的进化版参考链接:https://wenku.baidu.com/view/ea44f92393c69ec3d5bbfd0a79563c1ec4dad74e.html
  3. HTTP 协议的无状态你怎么理解?无状态有啥好处和坏处?
    1. HTTP协议就是无状态,指的是服务器不知道客户端状态,2次不同请求服务器,服务器认为2次请求没有任何关系。
    2. 相反,有状态就是cookie这种,好处当然就是节省资源,坏处就是服务器无法记录用户,可能会被恶意频繁请求攻击这种
4. 西安腾讯云

真不愧是腾讯啊,太难了。

  1. 谈谈什么是零拷贝?
    1. 减少CPU复制次数。kafka(kafka速度快原因之一:系统瓶颈是网络IO,而0拷贝就是减少内存拷贝次数)底层就是0拷贝。参考博客:https://blog.csdn.net/shenchaohao12321/article/details/115464117
    2. 感觉还是挺重要的,只学了个皮毛,后面专门出一章学习下。
  2. 一共有几种 IO 模型?NIO 和多路复用的区别?
    1. 后面再补一下,IO这一块确实太虚了。
    2. 参考链接:https://blog.csdn.net/lzb348110175/article/details/98941378
  3. TCP 怎么实现拥塞控制?怎么实现重传(说了思路不过具体的实现回答的不准确)?
    1. 慢开始,拥塞避免,快重传,快回复(难受啊,大学学的408都忘了好多了,做的笔记也不在了)
    2. 参考链接:https://blog.csdn.net/qq_46312987/article/details/124061775
5. 翼支付
  1. HashMap 如何减少 hash 碰撞;
    1. 线性探测法:一个地方冲突,就线性顺序往后找。ThreadLocal就是这种办法
    2. 链式寻址法:冲突的话就往链表后面加。HashMap, HashTable
    3. 再Hash:hash之后hash
    4. 公共溢出区:hash表分成基本表和溢出表,冲突元素放到溢出表中
  2. Redis 热 Key 如何解决
    1. 热Key就是多个请求访问Redis上同一个key,弄成集群方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
java面经-百度准入职老哥整理.pdf》是一份关于百度准入职面试Java面经整理。这份面经是由百度准入职的老哥整理而成,其中记录了一些面试时可能会遇到的问题以及解答方法。 这份面经对于准备参加百度准入职面试的人来说非常有价值。首先,它列出了一些常见的面试问题,涵盖了Java语言的各个方面,包括基础知识、数据结构与算法、设计模式、多线程、网络编程等等。通过仔细研究和复习这些问题的答案,可以帮助面试者全面了解Java语言的特性和应用。 其次,这份面经还提供了问题的解答思路和方法,帮助面试者理清思路,正确回答问题。这对于很多面试者来说特别有帮助,因为在面试时有时会遇到一些棘手的问题,有了这份面经的指导,面试者可以更好地掌握应对策略。 不过需要注意的是,面经作为一份参考资料,不能完全依赖于它来准备面试面试官可能会问一些不在面经中列出的问题,因此考生还是需要自己对Java语言有充分的了解,并能够熟练运用。同时,面试官还会关注考生的沟通能力、解决问题的能力以及对新技术的学习和掌握能力。 总体来说,《java面经-百度准入职老哥整理.pdf》是一份非常宝贵的资料,可以帮助面试者对Java面试中可能会遇到的问题有更深入的了解,提供了解答思路和方法。但记住,面试准备还需要多方面的知识积累和实践经验的积累,才能在面试中展现自己的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福宇乔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值