面试刷题10-14

头条三面面经

编程题:

1. 实现hashMap,主要是put和delete操作

2. 实现除法,1/2 = 0.5, 1/3 = 0.(3) 循环部分用括号包裹

3. 数组的度,leetcode原题

Redis的String和hash的具体实现

hash的复制过程。

 

 

 

字节三面面经,一面和二面面完有点久了,记录的不完整

一面
1、熟悉的软件测试的方法
2、写一个快排

3、软件测试的流程
4、Linux指令替换文件中的某个关键字
5、MySQL语句查询成绩大于60分的学生的信息
一面其他的想不起啦~~~

 

一面的题目比较偏测试


二面
1、进程和线程的区别
2、进程间通信的方式

3、链表逆置代码
4、vector和list的区别
5、网页上输入一个URL发生的事情
6、TCP协议的特点?讲一下拥塞控制和快重传
7、电梯的测试用例

二面的面试题比较常规 

 


三面
1、websocket协议
2、404具体错误
3、讲一下联合主键
4、索引提到了B树

5、代理服务器
6、查看哪个进程正在往文件里面写东西的命令
7、V、W模型的区别,哪个更好一些
8、等价类和边界值举个例子
9、http和https的区别
10、语音助手项目的语义分析怎么实现的
11、敏捷模型是什么?特点?
12、跨域了解吗?


 

  • 自我介绍也没啥说的,自我介绍的时候面试官就一直在看简历,感觉总体看的还是比较认真的,今天面试官虽然没让我挂,但是总体给人的感觉还是比较和善的,也比较专业。
  • 然后我是本科生(感觉今天全场就我一个本科生...,可能都是985硕),然后就大致问了一些项目,我的项目是socket做的,socket应该也是C++服务器的重点了,问的比较多。
  • 先是问了socket的流程,我说我就直接说socket的那些函数吧,通过函数来讲这个过程。然后就把socket(),bind(),listen(),accept()...然后解释了一遍。
  • 然后就接着问TCP的三次握手,也没啥说的,SYN和ACK之类解释一通。
  • 然后我简历上写了Git协同合作版本管理,问了我有没有了解过SVN,我说知道也是版本管理的,但是当时实习的我们的部门是Gitlab,别的部门有的用的是SVN,但是我们没用过,然后就没问啥了。
  • 问了C++的基础内容吧,C++的三大特征,我一问到有点懵,C++还有三大特征啊?然后我就说,我可不可以理解成是面向对象语言的三个特征?面试官点头,然后我先说了一个多态,接着说了两个覆盖和重载...我也是有点迷,面试官表示了一下疑惑,我赶紧说,不对不对,封装继承多态...面试官点点头。
  • 继续问我多态怎么实现的,我只说出来虚函数,因为也确实只用过虚函数,然后就继续问虚函数的原理,指针指向派生类啥的。但是我刚刚查了一下怎么实现多态的,方法还挺多的。
  • 然后问C++的多线程,我...确实,我说我可以写demo但是我的项目工程中用的都是框架,然后我就陈述了线程安全之类的内容...
  • 问我IO多路复用,这个我也不会...死穴。

 

C++ 的面试确实局限性比较大,比较看脸


 

1.发表论文中的创新点。

2.项目中技术的重点和难点。

3.类加载详细过程。

4.MySQL事务。

5.TCP三次握手,四次挥手。

6.Java语言基础,float s = 3.4对吗;if(0.3*1==0.3)返回ture or false;a=a+b,a+=b区别,原理。等等。

7.Java断言。

8.++i线程安全吗,什么是线程安全。

不安全,线程安全指的是多个线程访问共享变量,

9.与线程生命周期相关的方法。

10.依赖注入是什么。

11.手撕代码,二叉树的先序和中序重建二叉树,最后再输出后续遍历结果。

 


 

分享下上周六的字节跳动三面的面经吧,杭州岗,后端开发工程师,攒攒人品吧。

一面

自我介绍

JVM内存模型分为哪几个区域

Java堆中有哪些GC算法

哪些对象可以作为GC Root

Java有哪些引用类型,分别是什么特点

虚引用有哪些应用场景

Java的线程都有哪几种状态           

Java 线程共有六种状态

NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
分别对应于
新建、运行、阻塞、等待、带超时的等待、终止

wait()和sleep()有什么区别

sleep不会释放当前锁,wait会释放当前锁

JMM模型,内存可见性介绍下

synchronized和volatile区别

volatie保证内存的可见性,禁止指令重排,不保证原子性

介绍下JDBC的过程

JDBC的Statement对象有哪几类

 

算法题

1.给一个链表1->2->3->4->5->6->7 和 一个数字n

每n个反转一次链表。

如 n = 2时,2->1->4->3->6->5->7;n = 3时,3->2->1>6->5->4->7

 

2.罗马数字转整数 leetcode13

 


 

## 一

1. hashmap treemap concurrentHashMap

2. nohup

3. 字符串 分割 split(String s, char splitchar, int index) s是待分割的字符串 ,char为 分隔符,index是第几个 。边界条件

4. | 管道符的作用 awk

5. Linux 环境变量 $Home 配置路径 etc/?,文件

6. GCRoot 哪些可以作为GCRoot

7. netty问题

8. Stream 流 Java8

 

## 二

1. 红黑树 与 自平衡二叉树AVL的区别

2. hashmap ,hashcode &(length-1)

3. 二维方格,从第一个到最后一个的多少路径 dp动态规划问题

4. redis zset 跳跃表问题 字典

5. levelDB事务问题

6. netty 序列化问题 从序列化开始- > response

7. netty 与 NIO的问题,优化问题

8. mysql 事务问题 可提交读 等等

9. levelDB原理问题

10. 服务器架构

11. 重复登录不同的world 问题

12. 排行榜问题 zset

13. lambda表达式

 

二面

自我介绍

项目介绍

Java中如果我有两个long数组,想要取他们的交集,怎么做

Java有没有遇到过fullGC,触发fullGC的条件以及如何排查

内存回收的哪些阶段会有Stop the World

介绍下G1

介绍下mysql的索引

假设有这么一个场景,有一条新闻,新闻的评论量可能很大,如何设计评论的读和写

你如果写用InnoDB,读用Myisam的话,主从同步怎么做

假设如果有同一时间海量数据入库,你怎么做(期间扯到了鹿晗关晓彤,这种微博大V给他安排上,还提了消息队列做削峰)

 

算法题

1.二叉树中的最大路径和,leetcode124

 

 

三面

自我介绍

项目介绍(聊了两个项目)

你对Elasticsearch有什么了解

 

算法题

二叉树的序列化和反序列化

先讨论了一下,我说前序遍历写起来很简单,然后面试官不让写前序,让以层序遍历的方式来序列化和反序列化,最后也磕磕绊绊写出来了。

哎,,,从下午四点面到晚上八点多,三面完秒接到感谢短信。个人感觉回答的还是不错的,除了三面的算法题慢了些



贡献二面面经攒攒人品

1.线程池参数
2.threadloacal什么用
3.mapreduce的思想

 


4.http和https区别,为什么先非对称加密再对称加密?ca证书作用

CA证书验证访问网站的安全性。




贡献二面面经攒攒人品

1.线程池参数
2.threadloacal什么用
3.mapreduce的思想


4.http和https区别,为什么先非对称加密再对称加密?ca证书作用

CA证书保证访问网站的安全性


5.输入淘宝网址,到页面显示的过程(以为不会问dhcp协议竟然提到了,幸亏昨天看了,在DNS解析前先使用主机配置协议配置主机的mac地址)


6.tcp为什么三次握手,长连接和短连接,举例子
7.用白话讲一下两个用户怎么才算建立连接
8.垃圾回收用什么,(我答了CMS垃圾回收器,他说还有搭配用的另一个***,我没听过)
9.遇到过full gc吗,遇到过OOM吗,全称是什么
10.OOM怎么产生的,可以用try,catch块处理吗?
11.事务基于什么日志(怎么保证事务的)
12.mysql引擎有什么,都基于什么实现的,你常用哪个
13.mysql和mongodb区别,mongodb和redis区别
14.利用索引查询的完整过程
15.主键索引和非主键索引的b+树叶子节点的区别,每次查询非主键索引都需要回表吗
16.socket是什么,为什么要用它
17.怎么理解高可用性,ngix怎么实现的,谈一谈理解


算法题是给一棵二叉树,给任意两个节点,求他们的最近公共父节点。(没做过现场想的思路,我利用前序遍历的非递归算法计算出两个节点分别到根节点的路径,然后从两条路径后面找共同的节点。感觉小哥哥听到这个做法有一些意外??,可能这个思路太奇葩了吧,他验证了一下说没毛病,行吧可以)

差不多这些,面试官小哥哥太nice了,是面试最和谐的一次经历了!
ps你们的面试官会问有没有其他offer吗,不都是hr应该问的问题吗……第二次被问,但是上一个凉了……



酷家乐(一家创业做家装的创业公司,面试体验非常好,但二面约的时间和一个现场面试冲突了没面)
电面:

  • 说说你印象最深的项目(异步队列)
  • 在项目中遇到了什么问题(数据库的设计、异步队列如何将事件传入)
  • 说说对redis的理解(基于内存、I/O多路复用、单线程)
  • redis为什么要使用单线程(面试官补充主要是为了原子性操作)
  • redis有哪些常用的数据结构,项目中你使用了什么数据结构
  • 说一下spring的了解,有几种注入方式,你们项目一般使用什么进行注入
  • 项目的web.xml配置中dispatcherServlet和ContextListener是干什么的
  • mybatis使用情况,了解哪些,用了哪些标签
  • 项目中用到了什么设计模式
  • 项目使用了什么版本管理软件,在github学习什么开源项目没有
  • 一道算法,有序数组里面数字可重复,给定一个数,找出该数的范围(第一次就想到了遍历,后面想二分查找改进)
  • 汉诺塔问题

 


 

  • 类加载了解吗?类加载步骤,双亲委派模型。如果我写了一个java.lang.String类,怎么进行加载的,怎么跟原来的类进行区分的?
  • 垃圾回收机制了解吗?哪些时间我们需要对垃圾进行回收,如果我有一台双核4g的机器,我该如何分配新生代和老年代的大小?

 

  • 异常捕获了解吗?说说常用的,你在项目中用到了哪些类型的异常捕获?如果碰到了空指针那些异常你会怎么处理呢?

 

  • 多线程怎么样?说说你项目中用到的并发

 

  • 说说你最拿手的项目?说了redis异步队列,就问同步和异步的概念,异步需要怎么实现,需要回调函数吗

 

  • 既然redis用到了缓存,那如果叫你自己实现一个缓存,你该如何实现?怎么考虑缓存过期这些问题?

 



电信IT研发(电信的互联网公司,有编制,待遇也不错,前面二十分钟基础感觉答的基本倒背如流的,问到架构不太会了)

  • 单点登录怎么做的,session共享,session和cookie的区别
  • Bootstrap啥类型的,jQuery了解情况
  • JVM垃圾回收,新生代和老年代的垃圾回收,可达性分析

 

  • HashMap和Hashtable区别,HashMap添加的对象为什么要重写equals和hashcode

 

  • 数据库了解多少,事务acid,事务操作,怎么加锁,分布式系统锁,选举

 

  • 微服务了解什么,微服务治理,微服务之间通信

 

 


58同城(面试最差的体验,酒店超级差,闷的要命,安排还恶心,过去等了三小时,一面面的还不错,二面没问多少就挂了,好像都是c++岗,面试官不用Java)
一面:

  • 手写快排
  • 数据库引擎的区别,说说btree,手写联合查询sql
  • HashMap了解多少说多少
  • wait()和sleep()
  • 事务举例
  • 用过什么nosql,说说redis,topk用什么数据结构
  • 数据库分表
  • 情景题,高并发访问一个接口,如何检测传入字符串的相似度很高的?答了个布隆过滤器,说沾了边

二面

  • 算法题给一个数组,如何把偶数放到左边,奇数放到右边?写完后说当两边顺序已经一致了,交换是否会出现问题,加个判断
  • 说说数据库,聚合函数了解吗?
  • 网络编程了解吗,http请求如何区分请求头和请求体?说了解一点nio的知识,nio指什么,同步和非阻塞的概念是什么?
  • 说下注册的时候的检测,多用户怎么判定是否被注册



一面:(30来分钟)

  • 说一个自己比较深的项目 ,redis多消费者一起取的时候如果队列为空你怎么处理(答了CAS进行尝试,超过失败次数之后就进入睡眠,面试官说可以不用这么复杂~~为空时直接进行睡眠就行)
  • 纸上手写Springmvc DispatcherServlet的大致实现(大概10分钟的样子)
  • 数据库了解吗?聚集索引和非聚集索引的区别,存储引擎的区别?主键使用不重复的字符串会出现什么问题(插入的时候由于字符串不能像自增长的id一样连续,所以在磁盘上的位置不同)?
  • 说说HashMap吧,然后讲了HashMap、ConcurrentHashMap 1.7、1.8的实现(讲的很详细,面试官觉得数据结构还不错)
  • 然后问计算机网络咋样,我说很一般操作系统咋样,我说很一般
  • 线程有哪些状态,怎么进行切换的。

NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
分别对应于
新建、运行、阻塞、等待、带超时的等待、终止

 



二面:(40来分钟)

  • 说一个比较深的项目,还是说的异步队列,问你这为啥要用redis做异步队列啊,我用线程池直接自己开一个队列跟这有啥区别。扯了一堆,扯了redis I/O多路复用模型,最后不太满意~~
  • 然后又手撸了一遍Springmvc
  • 然后问HashMap
  • 最后说你用了这么多redis,叫你设计一个缓存,你该怎么设计,get和set的时间复杂度怎么算的(答了用LinkedHashMap实现,分析了一下LinkedHashMap但是也没怎么说清)

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值