二本本科Java上岸(滴滴京东58)2019秋招心得+面经

全文共上万字!!!!!!

目录:
图片说明

秋招之路终结篇:

楼主:二本本科、无实习经验、CS专业(但是个人觉得和非科班没啥区别,专业课也没有听...)

秋招之路:6.28——10.29,战线很长、6.28的第一封简历投出、10.29的面完滴滴三面暨秋招结束

海投简历:180+吧,在牛客网的求职校招日程里( https://www.nowcoder.com/school/schedule ),牛客打钱(手动狗头),有合适岗位的公司都投,每天投几个,自然而然就到180,前期建议投一些小公司练练面试,后期就是大公司干,千万不要认为自己没有准备好就不投,等你准备好,黄花菜都凉了

方向:Java方向、只会SSM,其他Redis、中间件都不会

岗位:Java开发 / 后端开发

Offer:滴滴、京东、科大讯飞sp、58集团、用友、锐捷网络、联行科技(新公司大背景、薪资+补助下来跟滴滴差不多了)

秋招范围:基础能过==白菜,基础+实践动手==SP,基础超强==SP,很多完善的知识点其他大佬有推荐,都很nice,我就不献丑推荐了,关于众多选择,选择哪一个比较好,个人觉得死磕一个大佬给的知识点方向,然后再查缺补漏其他的,

我自己的范围:

首先说明我是Java开发,我的范围只适合Java开发的,其他方向我不太了解,并且很多公司侧重点也不一样,比如字节不侧重语言,侧重操作系统四大金刚那些,也看公司吧,就像考不同的学校,会有不同的大纲,因为我是本科生,都比较侧重基础

Java:Java基础杂七杂八的(经典必考集合各种死磕源码吧)、多线程并发包各种死磕(我是死磕到源码),JVM死磕到细节、GC死磕到细节、JVM调优自己练习练习

框架:spring看看IOC和AOP的源码,但是太难太难了,就光那个方法名就特别长,前期就只知道个IOC和AOP是啥,后期就去看源码记大概一个原理过程,SpringMvc的流程,一些注解吧,Mybatis也是那些常考的点吧,缓存可以了解一下

数据库:数据库死磕,越深越好

操作系统和网络:背常考的、但是太深了,还是菜

设计模式:太多了记不住,我就是简单了解一下,叭叭给他说有啥用,Java里哪里用了xx模式

算法和数据结构:是我秋招开始补的、做完类型题进行总结,刷的就是LeetCode吧,我是先LeetCode,然后剑指offer,但是我也是有很多笔试直接挂的,除了遇到一些简单的,或者原题或者类似的题能A,一定要总结套题,类型题,一定总结一定总结一定总结

Redis:没有用过,但是就是记吧,那些常考的东西

IO模型、网络编程:比较菜了,不咋会

Linux:我也比较菜了,就会简单的命令

微服务、分布式、集群、中间件:我不了解,只知道有这个玩意

关于源码阅读:建立在自己会使用这个东西之后再去阅读源码,阅读常用的方法源码即可,第一次阅读源码建议看视频跟着阅读或者找博客,要不然比较生疏很难,,,,

我的简历和项目:简历也没有亮点,项目就是CRUD的项目,技术就SSM很low,其他的大厂基本都是简历直接挂,菜的一逼,项目是老师的活不能放github,但是真的很low,我觉得简历还是实习经验是亮点,或者一些计算机类的比赛,

关于面试:面完问一下面试官对你的评价,找到自己的不足,反正我每次问面试评价都是:基础不错,就是动手实践不是很好,xxx,,,,如果感觉跟面试官聊得不错的,可以厚着脸皮要个微信加,反正我面滴滴三面要微信加,被面试官拒绝了,其他的也有成功的,哈哈哈哈哈

我一般线上面试会录屏或者录音,面完之后复盘总结,这就是为什么我面经这么全的原因,不是我记性好,,,,,哈哈哈哈哈

如何拿到offer的:因为没有实习,项目也low,我就是死磕基础,把很多源码看了,集合、JUC下的,面试就磕源码,操作系统和计算机网络背不住,就是手写吧。我拿的offer里,基本都是Java问的很多

心态:秋招就像心电图一样,考研就像前期平稳,后期曲线上涨,因为自己也很乐观,在整个秋招之路里,也有人说话,自己也有几个网上的小伙伴群,每次就是说说话,互相激励对方,如果你是一个人的话,希望找几个小伙伴一起交流说说话,避免自闭低沉消极

个人技巧

  1. 看了很多面试的知识,根本记不住,在小伙伴群里会经常互相面试对方,很多时候把自己学的东西说出来,是非常容易记住的
  2. 还是记不住怎么办,手抄写在纸上,就是硬写,秋招以来我大概写了20+的单面A4纸吧

实习和秋招冲突选择:当时自己也考虑过这个问题,因为没有去实习,就简历投的比较早,战线很长很累,最终感觉就是如果能在实习的过程中花一些时间去准备秋招的知识,我觉得这是最优的选择,但是这也是很累的选择,当然如果你基础也很nice的话,我觉得会非常轻松,能实习就去实习,因为没有实习经验真的很吃亏,就靠基础吃饭了,死磕基础,因为我自己没有选择去实习,在整个秋招很多时候也比较吃亏,但是最终还是坚持下来了!!

坎坷的offer

  • 贝壳是第一家面完 全部流程的公司,当时认为能过,结果被挂了,不知道是什么原因,可能学校吧...,当时挺难过的。
  • 京东是8.13 14的一二面,面完之后一直没信,二面面试官也说我技术面过了提交了HRBP处理了,等到了8.29正式批给我发来线下面试邀请再次联系了二面面试官帮我反馈,当天晚上收到HRBP的oc,给我说锁定简历,给我发offer,问了几个hr的问题,9.5问hrbp什么时候发offer,hrbp问我要了身份证,之后一直持续到9月底,期间给HBRP发了四次微信询问offer的事,没有一次回我微信的,9.30二面面试官帮我反馈了我一直没有收到offer的情况,HR那边还是没有给反馈,国庆期间最终找到零售校招HR帮我查了一下我的信息,结果说没有查找我的信息,我给他说了我是提前批,HBRP问我要了身份证各种情况,说帮我对接一下HBRP,最后发现是把我的信息遗漏了,重新给我提交,10.10收到offer,等待京东这段时间,身边的人都说我凉了凉了,但是我还是坚持下来了,天天找各种途径去查,最终也是没有辜负自己的努力。
  • 滴滴是8.9投的简历,8.27笔试,邀约9.7的线下面试,但是我拒绝了,期间一直想去问问能不能申请线上面试,结果没有找到途径,9.12电话邀约了9.16一面,面完之后一直就没有信了,也没有拒信,官网状态还是面试流程中,然后一直给滴滴的邮箱发消息问面试结果、不下5次吧,都是石沉大海,在牛客找滴滴hr联系方式,也没有方式,在10.15的时候再次给滴滴邮箱和滴滴招聘公众号发消息,下午来了hr约二面了,我坚持的等到了,9.16-10.15 一个月的时间啊,这期间也基本每个人都告诉我是挂了,是不会有感谢信的,但是我还是坚持,同样我是在10.10收到的京东offer,但是我还是不甘心,还是去坚持问滴滴,就是要个结果,挂就去京东,过就继续面,再约面滴滴这期间,我同样面试了其他家为了面试查缺补漏吧,大大小小公司我都投,一直坚持到offer,给自己的目标就是面完滴滴三面就不面了,结束秋招,因为太累太累了。。。

总结来说: 秋招就像一场考试,给定了要考的范围,就是你能不能去坚持死磕他了,坚持死磕对了,加上一点运气+临场发挥就是胜利,祝各位加油!!!冲冲冲!!!就是干!!!


以下面经推荐用电脑观看,markdown语法编写,电脑看是正常的,手机看就是乱的

滴滴(说的下周发offer):线上面

8.9投简历:

8.27笔试:

9.16一面:80分钟左右

  1. Java集合说一说吧set ,list,map都问了一遍

  2. TreeSet和HashSet区别

    • 红黑树区别,有序无序
  3. hashmap和concurrenthashmap

  4. 线程池用过没,线程池的参数什么意思,每个都问了一遍

  5. 拒绝策略说一说

  6. synchroBlockQueue 到底可以存几个

  7. 锁用过没,l

    • 叭叭各种锁,
  8. 锁的什么方法你用过

    • tryLock
    • getHoldCount
  9. lock和tryLock区别

    • 给他唠了一个acquire这个,但是唠的不明白
    • 唠了一个状态
  10. lock的公平锁和非公平锁的怎么实现的(源码级别),不限于概念

  11. 类加载机制,不是类加载几个过程

  12. 如果多个类加载器加载同一个类,会出现什么情况

  13. tomcat的加载过程

    我说了不了解,当时就应该问是不是init doPostxx

  14. spring的生命周期,不是bean

    没有get到点上,不知道

  15. AOP

  16. ASM怎么实现cglib

  17. mybatis的插件用过没,

    • 搞了半天不是那个
  18. 项目,

    ​ 背景:暂存数据,每一次把用户填写的数据暂存到数据库,暂存字段,0暂存,1正式存

    1. 如果实现a用户暂存数据1,b用户暂存数据2,实现a下次只能看见数据1,

      给car表加一个操作人字段,每次判断

    2. car表怎么设计的,

      id,车牌号,xxx,xx,暂存标记

    3. car表主键是什么

      主键id

    4. 主键id有什么规则吗?

      自增长

    5. 如果一个车牌号重复了,添加的时候怎么处理的

      每次填入的时候,都会在数据库里查询一下,判断是否有

    6. 如果4个人同时填入车牌号为888的车,怎么处理这个问题

      叭叭叭半天,给添加这个操作加锁,给判断重复车牌号方法加锁,

    7. 加锁为消化资源,你考虑一下在数据库进行操作吧

      叭叭了隔离级别,说了mysql默认隔离级别(可重复读)

      此时感觉不对了,没有get到点上了

    8. 隔离级别是解决什么问题的啊

      并发的时候问题,叭叭脏读等问题,

    9. 隔离级别什么时候才出来啊?

      不知道

      这个点没有回答好

  19. 数据库索引,索引类别

    唯一索引,聚簇索引,非聚簇索引

  20. 聚簇索引和非聚簇索引区别

  21. 二叉树和B+树的区别

    叭叭半天,没有get到点上

    1. B+树所有数据都在叶子节点,每次查找时间稳定
    2. 叶子节点都有指向下一个叶子节点的指针,范围查找比较方便
  22. 那如果把二叉树弄成,所有数据都存在叶子节点呢

    二叉树,如果删除的话,可能会变成线性树,时间复杂度变高

  23. 那如果平衡二叉树呢

    叭叭了,记得好像磁盘存储是用的b+树结构,索引是存在磁盘上的,用B+树会减少IO操作

  24. 怎么减少IO操作的

    完全懵逼了,

  25. 磁盘上所有文件都是B+树存储吗?

    文件夹的文件吧

  26. 磁盘上怎么存储这些数据的

  27. 你了解什么文件格式

    elf,a.out

  28. Linux操作系统了解过吗

    Linux不太了解过,用过Linux命令,进程同步

  29. Linux命令用过哪些

    cd,grep,pwd,mv,管道符,ps

  30. Linux根目录下有哪些文件夹

    etc,bin,我好像记得是,可能记不太清楚了

  31. 手撕翻转树,递归+递推

  32. 手撕最小路径和

10.17二面:50分钟左右

  1. 开源项目了解什么

  2. SpringBoot如何加载,源码

  3. 学习源码如何深入学习的

    叭叭叭ArrayList和LinkedList

  4. 如果去了解spring的启动过程,你怎么去了解

  5. tomcat启动的流程,要加载什么资源

  6. 项目中有哪些收获

  7. 项目中负责哪些点,技术方向吧

  8. 为什么用mvc架构

    面试官:其实这个mvc架构知识点还是很深的,要做好还是很难的

  9. 项目里Spring的事务是怎么管理的

    在方法上加注解

  10. 那为什么加注解可以实现,这个加载机制是怎么实现的,源码级别

  11. 为什么这个注解可以实现事务

  12. 那这个事务和数据库的事务有什么关联

    acid,事务隔离级别

  13. 那你们当时项目选技术是怎么思考,比如mybatis用的什么连接池

    用的c3p0

  14. 那你知道有其他的连接池,各自有什么区别

    c3p0、dbcp、druid三大连接池对比 - wawa3338的博客 - CSDN博客
    https://blog.csdn.net/wawa3338/article/details/81380662

    c3p0,dbcp与druid 三大连接池的区别 - 泡面之家 - CSDN博客
    https://blog.csdn.net/qq_34359363/article/details/72763491

    druid的功能强大、扩展好,

    druid c3p0 dbcp
  15. 那你感觉连接池的功能都有什么

    1. 资源重用
    2. 更快的系统响应速度
    3. 新的资源分配手段
    4. 统一的连接管理,避免数据库连接泄漏
  16. 项目大概几个人,开发的人,源码包大小多少

  17. juc看过哪些,说AQS的机制

  18. Lock如果给线程分配锁的

    叭叭ReentrantLock

  19. 公平锁和非公平锁的区别,源码级别

    面试官补充:非公平锁就是抢占式的嘛

  20. 队列呢,了解什么

    ArrayBlockQueue,LinkedBlockQueue

  21. 各个队列使用场景

  22. queue里面都有什么方法

    offer,add,put

  23. 各个方法仔细讲讲,都会出现什么情况,添加的方法有什么,都有什么不同出队列呢,都有什么,跟offer对应的

  24. jvm看过什么、jvm常用命令

  25. jstat的参数,比如看一个线程的回收情况,怎么看、其他的命令呢

  26. 动手去编译JDK源码

  27. JVM的类加载流程,到解析到字节码

  28. 如何去验证版本的冲突的,比如jdk1.6到jdk1.7

  29. 初始化去怎么做的

  30. 实际运用中,ClassLoader都有了解什么

  31. 如何实现一个动态加载、实现哪些方法

    实现ClassLoader这个类

    首先加载这个字节码的字符流,然后有个loader方法吧,记不太清楚了

  32. 如何获取当前的ClassLoader

    getClassLoader方法

  33. 那可以保持建立多个ClassLoader吗?

    给他扯到了不同ClassLoader加载一个clas出来的类不一样

  34. 为什么加载器加载出来的类不一样

    不同加载器加载出来的类不一样,因为加载器不同啊

    面试官补充:因为每个加载器都有自己的隔离机制

  35. jvm内存模型

  36. 多线程如何实现主存同步的

    缓存一致性扯一扯,Java内存模型

  37. 那通过什么指令去实现其他工作内存无效的

    save,xx,忘记了

  38. Java里怎么实现缓存一致性的

    volatile、synchronized、lock、信号量、wait/notify

    面试官补充:信号量也是加锁实现的

  39. jvm的锁优化有什么

    说了synchronized,

  40. 那还有其他编译器的锁优化吗,比如锁粗化

    锁消除、、、、、

  41. 网络编程知道吗

  42. 创建socket的过程

  43. 从server端开始说吧,几个步骤

  44. accept操作之后,然后呢

接收客户端传过来的信息吧,

  1. 怎么解析这个信息呢,输出到什么流里呢

  2. 互联网这块网络编程用的也挺多的,比如rpc框架什么的

  3. Java里的IO这块你了解吗,区别

  4. BIO、NIO、AIO的对应类实现了解吗

  5. shell命令

  6. 进程通信方式

  7. Linux调度方式有什么

  8. Linux的缓存有几级

  9. jdbc连接mysql的几个步骤、为什么要加载驱动呢,原理是什么、PreparedStatement和Statement区别、返回结果如何查询

    准备 private static final URL、、、 也可以用properties从文件中读取。load()、

    1、首先注册驱动啊?怎么注册?反射啊,Class.forName("xx.xx.xx.Driver");底层怎么实现的?静态代码,DriverManager.registerDriver?启动的时候,会自动调用静态代码块的内容。

    2、接下来就是获取连接啊,怎么连接?远程连接(三次握手操作),连接放哪里?作为资源必须放池子里。这样能提高性能。常见的连接池有DBCP,C3P0,传说中最安全,性能最好的Druid(国产),而且还能监控。

    3、你总的有SQL语句吧,之后就是Statement编译那。这里会出现SQL注入的安全问题。在语句后面加"1=1"成立。所以我们采用预编译的方式,PreparedStatement。可以防止这种问题的出现。

    4、查完之后获取结果集。rs.getString().

    5、头疼的来了,释放资源。各种 if(xx != nu) {try{ xx.close();}catch{}} 不用担心JDK8 出来一个新特性,可以放在try-withresource中。还有各种异常可以采用通道的形式 XxxException | XxxException

    6、各种异常需要你放到一个try{}catch{}中,出问题你也不知道问题在哪里?

    麻烦吗?不用担心,我们可以封装成一个工具类,需要的时候调用工具类.getConnection();

    还是麻烦啊,可以用Spring框架为我们集成提供了jdbcTemplate,HibernaterTemplate。用模板代码消除了大量的样板代码。

遍历结果集,叭叭

10.29三面:36分钟左右

  1. 说说ArrayList的源码各种方法吧,add,remove一系列方法

  2. MySQL的聚簇索引

  3. 知道SQL注入吗、Java里怎么防止的呢

  4. Redis和数据库的一致性

  5. 了解过什么开源的东西吗

    Spring

  6. 那说说AOP吧

11.1 HR面

京东(10.10 offer)提前批:线上面

7.1投简历、无笔试

8.1 不知名部门一面(挂)

  1. 项目构成
  2. 作为项目组长怎么分工的
  3. 采用什么开发
    1. 敏捷式开发,一些点说一说
  4. 讲讲volatile,可见性举个例子
  5. 你说你了解juc,你说说juc,举个例子
  6. ArrayList和LinkedList
    1. 说了增删改查的时间复杂度
    2. 面试官说ArrayList增加时间复杂度真的是O(1),,有个值保存了下标,下次增加直接插入
  7. 设计模式,项目中运用了吗
  8. 说说你的优势吧
    1. 说了自己喜欢看基础,面试官说那是底层,是加分项,
    2. 应该重运用,不能纯理论
  9. 最后问了面试官建议,让我多运用运用,底层是加分项,首先得基础好

8.13 智能供应链部一面

  1. 自我介绍
  2. jvm内存模型,GC
  3. 类加载机制
  4. ClassLoader的分类
  5. JDK1.8新特性,主要问了流Stream
    • 不会
  6. hashmap
    1. 1.8阈值为什么是8
  7. 聊聊框架,SpringBoot,spring,springmvc三者关系
  8. spring AOP
  9. 基于spring的应用,我想让这个程序启动之后,然后再打印一个log,或者一个定时任务,这个怎么实现
  10. AOP 两种***的区别,什么时候用
  11. mybatis的一个接口,一个xml文件,执行SQL语句是怎么实现
    • 回答错了
  12. synchronized和volatile
  13. maven的scope有几种
  14. MySQL优化
    1. 联合索引
  15. Redis的数据类型
  16. 项目经验,登录页面怎么做的,越细越好
    1. 后台怎么获取到登录人的
      • 我说了requestparam,好像不是很好
  17. cookie和session

8.14 智能供应链部二面

  1. 项目
  2. 根据项目负责的一些点提新的需求让我设计
  3. MySQL索引B+树问题,为什么B+

主要就是项目问的多

8.29 HR面

10.10 offer

58同城(11.1 offer):线上面

一面10.18:20分钟

  1. 排好序的数组里找到比target小的下标,

  2. 中间件会什么

    我不会

  3. 好像还有线程的并发包

  4. 剩下的忘记了....

二面10.18:20分钟

  1. 自我介绍

  2. 项目中你觉得自己做的比较好的地方在哪里

    数据库

  3. 数据库索引

  4. 洗牌算法

  5. 本地文件abc.txt,里面存放了5000万个正整数,每一行一个正整数,正整数取值范围为1-5000万,现要求你找到第300个大的正整数?要求时间复杂度为O(1)

    O(1) 我很懵逼了

  6. 生产者消费者需要注意什么事项

HR面10.18:

贝壳找房(三轮面完之后挂):线下面

8.24 一面:

  1. 自我介绍
  2. 项目
  3. 手撕反转链表
  4. Java基础你还了解哪些
    1. 我说了多态的两种形式
    2. 看过ArrayList和LinkedList源码
  5. AOP
  6. tcp三次握手
  7. 索引你用过吗
  8. 高并发知识你了解什么
    1. 说了synchronized、ReentrantLock、volatile
      • volatile的原理知道是什么吗?
        1. 我说了JMM,面试官说不是
  9. 线程池几种你了解过吗
    1. 说了几种线程池
      • 继续问我线程池的区别,线程池参数的各自含义
      • 什么时候才会达到最大线程数
  10. GC说一说吧
  11. 类加载机制

二面:感觉很重业务运用

  1. 自我介绍
  2. 抽象类和接口的区别
    1. 能不能用一个设计模式来说明
    2. 设计模式你都了解哪些
  3. int和Integer区别
  4. Session和cookies的区别
  5. HTTP在哪一层
    1. 我说了应用层
  6. HTTP的状态码说一说
  7. OOA,OOD,OOP是什么说一下
  8. 数据库的乐观锁和悲观锁了解吗
    1. 如果给数据库加行级锁,怎么操作
  9. 索引了解吗
  10. 高并发说一说吧
    1. 我说了synchronized、volatile、ReentrantLock
  11. 说说你的优点和缺点吧
  12. 你认为最开心和最难过的事是什么
  13. 你认为有什么书对你影响比较大,不限类型
  14. 有什么想问我的

HR面:

  1. 你感觉前两轮面试如何
  2. 你家里人对你工作的看法
  3. 想去什么公司
  4. 了解贝壳吗
  5. 优缺点
  6. 为什么不考研
  7. 能提前来实习是吧
  8. 有什么想问我的

阿里(二面挂)菜鸟网络内推:线上面

8.22:一面:

  1. 全程就撕项目,提新的需求给方案
  2. tcp udp区别
  3. session和cookie区别

8.26:二面:

  1. 还是项目,怼了一怼
  2. MySQL的联合索引
  3. 哈夫曼树原理
  4. 一致性哈希算法:https://zhuanlan.zhihu.com/p/34985026
  5. UDP不可靠会丢包,为什么还用它,怎么解决UDP不可靠
  6. 后面就是开始聊各种人生了

8.28拒信

字节跳动(一面挂):商业变现线上面

10.9一面:70分钟左右

  1. 简单介绍一下项目吧

  2. 前端框架用过什么

    BootStrap

  3. Vue那些呢

    没有用过

  4. 你觉得这个项目难点在哪里

  5. 图片上传,你这个是单机的,那如果是多台服务器呢,怎么处理

  6. 你设计的表符合什么范式

  7. 说一下第一二三范式的区别吧

  8. OSI模型

    非常尴尬,记不住,没有说全!!!!!

  9. HTTPS建立的过程

  10. 说说Spring的IOC、AOP

  11. 那你说一说ASM吧

  12. Spring什么时候用到jdk动态***,什么时候用到cglib***

  13. 发现频繁Full GC怎么去排查和调整

  14. 还会什么其他的jvm命令

  15. HashMap1.7和1.8的区别,ConcurrentHashMap

  16. CAS比分段锁好在哪里,缺点又是什么

  17. 如何避免CAS一直自旋消耗资源

  18. 用过什么线程池,各自在什么场景下使用

  19. Redis数据类型

  20. Zset怎么实现的,底层是什么

    跳表

  21. 跳表是一种什么样的结构、和查找树有什么区别

    区别回答的优点尴尬

  22. Redis如何做持久化的

  23. SpringCloud学过吗

    没有学过

  24. 分布式和集群了解过吗

  25. 乐观锁了解过吗,说一说

  26. InnoDB如何实现悲观锁的

  27. Synchronized怎么实现的

    说到了monitorenter

  28. 那你知道jvm接收到monitorenter的时候,会执行什么操作

    我说了给monitor变量+1,面试官说这个可能问的有点深了,下一个吧

  29. 手撕,暴力过了一半,最优时间不够了

网易互娱(一面挂):线上面

9.26 一面:27分钟

  1. 自我介绍

  2. 面向对象聊聊吧

  3. 构造函数能不能继承

  4. Java基本类型

  5. 那基本类型的比较用什么进行比较的啊,是否比较

  6. 对象比较呢

    看这个对象有没有重新hashcode和equals方法吧

  7. 对象的比较是用的什么原理比较吗

  8. hashcode了解过吗

  9. 简单介绍一下list和set的区别吗

    叭叭叭

  10. 查找大量数据里是否存在某一数据

    用hashset

    大数据面试题——如何在大量数据中判断一个数是否存在 - CircleYuan的博客 - CSDN博客
    https://blog.csdn.net/kingyuan666/article/details/84583980

    方法一:分治法

    对于大数据相关的算法题,分治法是一个非常好的方法。针对这一题来说,主要思路为:可以根据实际可用内存的情况,确定一个Hash函数,比如:hash(value)%1000,通过这个Hash函数可以把这2.5亿个数字划分到1000个文件中去(a1,a2……,a1000),然后再对待查找的数字使用同样的Hash函数求出Hash值,假设计算出的Hash值为i,如果这个数存在,那么它一定在文件ai中。通过这种方法就可以把题目转化为文件ai中是否存在这个数。那么接下来的求解过程中可以选用的思路计较多,有:

    (1)由于划分后的文件比较小了,就可以直接装载到内存中去,可以把文件中所有的数字都保存到hash_set中,然后判断待查找的数字是否存在。

    (2)如果这个文件中的数字占用的空间还是太大,那么可以用1相同的方法把这个文件继续划分为更小的文件,然后确定待查找的数字可能存在的文件,然后在相应的文件中继续查找。

  11. 优化高效的办法

    提示我了list和set

  12. 项目

  13. MySQL语法,海量数据分页吧,用什么实现

    limit x,x

  14. MySQL常见的引擎,两者区别

  15. 查询效率来说,哪个快一点

    MyISAM吧

    是的,MyISAM虽然是表级锁,但是表的简单,查询效率比InnoDB快

  16. MySQL用的什么版本,5.5和5.7版本的一个区别

    5.7多了一个明显的数据类型json类型

  17. 平常用到json吗?

Bigo(二面挂):线上面

9.2一面:

  1. 自我介绍

  2. 分代收集算法

    • 是套组合拳,新生代分为Eden区和Survivor From和To区,用复制算法,老年代用标记-整理、标记-清除,
    • 复制算法:开辟两个空间,一块用,一块不用,清除的时候把一块用的,存活的放入另外一个空的里面
    • 标记-清除:标记,然后清除,缺点:碎片化
    • 标记-整理:解决碎片化问题,把内存整合连续
  3. 什么参数能够调整新生代的比例?

    • 回答错误
      • -XX:SurvivorRatio:Eden和Survivor的比值,默认8:1
      • -XX:NewRatio:老年代和年轻代内存大小的比例
  4. 如何一个程序频繁的发生Full GC,有什么办法改善这个情况?

    • 用一个指令去参考Full GC的次数,新生代老年代的比例,调整各比例
    • 产生Full GC的原因可能是:新生代到老年代的对象,老年代的空间不足,才产生Full GC
  5. 标记-清除和标记整理区别?

    • 见上
  6. 程序发生内存泄漏,你会怎么去查这个问题?

    • 产生内存泄漏的原因,可能是哪个引用没有用了,但是没有被回收
    1. 那你如何查出这个代码
      • 没有实战过,不好意思
    2. 换个思考吧,如果你的CPU突然变高,到100%,没有实战过,有什么思路吗?
      • 100%,肯定是代码块死循环了,我会用最笨的办法去找循环的代码,然后判断
  7. 讲一下hashmap的数据结构吧

    • 1.7和1.8的变化,
  8. ConcurrentHashMap

    • 1.7和1.8变化,分段锁、CAS锁
  9. Java如何实现线程池

    • 叭叭叭
  10. Java实现线程同步有哪些方式?

    • synchronized
    • lock
    1. 这两个有啥区别吗?
      • 叭叭叭叭
    2. 还有其他方式吗?
      • wait和notify
    3. 还有信号量,哈哈哈哈(***的笑)

    !!!互斥量、读写锁、自旋锁、条件变量

  11. 原子类你用过吗?

    • 用过,AtomicInteger,底层是用的CAS实现的
    1. CAS怎么实现的
      • CAS是jdk8 unsafe类实现,jdk9 是VarHandle实现
      • CAS是在openjdk用unsafe.cpp实现的
    2. CAS本质性实现原理是什么?
      • 说了V- A-B
      • 是这样吗?
    3. 是这样的,但是不是我想问的,哈哈哈(***的笑)
  12. 进程和线程调度算法?

    1. 就说线程吧
      • 先来先服务
      • 短作业优先
      • 时间片轮转
      • 优先级调度
      • 多级反馈
  13. 讲讲数据库吧,数据库引擎

    • MyISAM和InnoDB叭叭叭
  14. select count(*) form 表 用哪个引擎快一点

    • MyISAM快一点吧,
  15. 组合索引是a,b,select 语句 where b = 1 and c = 2

    • 最左匹配原则,不走索引,但是如果索引是b,a,就走索引
  16. like 走索引吗

    • 如果用%模糊查询不走
  17. ***一笑,where a = 1 ,b = 2 OR b =3 走索引吧

    • 我也笑,前几天好像看过,我记得不走索引
  18. 如何查看慢查询

    • 用explain,打开慢查询日志,叭叭叭
  19. 如何查看SQL语句的每一个查询计划,就是每一步消化多少毫秒

    • emmmm,没有实操过,尴尬笑
    1. explain分析出来表数据都有什么
  20. 你自己还可以讲一下其他SQL语句优化

    • 设计表的时候,范式问题
    • 表最好是一对一,一对多,最好不要用多对多,多对多,最好建立中间表
    • 硬件优化了,成本高
  21. Redis基本数据类型

    • String
    • Hash
    • List
    • Set
    • Sorted Set
    1. 如何取List的一条命令
      • lpush,加入,lrange取,
    2. push不是应该对应的pop吗
  22. 发现服务器上TIMEWAIT(我听成摊位)状态的TCP过多是什么问题?

    • 出现在三次握手上
    1. 说说三次握手的状态吧

      • 叭叭叭,TCP过程,
    2. 然后呢?

      • 然后开始传输数据,可能会出现SYN 洪水问题

      !!!!!!复盘发现TIME WAIT是四次握手里的!!!!!!

  23. 说说项目吧,不用太详细,讲一个难点吧

    • 讲了数据过滤
  24. 做这个项目有什么提高呢

  25. 你问我吧

    • 面试环节,面试官觉得我有什么不足或者需要努力的地方吗
    1. 我觉得都还可以,就是经验不足,但是这不是你的问题
    2. 刚才那个CAS问题,好像没有get到您的点上
      • 对,但是没关系
    3. 问了计算平台,两个岗位的区别
    4. 技术栈方向,
      • 什么Hadoop,叭叭、部门也分不同的方向,有云平台的方向,东西也比较多

9.12二面:

  1. 根据前序中序生成树
  2. 还有一个算法题忘了
  3. 线程池参数,execute(),里面那个是实现了什么接口
  4. 单例模式
  5. 设计题:在控制层,记录访问次数,每次访问,count++,我说这个不安全,加锁可以保证安全,他说还有其他的吗

bigo 9.12 二面,手撕了2个算法,基本撕出来了,问了一个线程池的问题,没有回答出来,没有get到点上,问了我单例模式,我说单例模式就产生一个对象,安全,给了我一个情景题,在控制层,记录访问次数,每次访问,count++,我说这个不安全,加锁可以保证安全,他说还有其他的吗,我说不知道了,视频面了47分钟,直接说的,今天就到这吧,感谢你面试我公司,没有让我问问题

老虎证券(一面挂):线上面

10.16一面:

  1. 项目

  2. 讲讲***,***细分,Java里的***

    AOP的***,ASM的实现没有说明白

  3. JDK的动态***怎么实现

    ***类handlr

  4. 动态***底层怎么实现

  5. mybatis的缓存

  6. 什么时候才能命中二级缓存,什么时候才能存到二级缓存里

  7. mybatis的接口和xml交互,用到了***了吗?

  8. Spring的事务传播机制

  9. JVM常用的垃圾回收器,

    CMS和G1叭叭叭

  10. CMS的优缺点

  11. CMS回收几个阶段是只有自己的线程吗?还是多个线程并行

    正确应该是

    1. 初始标记 自己线程
    2. 并发标记:并发标记线程+用户线程
    3. 重新标记:重新标记线程
    4. 并发清理:并发清理线程+用户线程
    5. 并发重置:重置线程+用户线程

    缺点:在并发清理过程中用户线程可能会产生大对象发生full gc,导致csm回收失败

  12. 频繁Full GC,如何排查,用到什么工具

  13. 类加载机制

  14. synchronized和lock区别

  15. synchronized、lock是公平锁还是非公平锁

  16. synchronized的锁升级过程

  17. MySQL常用的引擎区别

  18. MySQL的索引结构

  19. 哪些会索引失效

  20. B+树和B树的区别

  21. MySQL常用的事务隔离级别

  22. MySQL事务隔离级别都解决了什么问题

  23. 脏读幻读是什么。

  24. 不可重复读,MySQL是什么解决的

    叭叭了读写锁、意向锁

    正确是mvcc

  25. Redis的数据结构

  26. 讲跳表,如果插入这个怎么做的,比如插入第一个数据,存到第几层

    如果没有数据,放到第一层,

  27. 手撕两数之和、判断括号是否合法

科大讯飞Sp(10.22oc 已拒):线下面

一面10.18:大概1个小时左右

  1. OSI七层模型

  2. http报文头,多少位

  3. tcp udp区别

  4. hashmap、concurrenthashmap

  5. 线程池

  6. 用hashmap去实现Redis,你会怎么实现

  7. 说说数据结构和算法吧,做后端的这块可能薄弱一点吧,就不问你了

  8. 未来职业规划吧

    面试官给我聊了很多未来的各种方向,叭叭叭

  9. 期望薪资吧

  10. 给我聊各种很有用的人生

  11. 后面记不住了,因为是线下面得,忘记录音了

面试感受:这个面试官真的很nice,问的东西也是根据简历来问的,然后也非常和蔼,面完之后还给我教了很多经验,在纸上给我画了画,写了写,真的很不错!!!!

七牛云(一面完之后没信):线上面

10.15一面:40分钟左右

因为七牛云是Go,我是Java,所以问的Java很少

  1. 项目各种问,难点...
  2. Redis的持久化方式
  3. MySQL的索引类型,原理
  4. MySQL一个表不够存数据怎么处理
  5. 抽象类和接口区别
  6. 编译时多态和运行时多态
  7. Java是值传递还是引用传递
  8. 异常处理
  9. 深克隆和浅克隆
  10. 内部类实现单例,为什么用内部静态类
  11. 声明一个切面函数怎么声明
  12. 排序算法里哪些比较熟悉,说一下时间复杂度
  13. 归并和快排说一说吧,哪个比较好一点,稳定一点
  14. ACID什么意思
  15. 非关系型数据库了解过什么,跟MySQL有啥区别
  16. 一致性哈希原理,为什么被称为一致性,

陌陌(一面挂):线下面

9.20一面

  1. 说说项目吧

  2. 你这项目也不行啊,感觉没有什么聊得

  3. 那你说一下项目难点和亮点吧

  4. 这个也不算项目难点和亮点啊

  5. 怎么没有去实习呢

  6. 系统频繁卡顿,怎么排除呢

    尝试一下JVM调优,Full GC问题

  7. 那你说说jvm调优吧

  8. 还有一些忘记了

面试感受:!!!!!真的没有体验感,一直被dis,就差面着面着起身就走

联行科技(offer 已拒):线下面

9.26一面:

  1. 项目,

  2. 图片那个问题有个热部署了解一下

  3. int和Integer的区别,为什么要有Integer,那为什么又要有int

  4. Integer a = 1000; a++;几次拆箱和装箱

  5. JVM内存划分

1569504186654

查出各科目成绩第一的学生,可能会并列

  1. JDBC

  2. MyBatis的接口和XML文件怎么对应上的

  3. 死锁讲讲,然后写一个

  4. 讲讲集合吧

  5. 阿里有个证书,可以了解一下

  6. 找到链表最后一个值,倒数第x个值,

    快慢指针思路

  7. 快慢思路还可以解决什么问题

    判断环,环入口,环长度,找中位数

  8. ipv4对应4个字节,int也对应4个字节,把192.168.1.100转换为int

    每个转换为二进制,然后整个字符串就是一个二进制,符号位+31位,进行转换int

  9. 海量字符串数据查询次数出现次数最多的字符串,海量是指根本存不下去

一次处理根本不能处理,所以分机器处理。

假设有M太机器,求出每个字符串的字符串Hash值模M的值分配到对应的机器上,对每个机器上的字符串分别求出现次数最多的字符串(使用Map记录就可以),在取M台机器中出现次数最多的。这是我之前学习海量数据处理时经常看到的方法

9.27二面:

  1. 手撕最长回文子串

    暴力写的

  2. 字符串数组是否可以成环{[ABC],[CDE],[EFG],[GHA]},成环的最大长度,首尾字符要一样

    用的dfs,写的,

    正确做法是个图论

  3. 逻辑题,3人3鬼过河问题

shein(让我CTO面,已拒):线上面

一面10.25:9分钟

  1. 自我介绍
  2. 项目做的哪一块
  3. 项目做了多久
  4. 你平常写博客吗,给我看一下

二面10.25:9分钟

  1. 索引锁机制

    唯一索引行锁

  2. 查看一条数据,数据不存在,怎么加锁的

    间隙锁

  3. Redis为什么那么快

    1. 在内存
    2. 数据结构简单
    3. 单线程的
    4. 多路复用I/O,非阻塞

三面:30分钟左右

  1. 分段锁你知道吗

    ConcurrentHashMap用的分段锁

  2. ConcurrentHashMap的put源码

  3. 线程池怎么理解

    聊线程池的池化思想

CTO面让我,被我拒了

用友(offer 已拒):线下面

9.18 一面:

  1. 讲讲什么是高并发
  2. jvm的划分
  3. 类的一个创建过程
  4. 如何优化SQL
  5. 项目
  6. 敏捷式开发

9.18 HR面:

9.23 offer

哈啰出行暑期实习(offer已拒):线上面

一面:

  1. object的方法有哪些,
  2. ArrayList,
  3. gc算法,
  4. cms垃圾回收器,
  5. 说说spring,aop,
  6. MySQL的索引、事务、
  7. Redis缓存了解过没,
  8. JUC包下有哪些常用的类,
  9. 说说synchronized
  10. 项目
  11. mysql的数据类型

多益网络提前批 (一面挂):线上面

7.17一面:

  1. 自我介绍
  2. 互联网加班怎么看?
    • 接收加班,不接受无用加班
  3. 项目
  4. 给定一个正整数n, 输出1到n的所有排列
    输入 3
    输出
    123, 132, 213, 231, 312, 321
  5. 用什么语言开发?
  6. 如果让你建议小白学习Java,你推荐看什么书?
    1. Java核心技术卷和视频相结合
  7. Java的缺点,跟c++和c比?
    1. Java比c++慢
  8. 排序算法,哪些是稳定的
    1. 回答错误
  9. 解决哈希冲突的方法?
    1. 只回答了链指法
  10. 有其他公司的offer吗?
    1. 没有,目前就投了多益
  11. 做了我们的IQ测试,感觉如何,感觉难不难,是不是提前时间完成的

平安壹钱包暑期实习(offer已拒):线上面

主要测试部门:

一面:

  1. 做过高并发的东西吗
    • 没有
  2. 说说线程和进程
  3. 为什么用到锁---因为写这个操作用影响
  4. tcp三次挥手,四次握手
  5. Linux命令,查看tcp的链接
    • 没有
  6. git命令,如果新进入一个项目团队,怎么用git
  7. jre,jdk,jvm
  8. 用过什么数据库,开发用过缓存没,我说了解Redis
  9. GC算法,一般用在哪里

第三方支付部门:

一面:

  1. 聊聊项目

  2. ArrayList,线程是否安全,是否有序?

  3. TreeSet和HashSet区别

    • 回答不全
  4. final关键字

  5. 抽象类和接口

  6. jdk1.8新特性

    • 只回答了Lambda
  7. IOC

  8. AOP,用在日志上,Linux上怎么看日志--------

    • Linux没有回答出来
#滴滴##京东##阿里巴巴##58集团##校招##Java工程师##面经#
全部评论
给大家进行了补充~~~补充 2019二本本科秋招上岸滴滴京东58科大讯飞复盘_笔经面经_牛客网 https://www.nowcoder.com/discuss/395408
3 回复 分享
发布于 2020-05-07 10:32
真的太强了,大佬,同是双非本科,刚发了想问怎么进大厂就看见大佬的帖子,真的给了我希望,很好的榜样,向你看齐,坚持!
2 回复 分享
发布于 2020-05-12 22:41
tql
1 回复 分享
发布于 2019-11-03 22:08
问一下楼主,你说秋招就是考试,给定范围死磕就行,这个范围具体指的什么..能详细说一吗
1 回复 分享
发布于 2019-11-04 11:03
楼主真棒,写得很实诚!恭喜恭喜!真好,向你学习!
1 回复 分享
发布于 2019-11-04 12:10
太晚来牛客刷面经,秋招边刷边补,到结束了还没补够知识,也没有很满意的offer,都想留级一年了😂
1 回复 分享
发布于 2019-12-02 16:40
nb👍
点赞 回复 分享
发布于 2019-11-03 22:31
tql
点赞 回复 分享
发布于 2019-11-03 23:32
叼!
点赞 回复 分享
发布于 2019-11-04 00:22
180+,太强了
点赞 回复 分享
发布于 2019-11-04 00:51
点赞 回复 分享
发布于 2019-11-04 04:47
我想问下,都是线上面吗?
点赞 回复 分享
发布于 2019-11-04 08:09
老哥能问下实习跟秋招有啥区别吗😂😂
点赞 回复 分享
发布于 2019-11-04 09:26
海投简历都在哪些平台上投的
点赞 回复 分享
发布于 2019-11-04 10:12
最终选择去滴滴了吗?
点赞 回复 分享
发布于 2019-11-04 10:27
tql
点赞 回复 分享
发布于 2019-11-04 10:43
想问下楼主,锁和多线程那块怎么复习,不知从哪入手
点赞 回复 分享
发布于 2019-11-04 11:01
楼主要去哪里呢
点赞 回复 分享
发布于 2019-11-04 11:22
大佬tql
点赞 回复 分享
发布于 2019-11-04 14:47
顶和尚,去了北京,以后罩我!
点赞 回复 分享
发布于 2019-11-04 14:49

相关推荐

12-21 21:50
门头沟学院 Java
计算机大四找实习还来得及吗,学校大四才防实习,假期还安排实训,焦虑
找工作的图奇:准备明年春招吧,这个点基本找不到实习的
点赞 评论 收藏
分享
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
10-31 14:54
已编辑
门头沟学院 算法工程师
点赞 评论 收藏
分享
futureQAQ:开发:这咋啥都不知道 这怎么测试的 这死去的回忆疯狂攻击我 哈哈哈
点赞 评论 收藏
分享
评论
219
1468
分享
牛客网
牛客企业服务