非科班面经,阿里,腾讯,小米,跟谁学,猿辅导,浦发,农行..
感冒了,后天农行体检,一丝凉意
居然收到浦发体检通知,但愿感冒早点好
改了一下标题,water一下下
突如其来的农行两方。。。
我呢,机械工程方向(貌似今年各大汽车制造行业都对机械工程方向缩招),教研室也没有师兄去互联网,所以在转行互联***别困难,没有人指导,走了很多弯路,当初要是早点知道牛客网,看看大神们的帖子就好了!!!
17年10月份开始学编程,花一个月看了两遍C Primer Plus。刚开始从PHP,CSS, HTML, MYSQL开始学,18年3月完成一个完整的博客系统,然后申请域名、买服务器,部署了人生第一个项目。后来学习Python自动化运维并做了一个小的堡垒机,项目做完后开始搞算法,刷LeetCode,刚开始刷LeetCode特别难,当时用了一个月的时间才刷了100道。7,8月份仔细看数据结构算法导论,到了9月份开始接触机器学习与深度学习,学了两个月之后开始自我膨胀,感觉自己将来会成为一个算法工程师(论菜逼的修养)。11月份到19年2月份都在搞图像处理,期间偶尔刷一下LeetCode,还用Django重新写了之前的博客。
真正学习Java是从4月份开始学的,算下来学Java时间真的少!前面很多东西做了对找Java工作也没有用,有个明确的计划真的很重要啊。正式准备面试知识是从6月份开始准备的,当时就是找别人的Java面经,自己不会的题记下来然后弄懂(后面面试中发现不仅要弄懂而且还要进行扩展),因为白天要去实习所以只能每晚把题记在本子上带去办公室,其实记在本子上感觉也是挺好的方式。刷面经一直从6月刷到7月底,两个月的时间,从Java底层、JVM、多线程到计算机网络,计算机系统,数据库,分布式,算法,Linux操作等等都过了一遍。8月份就开始做测试了,其实8月份笔试少但大部分时间昨晚测试都没有想学习的欲望了,人也开始变得焦虑,所以刷面经还是要趁早啊。
实在是太无聊了,写了这么多。
总结一句话:瞄准一个方向使劲学,不要贪多,先深入然后再扩展,人的精力真的有限(不排除有些人真的聪明),也不要想着弯道超车,不是每个人的车技都那么好!!
以上,一个非科班进互联网软件开发行业的经历。
奉上我的笔记与面经吧!
召唤@#¥@#%#¥……¥%&%#%¥@!!%¥¥%……&()&)#¥%
先召唤我的笔记
太多了,直接上GitHub链接了!
GitHub-笔记,这里面的是分布式,数据库,Java,网络等的笔记,我分类了然后用写了点代码合在一起了,简要的答案在src
文件夹里面
然后是我的凉经
盒马生鲜提前批一面 时间为7月20多号 【凉】
人生第一次工作面试,没在状态...
- 单点登录
- HTTP状态
- 负载均衡分类
- 熔断保护
- java基本数据类型/具体
- String属于什么类型
- goto
- 重写equals为什么要重写hashcode
- TCP三次连接
- 七层网络四层网络
- IP,TCP属于哪个层
- HTTP属于哪一层
- hashmap和hashtable
- 什么是线程安全
- volatile
- 什么是可见性
- synchronized和lock区别
- 栈和堆的区别
- 垃圾回收算法
- CMS
- spring特点
- 设计模式
- 数据库事务隔离
- ACID
- 你有什么问题
中兴提前批-2019/7/31 100min
- 项目介绍
- 项目问题: 分布式, 单点登录实现过程, 网关服务, 负载均衡, 有哪些负载均衡策略, zipkin如何实现, 熔断如何实现, 熔断机制
- 多线程有哪些实现方式, FutureTask有哪些特性
- 进程和线程的区别, 协程
- python协程如何实现
- 造成死锁的原因, 如何解决
- ==和equals比较
- Linux有哪些内存
- top指令介绍, 查看网络端口指令
- 用过哪些前端工具, css干什么的
- 什么是ajax
- 事务有哪些, 具体一点, Redis事务有回滚吗
- 矩阵翻转
- 数组和链表的区别
- 双向链表删除节点手写代码, 并发情况下如何考虑
- JAVA与C++区别
综合面:
- 自我介绍
- 对中兴的理解
- 个人优缺点
- 对加班的看法
- 工作地点
- 如何选择工作的公司
- 薪资如何
- 你有什么问题
offer洽谈-2019/9/1
分两部分
- 对薪酬及岗位介绍
- 单独面谈offer, 问一些基本情况, 面试官填一些内容向上申请月薪, 确认后自己问了一些问题
阿里巴巴-质量测评软件开发-2019/7/31 35min
一面
- 自我介绍
- 项目介绍, 单点登录, 链路跟踪
- Linux查看系统进程, 查看网络接口, 查看内存, load三个指标
- spring中IOC/DI, AOP如何实现
- RabbitMQ
- Redis
- 多路复用, Reactor事件分发器
- 数据库如何查询大数据
- 数据库建立索引有哪些注意的地方
- 数据库索引有哪些
- 左连接和右连接的区别
- 数据序列化
- Java中HashMap与HashTable区别
- Java中HashMap底层数据结构
- Java中volatile有什么用, 能保证原子性吗
- 有哪些排序算法, 堆的时间复杂度
- 跨域
- 微信发红包如何测试
- 100亿数据获取第K个大的值
- 你有什么问题
二面-2019/8/5 40min
- 自我介绍
- 项目
- 能不能来不来实习
- 请求过多如何解决
- 单点登录如何存储token, 每个地方都存储嘛
- 在线编程题
- 你有什么问题
三面-2019/8/13 56min
- 自我介绍
- 项目介绍
- SSH如何保持连接, 连接过程
- 你对分布式看法
- 注册服务, zookeeper能否实现负载均衡
- 如何实现容错
- 链路跟踪怎么做
- 单点登录怎么做的? 为什么想到会这么做? 多个请求会出现什么
- springcloud与springboot的区别
- ArrayList与LinkedList区别? 多线程安全吗? 如何实现多线程安全?
- 类加载机制, 如何打破该机制
- 什么是ORM
- 冒泡排序过程? 比较多少次?
- 项目中神经网络模型用了哪些? 数据可视化怎么做?
- 你有什么问题
四面-2019-8-20 39min
- 没有自我介绍
- 能不能来实习
- 哪些项目你认为做的很好, 推销一下
- 淘宝生成订单向支付宝发送, 支付宝处理订单后返回凭证。这一过程如何设计系统架构? (面试的是测试岗位...)
- 接着上一个问题, 消息传输过程中会有哪些问题
- 有没有发表论文
- 你有什么问题
- 你喜欢那个方向? 你觉得你能行吗?
五面-2019/8/28 55min
实际上是第三面, 前面四面只记录了两面
- 你认为做的最好的项目
- 微服务的优点缺点
- 为什么能保证高性能
- 服务注册时上传了一些什么内容
- 方法调用时获得的什么内容
- 如何实现负载均衡
- 为什么采用轮询的方式进行负载均衡
- 负载均衡提升了什么
- 如何实现网关服务, 网关服务的路由与负载均衡的区别
- 容错保护机制
- 如何判断什么时候进行降级服务
- 如何进行降级服务
- 如果不考虑降级会怎么
- 如果不考虑容错保护而在应用层考虑失败会怎么样
- 限流机制
- 什么是超时
- 项目过程中难点是什么, 是怎么解决
- 你做的项目之间有什么关联
- 项目压缩的话实际做多久
- 机器学习项目
- 你有什么问题
腾讯-后台开发-2019/8/6 55min 【问我几次C++都说不怎么会-凉】
- 自我介绍
- 上课学习了哪些内容
- c++中class, struct, union
- c++中&和*区别
- TCP与UDP的区别, 场景, TCP如何实现可靠传输
- TCP粘包现象, TCP分别传输10字节, 20字节, 30字节能够一下接收到60字节码
- TCP三次握手, 四次挥手, 具体状态, 为什么要2MSL
- 多线程与多进程区别
- 多线程与多进程之间的通信
- 输入网址到获得页面过程, 用了哪些网络协议
- 如何获得域名
- DNS用的什么端口, 协议, 使用UDP吗
- 什么是ARP
- HTTP与HTTPS区别, HTTPS端口一定是443吗
- Redis使用介绍(回答完后没有反应, 继续介绍底层数据结构, 持久化, 缓存策略, 淘汰策略)
- 什么是二范式, 具体例子
- MySQL中MySIM与InnoDB结构, 聚集索引与非聚集索引区别
- 事物四种隔离级别, MySIM与InnoDB分别是什么(emmm, InnoDB不支持事物)
- MySIM与InnoDB区别
- left join 过程
- 快排
浦发-系统开发-2019/8/23 20min面试+50min笔试
成都地区2000人左右面试......
问成绩
针对项目问:
- 微服务实现怎样的功能
- 如何实现负载均衡
- 如何实现网关服务
- 事务一致性问题
- ...
基础知识:
有哪些设计模式
Spring中有哪些设计模式
SpringCloud和SpringBoot的区别
路由器属于七层模型中的什么层
快排
如何快速查找指定文件名, 文件内容
Java的HashMap遍历方式
MySQL端口号
主键外键
行转列
总结:面试较轻松
多益网-游戏开发(投的后台开发) 26min
- 项目介绍
- 平时玩不玩游戏
- 地图导航算法...
- 函数指针
- C指针
- C中定义与声明区别
- python引用计数对象如何实现(???)
- 线程与进程区别
- 在线笔试: 数组往右移动K位
offer 2019/9/2
13k,广州
总结:很缺人,但是工资太低
猿辅导-后端服务
一面 2019/8/23 50min
- 项目实现哪些功能, 问项目细节
- 线程安全
- 多线程synchronized锁住类方法是锁住的什么?
- 线程池有哪些
- 线程与进程区别
- Java内存模式(忘记问的是JVM内存模型还是JMM了, 可能回答错了)
- SpringBoot中如何写starter
- MySQL索引有哪些
- 聚集索引与非聚集索引的区别
在线笔试: - 删除链表倒数第k个节点(双指针)
- 判断树是否为完全二叉树
二面 2019/8/30 56min
项目介绍
如何实现服务发现
如何实现负载均衡
如何实现路由配置
服务之间如何通讯
服务如何调用
序列化是如何实现
final修饰符的作用
Redis数据结构
Redis中的字典与Java中HashMap字典区别
HashMap为什么不是线程安全(安全失败与快速失败)
了解hashCode和equals吗
TCP与UDP的区别
常用的单例模式, 细讲几个
手写单例模式(双重校验锁), 为什么要加volatile, synchornized锁住的是什么
环形链表实现队列, 删除后需要保存原队列, 这样就不用频繁地进行创建
三面 2019/9/3 60min 现场面
问项目
两个线程一个打印奇数一个打印偶数 【凉】
有序链表合并
猿辅导最近一个笔试第二题,3个人一个组合,输出有几个组合
二分法求一个数的平方根
总结:面试体验很好,菜是原罪
微策略-后端开发
一面-2019/8/27 60min 【英文凉】
- 没有自我介绍, 没有项目提问
- 你在之前的工作中有哪些地方你觉得可以提升的
- 你认为计算机中什么技术最重要
- 如果有多个任务需要去做, 你怎么安排任务
- 两道编程题
- 链表翻转
- 位操作:
We have an integer array where all the elements appear twice while only 1 element appears once. Please find that element.
We have an integer array where all the elements appear twice while only 2 elements appears once. Please find the 2 elements.
总结:英文问题,菜是原罪
联影-AI软件开发-成都
简历面-2019/8/29 13min
- 哪个项目做的好
- goto是关键字吗
- char能够表示中文字符吗
- 多线程同步有哪些方式
- sleep和yield的区别
- try-catch-finally执行
- 常用的设计模式
- 垃圾回收算法有哪些
- 线程池用过吗
- MySQL索引
- MySQL中自增主键, 删除数据重启后插入数据的主键值
- MySQL中的heap表
- MySQl中怎么区分float与double
- MySQL中varchar与char区别
一面 2019/9/7 30min
- 项目介绍
- TCP与UDP的区别
- 三次握手过程,为什么要三次握手
- 多态
- 为什么要用多态
- 梯度斜率
- 设计模式的开闭原则
- djikstr最短路径
- 一些其他问题
HR面 2019/9/8 20min
- 自我介绍
- 择业标准
- 了解联影吗
- 自我评价
- 性格上优缺点
- 有哪些offer
极米-Java软件开发-成都 【凉】
一面-2019/9/2 20min
- 自我介绍
- 什么是微服务
- 微服务优缺点
- 注册发现如何实现
- TCP三次握手四次握手
- TCP连接中,如果客户端挂掉之前没有关闭连接,会怎么样
- 乐观锁与悲观锁
- 一个对象有两个方法被synchronized修饰,可以同时调用两个方法吗
- 快排
- 二叉排序
-总结:TCP挂掉的问题按照网上来回答的但应该不是面试官想要的;倒数第三个问题栽了,答案是不可以,因为synchronized锁住对象或类,所以不允许同时调用一个对象的两个synchronized方法
跟谁学
一面 2019/9/3 70min
自我介绍
写代码:树定义
写代码:从左到右打印树的叶子节点
写代码:打印树最左边节点同一层的节点
链表和数组的区别
为什么数组可以直接定位到索引
Java中有哪些数组与链表类
ArrayList如何插入一个元素,底层实现
实现一个线程池需要注意一些什么
用过servlet吗,servlet是单例模式吗
单例模式是什么
写代码:写单例模式;为什么要判断两次,为什么要用volatile
写代码:实现一个线程安全方法;synchronized锁住的是什么
TCP/IP区别,TCP/IP的首部结构, TCP大还是IP大
写代码:left join查询, 举例说明
数据库查询过程
一条更新语句需要开启事务吗,为什么
什么是幻读
什么是间隙锁,什么时候上间隙锁
什么是B+树,为什么不用二叉树
为什么Windows上的程序不能在Linux上使用
计算费CPU还是I/O费CPU
CPU计算中加法快还是乘法快
Session复制如何实现,如何实现持久化
项目调用失败如何排查
总结:问的挺难的
二面 2019/9/9 44min
- 写代码:链表排序,只能使用辅助接点
- 内部类与匿名类在使用上有什么区别
- HTTP与HTTPS的区别
- 自我优点与评价
- 学习了哪些书籍
- 能不能来实习
- 薪资预期是多少
- 其他问题忘了
总结:谈薪资
商汤科技 【凉】
一面 2019/9/6 38min
- 如何实现负载均衡
- 负载均衡有哪些策略
- 如何设计权重轮询
- 如何熔断处理
- 服务注册,Eurake与zookeeper的区别,RPC与REST的区别
- 网关服务
- 网关服务与nginx的区别
- OOP思想分析抽象与接口
- concurrentHashMap与HashMap的区别
- 如何实现线程安全
- synchronized与volatile的区别
- 乐观锁与悲观锁的区别
- 库存扣减问题
二面 2019/9/6 22min
- 什么时候学习Java的,为什么学习运维,学多久的Python
- SSM框架中如何实现用户登录,从底层到实现
- Cookie与Session的区别
- 如何获取用户输入
- 如何区分post与get
- 如何区分返回的是Josn还是HTML
- 如何获取
user/1
中的id - Redis怎么使用的
- 多线程下Redis安全吗
总结:有些问题很基础,也很刁钻,从这个面试看到了自己许多薄弱点
有赞 【凉】
一面 2019/9/7 30min
- 自我介绍
- hashmap底层结构,红黑树什么时候退化,如何扩容
- concurrentHashMap底层结构,锁的个数是固定的吗
- Java中有什么锁
- 可重入锁是怎么实现可重入的
- AQS怎么实现的,怎样锁住线程的
- 什么叫双亲委托,为什么叫双亲委托(???),自定义classLoader重写什么方法
- JVM内存划分
- 垃圾清除算法
- 老年代与新生代比例
- JMM
- young gc与full gc发生在什么时候
- HTTP中post与get区别, post能够在URL中添加参数嘛
- 设计模式,模板模式用于什么情况
- OOP设计原则,开闭原则举例说明
- springboot中的run方法流程
- springcloud用到了哪些模块,springcloud config是怎么实现刷新配置的
小米
一面 2019/9/9 27min
- 编程题:链表翻转
- HashMap底层结构,插入操作,扩容操作,为什么要扩充2倍长度
- hash表与二叉树的区别
- static从加载到使用,
static int a = 10;
会直接初始化为10吗 - ArrayList与LinkedList的区别
- ArrayList插入无序数后如何排序
- 讲一讲volatile,为什么单例模式二重校验锁下实例要声明为volatile
- 讲一讲synchronized,锁升级,讲一讲轻量锁与偏向锁,两个线程在轻量锁下有什么操作
- 讲一讲gc, CMS有哪些步骤
- 项目是自己做的还是跟别人一起合作的
- 如果你和同事对开发意见不一,你会怎么处理
- 有同事想要把代码写的很完善,你想把代码写的简单,如何处理
- 能来实习吗
二面 2019/9/10 35min
- 自我介绍
- 编程:使用堆实现队列【思路是对的,两个堆弄错变量名了,面试结束才发现。。。。】
- 微服务如何实现负载均衡,如何判断服务是否为空闲
- Redis有哪些数据结构
- 订阅发布有用过吗
- 哈希一致性当两个节点邻近如何处理
- CAS
- volatile
- JVM, JMM
- 字符串常量池,多个字段拼接用
+
好还是StringBuilder.append()
好
农行
笔试 2019/8/31
- 图形数字推理,英语,专业知识(数据库,网络,操作系统,测试,算法), 心理测评
现场面 2019/9/11
整体流程:签到->分组->机试->自我介绍->公共题->专业知识
- 机试题:给定字符串,字符串包含数组,求字符串中数字能组成的最大值
- 自我介绍
- 公共问题回答:微服务设计模式;SpringBoot优点;系统架构风格有哪些,优缺点
专业问题会根据技术栈来问,以下为Java专业问题
- Java容器有哪些
- 有哪些Map,HashTable与HashMap区别(问了别人concurrentHashMap与HashTable底层)
- Seesion与Cookie的区别
- Java下用过Redis吗
- RESTFULL风格如何保证安全
- 分布式下Session如何解决
现场签两方
- 家在成都,听说是855,早点结束秋招吧
#中国农业银行##面经##Java工程师##阿里巴巴##浦发银行##小米##Java#要是农行差额体检失败了,就等春招了!!!