作者:lililuni
链接:https://www.nowcoder.com/discuss/252845
来源:牛客网
基本情况:水利类专业,Java开发,从2018年10月份以来开始慢慢摸索Java的学习,从Java基础学到JavaEE,到数据库,计算机网络,操作系统这些知识,然后又学习并发,Java虚拟机,学的东西越来越多,忘的也多。
身旁没一个人学这些,学起来也是慢慢的摸索,去论坛搜,技术群问,去啃书,本以为可以按照这种进度,19年上半年再刷刷算法,多刷刷面经就可以好好备战秋招了。可是实验室突然来了项目,还是去外地出差做系统,这一出差就是从3月份到8月份,基本上所有的系统后台都是大师兄和我承担的,任务重,导致算法只断断续续刷了剑指offer 2遍。
7月份面了两家,字节跳动和顺丰,都是一面挂。那时候还不需要笔试,虽然知道仅仅刷剑指并不够,可是还是没有认真去刷leetcode。来到8月,面了阿里,一面至今没消息了,oppo本来提前批是个好机会,可是在外出差参加不了面试,也错过了。 还面了中兴,9.11号现场综合面。面了趋势科技,结果hr面挂了。面了虎牙直播,结果直接拉入人才库。面了美团,至今没二面消息。面了远景智能,拿到offer。面了科大讯飞,说是下周二面,还面了龙湖,也说中秋节过后终面。刚刚还电话面了招银网络科技,还没结果。
更多的是对笔试的无奈,猿辅导、字节、拼多多、商汤科技、大疆、华为(本以为至少能进华为,真是讽刺,笔试都过不了)全挂,携程、旷世、oppo、爱奇艺、360笔试到现在还没消息。
现在的状态就是不想学习,学了又忘。不想刷算法,刷了笔试还是不会。
估计,到最后还是得回到我的水利行业,希望水利对我友好吧。附上面经
0 字节跳动
7.17 一面视频挂
原因:sql语句没写出来
0 顺丰
原因:一面手撕算法没写出来
1. 趋势科技
一面 8.12
技术面 一个面试官 30分钟左右
- mybatis中 # 和 ¥ 的区别,sql注入问题
- blob类型的使用
- delete truncate 区别
- sql 语句:将两个订单中的信息统计到一个表中
- JDBC 的大致流程
- redis 内存回收策略
- redis过期键的处理方式
- redis 主从复制
- redis 持久化
- redis 的底层数据结构
- redis 的单线程为何快?
- Thread.start() ,run() 区别,sleep(),wait()区别
- Collection 和 Map 架构区别
- HashMap 的 put()和 get()方法底层
- 算法题,不用实操代码,只说大致思路
- 对笔试题的回顾
二面 8.12
技术面,两个面试官 30分钟左右
- 项目经历与细节
- 亮点
- 难点 - 自定义线程池中各参数怎么确认
- 读写锁的实现方式
- 创建线程的两种方式对比
- java中几种同步方式
- 高并发的常用技术-缓存、消息队列简单讲讲
- Redis 的6中数据结构-着重讲了跳跃表
- GitHub上最满意的一个项目给介绍下?
- 最满意的一篇博客给介绍下?
- 随便聊聊
其实整体就是根据项目涉及到的知识点来问,自己还得深入了解 。
三面 8.13
hr面 30分钟左右
- 个人基本情况与工作意向城市
- 在项目开发中,遇到和leader不一致时,怎么处理?
- 在项目开发中最大的提升是哪方面
- 怎么保持在更新迭代快的开发领域的竞争力(我回答的是学习能力)
- 可以举一两个例子体现下自己学习能力么
- 对工作的几个最关注的点
- 有什么问题想问我的么
hr面挂
2. 虎牙直播
一面挂
一面 8.13
电面 45分钟左右
- 首先谈基本情况和项目谈了25分钟
- 同步服务同步的方式,为什么不可以每分钟的同步
- 如何解决跨节点的join关联查询
- 表结构设计的事项
- 堆排序概念
- Java的四大基本特性-封装、继承、多态、抽象
- Java内存模型-主内存和工作内存
- Java如何保证线程安全(这里自己只答了互斥同步,忘了说非阻塞同步了)
- Jvm中堆和栈的概念
- 自学能力体现在哪(下次回答对JVM的学习吧,别往算法上靠了)
结果:被拉入公司人才库
3. 远景智能
8.23现场面,共四面,只记得大概问题了
- 分布式系统需要考虑哪些方面要素
高性能、高可用、可伸缩、可扩展、安全 - 了解或者知道的分布式系统
4. 中兴
8.28 一面 电话面
- Token过期是怎么处理的
token过期,就要重新获取。那么重新获取有两种方式,一是重复第一次获取token的过程(比如登录,扫描授权等),这样做的缺点是用户体验不好,每一小时强制登录一次几乎是无法忍受的。那么还剩第二种方法,那就是主动去刷新token. 主动刷新token的凭证是refresh token,也是加密字符串,并且和token是相关联的。相比获取各种资源的token,refresh token的作用仅仅是获取新的token,因此其作用和安全性要求都大为降低,所以其过期时间也可以设置得长一些。 - 怎么保证token的可靠传输,在传输过程中被截走了怎么办
https安全传输协议,以及token是包含用户信息、客户端信息等,仿造很难 - Spring Security 的核心原理
就是一系列的过滤器 - OAuth2怎么结合Spring Security实现权限认证的
密码式授权模式 - Spring 了解哪些知识
IOC AOP - Redis怎么解决双写一致性问题
两种策略,策略1:先删除缓存,再更新数据库 策略2:先更新数据库,再删除缓存 - 每次传入参数不同,怎么保证走缓存
前端控制传入参数格式,后端对前端传过来的参数进行验证 - 影响Redis最大并发性能的主要因素
内存,持久化策略、主从复制、带宽 - MySQL的两种引擎的主要区别
锁,事务,索引 - 索引类别以及底层实现机制,B-Tree 索引在两种引擎中的区别
普通,主键、唯一、聚簇、覆盖索引,B+索引和Hash索引 , - InnoDB行级锁
共享锁、排他锁、间隙锁 - jvm调优有经验么,怎么指定垃圾回收算法
- 垃圾回收机制
9.11 综合面试
5. 美团
一面 9.4 视频面试
自我介绍时说了自己写了博客 ,结果面试官就开始问博客的内容
- 进程和线程的区别
从操作系统角度 和 JVM 角度答了 - 协程(没听过)
- 进程间的通信方式
信号、管道、消息队列、共享内存 - 进程间使用信号通讯方式时,如果一个进程还在处理之前信号时,又来个信号会怎样?
没答好,我说直接丢弃信号 - 管道 里面的匿名管道 和 命名管道 (没听过)
转而说了下管道的大致实现流程 - 浏览器输入URL 整体流程-包括网络层、链路层、物理层
- DNS解析原理
- 路由选择协议-RIP OSPF 实现原理,算法思路
- -可达性分析算法中,可作为根节点的类型
- 是否可达性分析完后,就会立即回收
(答的不好,本来是往finalize()方法答的,自己却扯到CMS垃圾收集器上去了) - 可达性分析流程以及四种引用概念,四种引用都会被根节点引用到么
(也答的不好,只说前三种会被引用链寻找了) - 类加载过程
- 双亲委派模型
- 手撕 单例模式,寻找数组K个最大值、二分查找
至今没有后序消息
6. 科大讯飞
一面 9.5号上午 现场面 武汉开发
- Java中的循环有几种
- do while 和 while的区别
- for循环中能否改变i的值
- int 和 Integer 的区别联系
- sql语句执行慢怎么分析
- 写个sql语句
- 向表中添加列的sql语句
- 项目主要业务介绍
- 微服务的相关组件介绍
- 为什么用微服务
面完说一周左右会通知二面
7. 龙湖集团
开发岗 一面 9.8上午
一面(岗位:上海,成都)
- 常用的数据结构
2 . 集合体系整体架构介绍下 - ArrayList和 LinkedList的使用场景区别
- HashMap中的红黑树,为什么要用
- 红黑树和二叉树区别
- Feign中过滤器的原理(基于动态代理,手撕动态代理)
- Oauth2协议授权流程简单介绍
- Oauth2中后台token是存在服务JVM内存中,如果服务崩了的话,token失效了怎么处理(可以用Redis去实现持久化)
- 手撕List转Map(简单,但是面试官说会Stream么,回答说不会)
- 项目开发中最大的难点是什么?
- 反问阶段
二面 9.9 30分钟
(两个面试官,技术面和hr面同时进行)
- Distinct 和 Group. by
2 replace 和 update区别 - 主键,唯一索引,索引区别
- 外键
- 手写单例
- 手撕字符串解析(四则运算和数字)
- Spring Cloud 和 Dubbo区别
- 注册中心Rureka流程解释
- String StringBuilder 的区别
- Java中的容器讲讲
- sleep() 和wait()区别
中秋节过后会通知面试结果
8. 招银网络科技
开发岗 一面 9.10号上午 电话面 30min
- 静态内部类 和 成员类的区别
定义方式,外部对象访问方式 - abstract 方法可以有static关键字么,为什么不能有
static相当于是类对象的方法,而abstract 方法只是一种声明 - synchronized 能修饰 abstract方法么
回答的能,其实是不能,因为synchronized既然是同步锁,就肯定要有锁的方式 - java中对象的生命周期
jvm对象创建-对象使用-垃圾对象回收 - 类加载过程
- 事务的四个特性
- 常用的数据库连接池以及连接池基本原理
- 动态规划的基本原理,举个使用动态规划的例子
- 贪心算法的基本原理
- 动态规划和贪心算法的区别
- 代理模式和装饰者模式区别,分别属于什么模式
答的不好,具体区别没答出来 - 结构型模式的特点
9. 阿里
新零售 一面 9.12 电话面50min
- 四种进程间通信方式
- Socket了解么,如果有报文丢失,怎么处理(没回答好)
- TCP vs UDP ,什么场景用UDP
- TCP三次连接过程
- Java中常用的锁以及底层原理(基本上每种锁都将一遍)
- 十大排序算法(每种排序都讲一遍)
- 数据库底层实现原理(B+树)
- 项目整体开发流程,遇到问题,亮点,哪些地方可以改进
- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?(分而治之/Hash映射)
- HashMap中的 hash算法,其余hash算法呢?
- 重写equals() 和 hash() 方法
- 内存溢出与内存泄露(没答好,应该先从哪些情况会引起溢出,然后怎么解决去答)
10. 贝壳
首先是9.10在贝壳华科宣讲会上进行现场笔试,3道算法题a了2道
9.12 一面、二面技术面、三面hr面(hr面做了一道简单的算法题)
一面 45min左右
- Hystrix 熔断原理,为什么用熔断
- Feign 通信原理
- 负载均衡策略,以及Ribbon原理
- BeanFactory创建Bean过程
- BeanFactory 和FactoryBean的区别
- zuul四种过滤器原理
- 拦截器和过滤器底层原理
- ThreadLocal底层原理,内存泄漏问题
- 四种引用
- 弱引用的使用场景
- 虚引用的使用场景
- 删除list集合中满足条件的节点的方式
- 手撕一道DP
- Sql查询慢怎么定位
- MySQL索引原理,有索引的情况下怎么插入数据
一面就被吓到了,这问的原理问题也太多了,结果没想到进入二面了。
二面 40min
- 整个项目的一个开发经历(重点是讲自己的一些思考感悟,而不是按照简历来)
- 引入Redis的整个思考过程
- Redis中用的哪种数据结构,底层原理
- Redis中Hash的使用场景
- 线程池并行计算的方式( Future 以及 普通的execute,这里答的太模糊了,得熟悉下)
- 数据库的分页机制,以及一个场景分析( limit 0,5 为什么比 limit 5000,5005快)
- 聊聊职业规划,指点下简历应该怎么写啦,应该把重心放在哪之类的
三面是hr面,聊的挺开心的,中间还穿插做了一道简单的算法题,只用说大致思路
最后说两周左右给结果,希望能过!
与作者交流:https://www.nowcoder.com/discuss/252845
更多笔经面经:https://www.nowcoder.com/discuss?