一、0614vivo大数据工程师(或软件后台开发)
WO:
1、liunx命令
常用命令,包括查看网络端口占用、CPU等资源占用(计算机负载,可能还包括内存、磁盘等)、查看线程
2、计算机网络(tcp、udp)
3、MongoDB与MySQL区别,应用场景,索引原理。
4、HTTPS和HTTP的区别(下述内容为网上查找,仅供参考):
- https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
5、Java
- 单例模式(同学被问的问题)(参考:https://www.runoob.com/design-pattern/singleton-pattern.html)
- 关于Java的基础知识需要掌握牢固(网上很多Java面试总结)。
6、大数据还问了一句“hadoop”会不会......
H同学:
1.hashmap的扩容机制
2.redis的数据类型 redis的过期时间 实现原理 如果让你设计你怎么设计
3.设计学生选课系统数据库表 多对多表
4.topk问题 10000个数里选10最大的 堆的实现原理
5.如何给不懂计算机的人 讲解一下线程 进程的区别 设计一个场景
6.银行排队和叫号对应计算机科学的什么? 阻塞和非阻塞 各自优缺点
7.两个有序数组的合并成一个数组 时间复杂度
8.mybatis $和#的区别 如何防止sql注入 什么时候使用$和#
9.软件开发规范???
面试官都是根据简历上问会引出相关知识。
二、0617-TP-Link后台开发
PRJ同学:
一开始还自我介绍+项目介绍了
1.ping的原理,重点是dns的逐层查找
2.如果视频面试时画面很卡,作为网管的你如何调试
3.Linux的内核态和用户态是什么?如何切进程
4.对进程和线程的理解
5.对tcp的理解
6.锁和信号量用在哪里的,怎么用的 7.进程间通信方式
LZ同学:
1、讲项目
2、linux内存管理和一些具体机制
3、python静态代码检查工具
4、python垃圾清除
5、java垃圾清除
6、问了三道笔试题和变种、优化
7、问了几种排序的实现,排序的稳定性
8、spring
ZL同学:
1 项目相关
2 对ssm的理解
3 对springboot的理解,与spring的区别
4 别写什么商城秒杀,一看就被怼
ZCC同学:
1.自我介绍。
2.对着项目问。居然对tensor恢复算法感兴趣。在问项目的过程中,问了进程和线程的区别,IO多路复用
3.堆和栈的区别?栈是如何知道应用程序的大小?怎么分配内存?
4.给你一个链表,排序,详细过程。
5.对TCP的理解,TCP如何保证传输正确性
多名同学:
1.海量文件去重(引申:md5对于大文件耗时太多,如何降低时间复杂度)
解决方法参考:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/06.00.md
三、中电十所
我自己及同学:
1、讲教研室项目,自己的具体工作(问我事件检测的内容,我:“这块不是我做的”);
2、以后打算做什么;
3、Java面向对象的理解,及特点(封装、继承、多态)。
四、字节跳动
PRJ 同学:
基础:
1.python和java的垃圾回收机制和分代机制
2.python的多线程与多进程,java的进程池
3.进程、线程、协程
4.内核态与用户态的切换
项目:
1.Mongo的分布式与角色
2.Mongo的索引机制
3.流量控制和RPC
算法:
1.O(n)时间复杂度的算法解决排序问题(个人备注:桶排序、基数排序、计数排序)
2.快排
YYH同学:
1、a^n, a是浮点数,Log(N)时间解决;
2、孤岛问题(可以参考一下这个:https://blog.csdn.net/qq_41805514/article/details/82951804);
3、项目。
五、OPPO
YHQ同学:
MySQL主从复制原理,原负载均衡(ngix)原理,redis的list有哪些,redis的key-value是如何删除的,hashmap原理,hashmap线程不安全会引发什么问题,juc包有哪些并发安全的类,乐观锁和悲观锁具体是什么样的,jdk里面有哪些乐观锁悲观锁,浏览器输入URL之后的过程,线程池参数,双亲委派模型,运行时内存区域,常见垃圾回收算法。
ZL同学:
一面:上来就说面试只有十五分钟
自我介绍,简单介绍了教研室项目
集合顶级接口,list和set的区别,volatile关键字作用顺带说了一下jmm,synchronize作用,介绍一下jvm,
线程池和它的参数,四种拒绝策略以及使用流程,谈谈AQS框架以及CountDownLatch,CyclicBarrier,信号量,可重入锁,
redis数据结构过期时间设置命令,以及集群如何分配槽,
mysql 的Innodb与myisam的区别,介绍B+索引
rabbitMQ交换机四种模式,如何保证消息不丢失从发送方和接收方,
问完时间差不多就结束了
二面:
自我介绍,简单了介绍教研室项目,感兴趣要详细介绍一下
第二项目问我有什么难点,我直接说网上找的,只有crud就没问
加问了一下秒杀系统的优化,(接口防刷,redis预减,消息队列异步执行实现流量削峰,也没问具体怎么实现的)
问了java锁的几种实现(synchronize和AQS框架以及CountDownLatch,CyclicBarrier,信号量,可重入锁,)
正在学什么看什么书
对redis的了解,以及AOF如何实现跟RDB的区别,AOF重写如何实现
六、成都中兴提前批
LJC同学:
1.首先自我介绍,顺带说一下项目
2.分词是不是你写的,原理
3.项目是不是分布式的,部署在几个节点,MongoDB部署在几个节点
4.爬虫里面,怎么定位区分网页元素。我说用HTML标签和id属性,问有哪些标签
5.java和Python区别,
6.说说链表(我说了和数组的区别,以及插入删除查找的时间复杂度,内存分配这些)
7.java的访问修饰符和作用范围
8.hashmap和hashtable
9.说说mysql与mongodb区别
10.为什么你说的mongodb这么好,现在仍然大量使用关系型数据库
11.sql的增删改查,事务及事务的特点
12.linux的内存分为哪些,怎么分配
13.说说你知道的Linux命令,netstat什么作用,你们系统的网络资源占用情况
我自己:
1、自我介绍,顺带说了一下项目;
2、接着问了项目中最近做的东西(这个问的很细,画图说明每一步具体实现);
3、Java:(1)HashSet与HashMap,(2)多线程开启的几种方式;
4、维护数据库的具体实现过程;
5、Python关键字。
听到另外一个人说被问到如何快速知道10000台计算机中哪些可以ping通。
七、网易
PRJ:
1.项目
2.手写SQL的联合索引语句;还有mysql的读写锁和四个事务隔离等级。
3.synchronized基于jvm的原理解释
4.负载均衡
5.高可用性如何实现(哨兵模式与自动故障转移)
6.redis的并发冲突问题
7.redis的场景设计题:统计每篇博客的访问量
8.手撕代码并计算时空复杂度:int[]类型的数组反转