记录大佬面经的第五周

                                                    第一天

恒生电子Java开发面经

群面 2v4

  • 轮流自我介绍 + 兴趣爱好
  • 轮流根据简历问项目
    • Nginx怎么用的
    • Redis有事务吗?为什么
    • MySQL中有哪些日志
  • 开放性问题(想到就可以答)
    • 对Bug怎么理解
    • 对开发和测试怎么理解
    • 自己的长处和短处
  • 问问题环节
  • 自我介绍
  • 主要用什么语言
  • 问项目&负责部分
  • Nginx用来干嘛了
  • 为什么用SpringBoot,和Spring的区别&好处
  • 看过Spring的源码吗
  • 项目怎么分工的,如果遇到问题了怎么处理
  • 在项目中遇到了和组员意见不一致怎么办
  • 如果工作中遇到不一致怎么办?只是听leader的吗?如果对方是错的呢?
  • 平时是怎么学习的
  • 学过哪些课程?比如操作系统、Java、网络都学过吗
  • 用过Oracle吗?
  • MySQL都有什么索引呢
  • MySQL建索引原则
  • MySQL引擎和技术选型
  • 为啥要用Redis?Redis从来存储什么了
  • 项目QPS大概能有多少?用了Redis之后响应速度快了多少?

                                                  第二天

腾讯一二三凉面

一面
自我介绍
根据结点求二叉树高度?
快排最差的时间复杂度O(n2),快排的空间复杂度O(logn)?
快排稳定吗(不稳定)?
堆排序?
算法题:一圈猴子选大王(剑指offer的发糖果题)?
4g大文件,64m 内存,找到出现频率最大的5个?
第一个项目
String不可变
HashMap插入过程
currentHashMap 和 hashMap 有什么区别
1.7之前都是分段锁,1.8后采用 synchronized 和 cas 保证线程安全
反射能够做一些什么事情
volatile 和 synchronized 简单介绍一下
Java中常见的线程同步方式
 加锁、cas、
BIO、NIO的区别
spring框架的 IOC的好处
常用的MySQL 的语句优化 Explain 先来分析语句是否用到索引
设计表的时候从哪些角度去考虑
事务隔离级别,数据库这俩引擎的 索引 b+树的实现
MySQL的主从同步是如何实现的(全量同步、增量同步)

解:同步
redis 的基本数据类型,缓存击穿和缓存雪崩,哨兵和主从同步

解:
有redis mysql 怎么设计查询服务架构

解:
TCP如何保证连接和传输的可靠性,在网络情况比较差的情况下如何保证的可靠性
简单说几个http状态码 301 和 302 的区别,301代表永久性转移 302代表暂时性转移
平常开发用的linux多还是windows多
有个 32 位系统,利用的最大内存是多少即最大的寻址范围
在linux 下进程都有哪些状态

解:运行态,可中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号),不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生),僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) ,停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 。
linux 怎么杀掉一个进程 kill -9 和 kill 有什么区别 -9 是强制性的意思
为什么 kill 可能会出现杀不掉的情况,kill -9 和 kill 的区别在于发的信号不一样,如果进程被阻塞了就不能响应sigterm信号
我想查看日志的后十行  tail  -n 10
我想看日志的实时刷新的怎么看 tail,加参数吗

解:tail -f catalina.out
linux TIME_WAIT tcp 链接数量,netstat -t 这个 -t 就是 tcp

问的问题,哪个部门的主要业务是什么的
主要技术栈,您对我有什么建议吗

 

二面
跑马问题
身份是一个大堂服务员,大堂下达任务,哪一张房卡带着要入住的客人进入她的房间,
房卡刷开房门,有人在住,人看到了我,没看到外面的人,即将住的人知道有人住
我会怎么做
跳表
b+树
我的优缺点,对公司的价值啥的

 

三面
static关键字
tcp和udp的区别
三次握手与四次挥手
然后就是算法问题
二叉树找最近公共祖先
数组中找到第n大的元素
爬楼梯问题

mia

面试感受:第一面感觉特别有意思,问了挺多技术的。二面和三面的面试官老哥都不是Java,然后就是聊其他的,尬聊。面试官挺好的,三面莫名其妙(可以就是没有给面试官留下自己出彩的一面)灰了,继续加油吧。

 

                                                    第二天

字节研发一二三面

一面:

  1. 问了下简历和岗位相关的项目问题
  2. tcp 四次挥手协议,为什么是四次
  3. b tree和b+ tree的区别
  4. 回表,联合索引

                   https://www.cnblogs.com/theRhyme/p/11438357.html

  1. https ssl讲一下,讲一下证书签发过程

解:首先,这需要服务器拥有SSL证书,SSL证书是需要向第三方CA机构申请的,现在大部分的SSL证书都是要付费申请的。

我们拿 baidu.com为例:百度首先利用公钥密码体制生成一对公私钥,私钥自己保存着,然后将公钥和baidu.com的一些身份信息发送给第三方可信任CA机构,CA机构收到百度的申请之后,将执行一些必要的步骤,以确信请求确实由百度发送而来,并且这些信息是正确的。然后,认证中心对百度发来的公钥和百度的身份信息进行数字签名,生成数字证书,然后发送给百度。数字证书里面包含了百度的公钥、百度的身份信息 和 第三方CA机构的数字签名。


 

 

那么百度拥有了SSL数字证书之后,我们和百度之间是如何工作的呢?

    客户端访问 https://www.baidu.com ,要求与百度Web服务器建立SSL连接
    百度Web服务器接收到客户端请求后,会将网站的证书信息发送给客户端
    客户端收到百度的证书信息后,通过证书上第三方可信任机构CA的签名,验证证书的真假。
    验证真实性之后,客户端的浏览器与百度Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
    客户端的浏览器根据双方同意的安全等级,建立会话密钥对,然后利用网站证书中的公钥将会话密钥对的公钥进行加密,并发送给百度Web服务器
    百度Web服务器利用自己的私钥解密出会话密钥对的公钥。所以现在我们有了百度的公钥,百度也有了我们浏览器会话密钥对的公钥
    浏览器和百度Web服务器分别利用对方的公钥对数据进行加密传输。


 

  1. 算法题: binary tree 每层找最大值:level order traversal(BFS)
  2. array,先递增后递减,可能有重复,找到一个数:三次binary search,第一次找到分界点,然后分别找target number
  3. 进程通信方法,说下管道

解:见操作系统那本书https://www.cnblogs.com/iamwho/p/10450490.html

二面:

  1. get/post 详解 说到get一般把数据放在url上,问:是什么协议规定的,可以放在body里么?

解:

  1. 说下http request 和 response

解:

  1. 然后记得不太清楚了,就感觉问的很细,被锤的感觉
  2. 算法题:diameter of binary tree, DFS, bottom-up方法,感觉会有很多corner case,但其实点就在于:edges=nodes-1
  3. 一亿个shot int,sort them 点在于:short int 是2^16, 然后有范围了,就可以用count sort来做,index当作值
  4. 什么是前后端分离,不分离的code长啥样
  5. 什么是事务,transaction

 

三面:

聊聊天。。。

  1. primary language是java,所以问了static变量什么作用,放在哪里
  2. hashmap和hashtable区别
  3. rand3 () 求rand5 () 说下怎么做
  4. 算法题: next permutation 点在于:怎么找到需要swap的index和比他值大的index,然后,需要从swap index之后需要sort么?
  5. 不需要的,因为前两次找index的时候,保证了从右往左是ascending,所以只需要two pointers reverse就行

 

 

                                                   第三天

字节后端一面

  1. 输入URL以后的过程
  2. 三次握手
  3. 为什么需要三次握手?
  4. UDP的特征、应用,属于哪一层?
  5. DNS属于哪一层?

解:在应用层

  1. DNS请求报文的结构
  2. 301、302、401、404等状态码的含义,301和302的区别

解:401:无方问权限,301:永久重定向,302:暂时重定向

  1. http请求头部有哪些?都有什么含义?
  2. Cookie和Session的区别
  3. http 1.0和1.1的区别

 

 

                                                 第四天

37娱乐


投的java开发,和百度到的面经不一样的,都没有照着简历问,更加偏向工程~~~
1、问项目,涉及到了一个sql优化,你是怎么实现的
2、对高并发、分布式有没有了解
3、数据库索引的使用有啥要注意的地方
4、索引b+树、hash区别,为啥用的是b+树

解:Hash索引仅仅能满足"=",“IN"和”<=>"查询,不能使用范围查询。

       Hash 索引无法被用来避免数据的排序操作。

      Hash索引不能利用部分索引键查询。

       Hash索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高
5、前段学习得怎么样,对底层有没有深入地了解
6、spring对象的依赖(具体问题记得不太清楚了,因为跟他说了框架只会搬砖)
7、讲一讲红黑树的特点
8、双亲委派机制、好处,有没有自定义过类加载器

解:目前系统存在两种类型的类加载器,一种时启动类加载器(Bootstrap ClassLoader);另一个种是所有其他类加载器,这些类加载器都继承ClassLoader抽象类。目前,从开发角度来说,会使用三种类加载器,

(1)启动类加载器(2)扩展类加载器(3)应用程序类加载器

双亲委派工作过程:如果一个类加载器收到类加载请求,它首先不会自己加载,而是请求父类加载,每一层都是如此,只有当父类无法加载时候,字类加载器才回去尝试加载。

好处:防止恶意代码对源码的污染,比如:自己编写了一个Object类,如果不适用双亲模型的化每个累都去加载这个object,系统中会出现多个object类,程序边的混乱。
9、怎么打破双亲委派机制,像tomcat之类的应用

解:(1)向前兼容;(2)加载SPI接口实现类;(3)热部署


10、jvm新生代老年代
11、tcp怎么保证可靠传输(慢启动,拥塞避免,快重传,快恢复)
大概20min左右,面试官评价:基础正常,多去搞一下项目、框架、高并发、分布式这些东西。等hr通知。凉凉的可能性比较大。

 

                                              第五天

华为一二面

1.自我介绍

2.git命令rebase

解:保证历史提交记录干净整洁。

3.git分支中head的意思

解:说简单一点,baiHEAD 就是当前活跃分支的游标。

4.可变对象和不可变对象

解:不可变对象:对象一旦被创建后,对象所有的状态及属性在其生命周期内不会发生任何变化。

https://www.cnblogs.com/dolphin0520/p/10693891.html

5.看你用过junit,讲讲测试

6.innoDB了解多少,什么情况下该用innoDB,其他引擎了解吗

7.讲讲设计模式,除了单例还知道什么

8.然后给了我一道情景分析题:A继承exception,B又继承A,然后在C中的方法抛出B,问我这样写对吗?(这里我觉得是自定义异常的使用,然后又问我A和B反过来,D继承C抛出A这样对吗?我记着好像是这样,有没有大佬解释下这里有啥坑不)

解:根据里氏代换原则[能使用父类型的地方一定能使用子类型]

https://www.cnblogs.com/jenkinschan/p/5847470.html

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值