bat 捕获ctrl+c_干货 | 从零基础BAT三家offer(下)

本文分享了作者小、麦的BAT(百度、阿里、腾讯)及头条公司面试经历,涵盖了算法、Java基础知识、Spring框架、并发编程、数据库、分布式系统设计等方面的问题,最终成功获得三家大厂的实习offer。面试题目包括字符串反转、单例模式、线程池、HashMap、分布式锁设计等。
摘要由CSDN通过智能技术生成

4fedb3475607829f6e864efa0cdea7b6.png

点击上图,立即进群!

经授权转载自 小、麦

原文:https://www.nowcoder.com/discuss/188241

小编按

小、麦同学的Java后台开发的学习经验分为两篇,昨天分享了上篇,今天是下篇。

今天则是小、麦同学参加BAT和头条四家公司的面试经验,他最终也斩获了BAT三家大厂offer~

感兴趣的话继续往下看吧!

百度

百度是去年找日常实习的面经,面了两个部门,整理了一下

部门1:信息中心

一面

  • 算法:字符串反转、倒着打印链表(为什么用递归比用栈差?)、单例模式

  • 线程start 、 run方法区别

  • 可以不通过构造函数创建对象吗?object.clone() 反序列化

  • volatile关键字

  • Spring AOP原理(cglib 和 JDK的动态代理实现有什么区别?)

  • 重写equals方法,为什么一定要重写hashcode方法?

  • 字符串 == 比较。输出true还是false;

  • 看了七八个程序,然后问输出什么?

  • HashMap 能不能存储 null 能,放在第一个格子里?concurrentHashMap 能不能存储 null?

  • 分布式系统设计:现在有一个方法,可以给10台服务器调用,如何统计一天内10台电脑调用的次数和?

  • 分布式锁的设计:每天早上8:00输出前一天的业务报表发到老板邮箱。如果现在有10台服务器,如果设计这个定时任务?
    (法1:分布式锁。法2:通过外部发来一个http请求,传给ngnix,通过ngnix自动进行分配到某一台服务器上。)

二面

  • 你对哪方面知识比较自信?

  • HashMap初始容量多少?(16)为啥要设计初始为16?如果传入容量10会怎么样?(还是会构建16容量的);

  • 知道什么异常?(说几个)

  • http的状态码说几个。403是什么状态? 

  • String有什么方法? 

  • list,set集合在iterator输出的时候能删去值吗? 

  • SimpleDateFormat是线程安全的吗? 

  • 手写左连接。

  • 聚合函数有哪些?

三面

  • 算法题:数组A和数组B,求 A并B - A交B;(说了几种,好像不满意不是最优解)

  • 算法题:矩阵搜索(说完之后问优化,没想到,提示二分搜索);

  • SSM的运作流程,说说你做的项目难点。

  • GET POST请求,url里面的参数

  • 说说索引,如果对每一列都建索引有什么不好?

  • 白盒测试、黑盒测试

  • Linux会吗?

部门2:凤巢

一面

  • 算法题:手写堆排序

  • Spring IOC原理 AOP原理,如何利用AOP实现日志,写过吗?

  • Spring bean创建的方法 注解 @Service xml配置 @bean

  • Java反射原理?

  • SpringBoot 里面 @bean解释一下

  • Java内存模型和运行时数据区

  • Spring 中事务@Tranctional,出现异常回滚是怎么实现的

  • 数据库MVCC原理

  • 乐观锁和悲观锁概念

  • 悲观锁的实际例子。select * from table for update ...

  • 乐观锁实际上有没有加锁?

  • 用两个线程去操作数据库,乐观锁具体是什么实现的?演示一遍,画一画

  • 数据库常用存储引擎,区别,锁范围。

  • 写过单纯的非web项目的 Spring工程, 用main实现的吗?例子。

  • SSM 三层技术架构的总体流程

  • @component @service@controller三个区别

  • mybatis中 # 和 $ 的区别?哪个会出现SQL注入?

  • JVM 新生代,老年代。survival是不是在任意时刻都只有一块有对象?

  • JVM 垃圾收集器了解哪些?

二面

  • 算法题:实现一个四则运算计算器(两个栈 + 优先级) , 冒泡排序

  • 输入一个网站的全过程。从计算机网络到服务器内部技术实现流程。

  • 日常怎么学习。

阿里

Java开发岗位。从3.7开始简历面,到4.30收到意向书。流程两个月,阿里终于上岸了。

在3.12之前面了阿里云、蚂蚁、菜鸟、数据产品的各种简历面(全部有录音)。

内推最终投的菜鸟。不得不说,投菜鸟真的需要非常好的心态。嗯。每一面至少间隔两礼拜以上。

各部门简历面

  • volatile的底层如何实现,怎么就能保住可见性了?

  • 三个线程如何实现交替打印ABC

  • 线程池有哪些创建方式和安全性问题

  • 有哪些线程池的类型

  • 线程池中LinkedBlockingQueue满了的话,线程会怎么样

  • 线程池的底层原理和实现方法

  • 线程之间的交互方式有哪些?有没有线程交互的封装类 (join)

  • 算法:堆排序、栈实现队列、反转链表

  • Java锁机制,都说一下~

  • 除了@ResponseBody,controller层如何标准返回给前端所要的数据类型?你会怎么实现?

  • 异常捕获处理

  • Spring MVC的原理和流程

  • HashMap和ConcurrentHashMap哪个效率更高?为什么?

  • Redis的缓存淘汰策略有哪些?

  • Java内存模型说一下

  • mybatis如何进行类型转换

  • mybatis的xml有什么标签

  • MySQL锁机制

  • 如何修改linux的文件权限

  • jvm的回收算法

  • 你会怎么设计数据库表结构

  • 数据库有哪些索引?

  • 如何防止sql注入

  • 抽象类和接口有什么不同

  • myql间歇锁的实现原理

  • future的底层实现异步原理

  • SpringBoot Starter原理

  • rpc原理

  • 多个服务端上下线怎么感知

  • 缓存和数据一致性,怎么处理。流式计算

  • 多线程讲一下,FutureTask

  • Java和mysql的锁介绍,乐观锁和悲观锁

  • 分布式一致性讲一讲

  • 分布式锁的实现方式,zk实现和redis实现哪个比较好

  • 多点登陆怎么实现

  • 把乐观锁加在数据库上面,怎么实现

  • 项目介绍

  • 降级处理hystrix了解过么

  • 两次点击,怎么防止重复下订单

  • ioc原理详细讲讲,源码看过么

  • 静态代理和动态代理的区别

  • JUC说说你知道的东西

  • B+树的叶子节点

菜鸟面经

一面

  • Java内存模型

  • full gc怎么触发

  • gc算法

  • 高吞吐量的话用哪种gc算法ConcurrentHashMap和

  • HashMap

  • JDK8的stream的操作

  • volatile原理

  • 有参与过开源的项目

  • 项目介绍

  • 线程池原理,拒绝策略,核心线程数

  • 1亿个手机号码,判断重复(我答的biset吧,Java有实现bitset)

  • 是否有写过小工具

  • 单元测试介绍一下,多模块依赖怎么单元测试。Mockito

二面

  • 项目介绍

  • dubbo、netty介绍原理

  • 限流算法

  • zk挂了怎么办

  • 秒杀场景设计,应付突然的爆发流量

  • redis的热点key问题

  • redis的更新策略(先操作数据库还是先操作缓存)

  • 分布式数据一致性

  • 一致性哈希

  • 消息队列原理介绍(不太会)

  • full gc问题,怎么排查

  • jvm的回收策略

  • ClassLoader原理和应用

  • 注解的原理

  • 数据库原理,数据库中间件,索引优化

  • aop原理和应用

  • 大数据相关,MapReduce

  • 机器学习有了解么?

  • Java的新技术,以及技术最新进展

  • Docker的原理

三面

  • 全程项目

  • 讨论了一下数据库表设计

四面

  • 项目介绍

  • 分布式事务

  • Java三大特性

  • 数据库表设计

  • RPC原理

  • netty原理

  • 降级策略和降级框架

HR面

基础问题,不多赘述

腾讯

面的CSIG下面的腾讯云,技术栈是Java,不过几乎不咋问Java。

一面-电话(50min)

  • 算法题:六七道,都是剑指offer难度

  • 半小时项目介绍 & 问答

  • 分布式相关:rpc原理、微服务架构

  • 海量数据问题:套路题

  • 计网:传输层、网络层(必须要非常熟,ping的原理,tcp的三次握手、四次挥手、拥塞控制。UDP的不可靠、一对一、一对多)

  • 操作系统:虚拟内存、段式、页式、进程调度算法

  • 数据一致性:分布式数据一致性、缓存数据一致性

  • Java相关:线程池、HashMap、CopyOnWriteArrayList

  • Redis相关:复制原理、持久化原理

  • 杂谈:最近看什么书,实习地点。

二面-牛客视频(85min)

  • 算法题:最长不重复字串

  • 半小时钟项目介绍 & 问答

  • 操作系统:Linux的namespace(不会)、进程线程、线程通信方式、进程通信方式

  • 计算机网络:传输层和网络层,因为我项目做了链路层,也讲了一下。

  • Java相关:线程池

  • 数据库相关:一条连表查询语句。数据库索引原理

  • 海量数据问题:套路题

  • 杂谈:介绍了部门业务

三面-电话(20min)

  • 应该是大老板面试了,问的都很哲学:技术背景、学习方法、项目介绍

  • 问了一些简单技术问题。主要考察逻辑表达和整体的素质。

  • 杂谈:介绍了部门业务

HR面-电话(15min)

  • 家庭情况

  • 面腾讯原因,还有面其他公司么

  • 兴趣爱好

  • 业务介绍

  • 口头offer

Q

大佬,想问问你,腾讯的手撕代码是只能用C++ 吗,可以跳出用本地IDE吗?

A

小、麦:看面试官,我的面试官让我不用IDE,我写完跑不通,说了下思路,就过了

头条

去年找日常实习的面经,整理了一下。三面算法没写出来,挂了。

一面

  • 算法题:二分搜索相关

  • 概念题:解释 分布式、微服务、负载均衡、高可用

  • http是有状态还是无状态?TCP是有状态还是无状态?

  • 客户端禁用cookie怎么办?你说的实现方式安全吗?

  • SSL,http和https,https是有状态还是无状态?

  • String为什么设计成final不可变?是怎么实现不可变的?

  • 自己能实现一个不可变的类吗?

  • equals 和 hashcode 为什么要一起重写?如果不重写hashcode会出现什么问题?

  • hashmap插入的时候,哈希冲突解决?查找的时候,哈希冲突怎么解决?

  • hashset是怎么实现的?hashmap是怎么实现hashset的?

  • 多线程:并发和并行,原子类,CAS操作

  • mysql的索引:B+树底层实现?B树的底层实现?为什么要用B+树而不用B树?

  • 最左前缀匹配具体是怎么实现查找的?最左前缀匹配用了B+树的哪些特性?

  • (a,b,c)联合索引,为什么不能单用(b),而一定要用(a,b)?B+树是怎么实现的?

  • 什么是幻读,不可重复读?这些概念是在事务内还是事务外?事务内

  • mysql怎么实现可重复读?设置了可重复读隔离级别底层是怎么实现的?(MVCC)

  • 了解MVCC吗?怎么实现的?什么是快照读?快照读能读取到最新的吗?快照读和当前读的区别?

  • synchronized和reentrentlock哪个效率高?

二面

  • 算法:实现一个缓存队列 ,二叉树的镜像

  • 进程和线程的区别?内存管理说一下你的了解。进程调度算法。

  • 为啥B+树最后叶子节点需要用链表相连接?便于区间查找

  • TCP状态转换图,画一下。

  • 操作系统I/O模型了解吗?epoll模型了解吗?

  • CopyOnWriteArrayList的相关特性?

  • ArrayList遍历的时候能删除元素吗?删除的时候会报什么异常?

三面

  • 算法题:(1)树的节点最大距离(2)区间覆盖 例 [1 3] [2 5] [3 6]能否覆盖[2 6]

  • Linux相关命令。

  • 手写SQL,join

小、麦同学的分享就到这了,希望对各位看官有所帮助~求赞!!!

推荐阅读:

  • 招募 | 2020届秋招社群志愿者

  • 重磅 | 腾讯宣布改革职级体系

  • 重磅 | 阿里组织架构大调整

  • 必备 | 华为招聘公众号大全

  • 雷区 | 这几类企业慎重选择

 一个没有任何套路的求职公众号 

4ca828d09c97e186f63f5810337bf217.gif

5adbc7f6004df5d2016cc2c3928c526a.png

长按识别关注校招薪水


校招薪水,是面向全球高校学子的校招薪资交流以及求职互助平台。平台致力于校招薪资的透明化,给招聘信息做减法,在提供高可信的薪资查询服务外,鼓励大家远离焦虑,避免套路,减少踩坑,让广大校招求职者更加专注于求职这件事情。目前平台已经累计提供了数千万次免费薪资查询服务,累计合作无套路信息推广企业达数十家,在国内外名校学子中口碑极佳,公众号跟小程序用户数已累计突破30W。校招薪水,用薪相随!校招实习以及雇主品牌宣传合作请添加微信:zjuerdream。

辛苦整理,喜欢的盆友告诉我在看哦❤️

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值