自我介绍
说一下项目
介绍一下RBAC模型,说一下权限管理
git你都使用那些方法,stash你了解吗?如果需要临时fixbug,你该怎么使用git
你们直接用master?
Nginx怎么用的,负载均衡算法
报表统计怎么实现,Join几种,区别是什么?
MySQL的索引,怎么实现
锁有几种,怎么用,SQL上用到for update是什么锁。
联合索引AB,查B能用这个索引吗?那A呢
HashMap了解吗
多线程了解多少,Java并发用到哪些操作
线程和进程什么区别
并发是怎么实现的,线程间通信?
前后端分离是怎么实现的?用什么交互
权限怎么拦截?验证客户端吗?
写一道算法题,一个先递增后递减的序列,允许有重复值,找出最大值。
自我介绍
Spring MVC了解吗?说一下
Spring IOC解释一下
JVM了解吗,说一下GC算法和各个收集器的区别以及如何实现的。
MySQL的事务隔离级别,详细说一下
Http协议说一下
既然HashMap问过了,说一下你了解的其他容器,区别以及使用场景
写一道算法题,判断一个树是否是平衡二叉树
JVM的调优
TCP三次握手和四次挥手。纸上画一下
四次挥手的time-wait是什么意思
写一道算法题,求无序数组的前M大的数。
1.自我介绍
2.先说计算机网络。https怎么实现的?ssl协议为什么安全?具体怎么保证加密的?
3.那我们下潜到传输层,tcp四次挥手为什么是4次不是三次?最后的time-wait是为什么?
4.我们来说Ip地址和Mac地址,他们有什么区别?Mac地址存在的必要性是什么?假设IP地址每台电脑可以保证是唯一的可以不要Mac地址嘛。
5.说说路由转发。
6.再说操作系统,进程和线程的区别是什么,为什么进程重量级,线程轻量级?进程和线程的创建过程,描述一下。
7.进程间通信和线程间通信的方式说一下。
8.平时用linux嘛?写一个shell脚本查询占用12345端口的java进程并关闭它。
9.说说项目,你们项目做得是网站系统,说一下都有什么常见网络攻击方式。XSS,CSRF,SQL注入都是怎么做得,你又要怎么解决这些问题。
10.说说cookie和session。
11.你说你用同步set解决了单机调用订单支付接口的幂等性,那么假设你们的系统部署在分布式环境中,两个人做相同的支付请求,怎么解决幂等性?
12.让你设计一个秒杀系统,描述一下具体实现。
13.做一道算法题,假设有一亿条用户在线日志,每一条内容是(id,登入时间,登出时间)。设计一个算法计算出峰值用户登录数和该峰值持续时间。
14.谈谈C++和java的设计哲学。
二面
1.自我介绍
1.先聊了聊项目,聊到了用户登录,就问到了redis,redis数据类型,应用场景,项目中用到的,用作会话缓存与消息队列的具体实现。
2.什么应用场景需要用到消息队列
3.redis架构,主从同步具体过程。
4.多台redis服务器不采用复制方式而采用分库方式,具体如何分库
5.Hashmap底层实现
6.讲一下红黑树
7.数据库索引为什么不用红黑树而是b+
8.常见web攻击方式,项目中有没有防护措施,还有每种攻击方式的常见措施
算法
二叉树的蛇形输出
三面
什么时候开始接触计算机,什么时候开始接触编程
除了大作业和项目,自己有没有写过一些自己感兴趣的项目
课余时间自己都干什么了,主要玩什么游戏,LOL段位如何
实习打算,报了哪些公司,为什么没报阿里,准备报吗?两个月的实习时间从公司考虑时间够吗?
职业规划,走技术还是走管理,走管理需要哪些技能,本科有没有当过社团的负责人
走技术的话如何自学技术
如果进入头条想做什么类型的项目
你可以走了,等通知吧
1.jvm了解什么
2.full gc什么时候发生
3.反转链表
4.求二叉树最大深度(递归+非递归)
5.tcp首部
6.初次连接时,tcp首部中的seq是怎么生成的
7.socket编程
8.socket编程中connect可能遇到的错误
9.负载均衡怎么做(说了一致性哈希)
10.具体说一下一致性哈希
11.研究生阶段最有成就感的事
12.最近在看哪些技术方面的东西
13.你认为一个好的后台开发应该做到些什么
1 事务的四大特征
2 mysql怎样保证原子性,mysql索引
3 写一个sql语句,用score排序,输出成绩最好的十个人
4 输出成绩最好的十名到二十名
5 sql语句,如果id存在,更新score 变成score+10 如果不存在,插入score =10
6 设计一个抽奖系统,如果怎样保证在一个小时之内均衡发放奖品
7 如果并发量很大,怎么处理用户请求
8 tcp三次握手,为什么需要三次
9 算法string 转 int
10 socket用过吗
11 消息队列了解吗
1.了解哈希嘛?说说哈希在密码学中的应用。
2.哈希什么情况下会发生碰撞,怎么样选取哈希的方式能让碰撞几率降低。
3.说说平时用的排序算法的时间复杂度和空间复杂度。
4.写一个快排给我看。
5.进程间通信方式都有哪些?各自的优缺点是什么?
6.平时都写过用到这些方式的代码嘛?
7.进程有几种状态,怎么转换的。
8.进程什么情况下会死锁,怎么避免。
9.说说TCP,UDP各自的特点,并举一个现实中的例子。
10.说一下TCP三次握手和四次挥手,并描述一下三次握手四次挥手时服务器和客户端各自的状态。
11.TCP怎么保证可靠传输的。
12.讲一讲TCP拥塞控制。
13.两个链表,如何判断他们是否有交点。
14.讲一下点击url打开网页的过程都发生了什么。
15.讲一下DNS服务器的实现。
16.你平时用的数据库是什么,讲讲MyISam和innoDB的区别。
17.主键,唯一索引,联合索引区别。
18.如果一个表要做很多count操作,你应该用哪个引擎。
19.如果一个表要频繁做很多insert操作,并且经常查询count,你应该用哪个引擎
20.如果一个表要频繁做很多insert,update操作,并且经常会查询count,怎么实现好。
21.说下你项目的闪光点。
22.订单系统你是先付钱,后写入数据库状态的,那么如果付钱成功,写入数据库失败怎么办。
23.如果退款成功,写入数据库再次失败怎么办。
24.Redis和memcache用过嘛
25.你平时linux用的多吗,常用命令有哪些?查看硬盘状态命令是什么?查看一个进程端口号占用的命令是啥。
26.写一下判断数学表达式是否正确的程序。
27.你有什么想问的问题嘛?
1.自我介绍
2.先说计算机网络。https怎么实现的?ssl协议为什么安全?具体怎么保证加密的?
3.那我们下潜到传输层,tcp四次挥手为什么是4次不是三次?最后的time-wait是为什么?
4.我们来说Ip地址和Mac地址,他们有什么区别?Mac地址存在的必要性是什么?假设IP地址每台电脑可以保证是唯一的可以不要Mac地址嘛。
5.说说路由转发。
6.再说操作系统,进程和线程的区别是什么,为什么进程重量级,线程轻量级?进程和线程的创建过程,描述一下。
7.进程间通信和线程间通信的方式说一下。
8.平时用linux嘛?写一个shell脚本查询占用12345端口的java进程并关闭它。
9.说说项目,你们项目做得是网站系统,说一下都有什么常见网络攻击方式。XSS,CSRF,SQL注入都是怎么做得,你又要怎么解决这些问题。
10.说说cookie和session。
11.你说你用同步set解决了单机调用订单支付接口的幂等性,那么假设你们的系统部署在分布式环境中,两个人做相同的支付请求,怎么解决幂等性?
12.让你设计一个秒杀系统,描述一下具体实现。
13.做一道算法题,假设有一亿条用户在线日志,每一条内容是(id,登入时间,登出时间)。设计一个算法计算出峰值用户登录数和该峰值持续时间。
14.谈谈C++和java的设计哲学。
15.恭喜你,你挂了
项目,平时习惯
索引
项目加层次遍历,没了
35分钟项目+实习经历,了解哪些开源项目?TCP三次握手、sql注入攻击、web安全、算法题:字符串去驼峰 input AaBac output Ac 智力题:100层楼 两个鸡蛋 求哪摔碎鸡蛋的最低楼层
介绍一下计算机网络
tcp udp 头部字段
tcp 四次挥手 流量控制 拥塞控制
IP转数字
socket编程过程
connection函数超时处理
数组中连续子串最大和
树的高度
最近一年读的书,最有成就感的事
项目中遇到的问题
linux内存管理
海量QQ号 找出出现次数大于1的
首先自我介绍,我顺便介绍了我的简历上的项目
网络编程有了解嘛?我:有一些
TCP/udp特点,区别,哪一层,都分别在哪应用?
Tcp拥塞控制?
平时有用到过嘛?研究生阶段没有,本科阶段做了一些小小的demo,用到了,然后就说了印象中的中央空调。
进程和线程有了解嘛?我:有一些,(来讲)
进程通信有哪几种?我:管道,消息队列,套接字,这些都是我有用到过的,然后(来讲)
线程调度方式?
堆和栈有了解嘛?说一说
来一个算法题吧:给一个链表,从头开始,两两翻转。我:默默写完,然后他让我讲一讲思路
排序有了解嘛?
我:都说了一遍,并表示,现场写我可能要推一推,思路是知道的
快速排序是稳定排序嘛?我:嗯?可以解释一下稳定排序是啥嘛?(解释完)我:好,我推推,额是的吧,他:为什么?我:因为,在partition函数里巴啦啦,诶,不对,不是……他:那你写个伪代码吧。我先下楼看看
我:好
1.自我介绍,还是说项目
2.你爬虫的具体实现细节,都是你一个人做的吗还是分工合作,你负责哪个地方,具体说说
3.找出一个目录下面所有的重名文件
给你一个文件,还有一个词库,让你找都哪些词命中词库了
4.念研究生是保的还是考的
5.平时都干啥,看点啥,为啥看这方面东西
6.玩什么游戏,游戏段位???
7.写一个匹配网页上所以a标签里面链接的正则表达式
1.手写算法topk,二分查找,翻转链表的两种写法,快排
2.tcp和udp的区别
3.线程和进程的区别
4.讲一下jvm的gc
5.讲一下spring的ioc原理
6.tcp三次握手
7.进程间通信的方式
1、单例模式
2、快排
3、求数组连续子序列的最大和
4、25匹马,5条跑道,求最少跑多少次能比出前三名。
5、主键索引和非主键索引
1、求字符串A中字符串B首次出现的位置,时间复杂度
2、建表的sql语句
3、怎么建立一个serversocket
4、myISAM和InnoDB的区别
5、读多写少用哪种引擎,为什么
6、jvm的内存模型
1.G1垃圾回收器
2.SQL语句很慢,怎么定位问题
3.索引的底层实现,这样实现的优缺点
4.innodb和myisam区别
5.事务的隔离级别
6.ArrayList底层结构,优缺点
7.已有满的2M的arraylist,内存3M,再往里插入元素怎么办
8.hashmap是线程安全的吗,多个线程同时访问会发生什么
9.concurrenthashmap原理,它的分段锁具体是怎么实现的
10.泛型编译出来的字节码什么样
11.线程的状态转换
12.设计一个线程池
13.你觉得比较有趣的数据结构分享一下(3分钟)
面试官介绍部门职责,菜鸟偏底层的部门,上面承接了大量业务,部门要提供高并发、高可用、高性能的底层服务
自我介绍
开始发问
只问了我第一个项目,项目关于内存取证,聊了半小时,要把这个项目讲给面试官听,项目的意义,出发点,实际价值,并让他理解和接受,他会对感兴趣的点,假设场景发问,项目未完善的地方在哪里,有哪些可以优化的
从项目引到 JVM 内存布局,垃圾回收机制
数据库,分片查询如何实现,假设场景,一个包含ABCDEF列的表,给定一条SELECT语句,如何实现索引(数据库只掌握基本概念还是不够,要懂得比较深,对场景敏感,所以问的我很难受)
向面试发问:我问的问题是如何学习数据库
面试官从三个方面回答并建议我可以找些文章看看:
数据库原理中的范式帮助我们在设计表结构阶段避免了冗余,但是会引起查询效率低的问题
建立索引是为了加快数据检索,但是索引也是占空间的,索引一旦建立就不要动
当数据库数据量非常大时,如何做好分库分表对业务响应至关重要
1 游买有卖
2 游戏
8. Node.js 如何获取请求,处理请求并返回给前端?描述一下这个过程
3 新技术
9. 你最近了解过哪些比较新的技术吗?Docker,那介绍一下Docker,Docker实现轻量化虚拟机的底层原理是什么?
1.项目相关。建议大家一定要对项目中的各种数字很清楚
2.海量数据求词频
3.jdk10新特性
4.springboot解决了什么问题
5.spring加载过程
6.基于注解的bean解析
7.数据库连接池
8.建立释放数据库连接消耗什么资源
9.用过阿里的什么中间件
10.消息队列解决了什么问题,会带来什么问题
11.如何防止重复消费
1.内存池是什么(C++的) 不会,我猜是固定一块内存区域需要时进行分配,省得向系统申请,就和线程池类似
19. select epoll poll 非阻塞网络编程,也不太会
20. java 反射机制
21. Java gc回收有哪几种,服务器段的gc如果你来设计要考虑那些方面
22. 两个有序数组,找第K大的元素 先截取两个数组的前k个元素,二分搜索
23. 一个直线上有很多点,寻找指定区间内点的个数 线段树,复杂度为LOG(单位长度的个数)
24. 以图搜图,寻找和一副图片最相似的100个图 我光知道要提取特征,包括统计特征和基于神经网络提取的特征,说了分类,但是没想要最后生成一个哈希值,进行海明距离比较
25. 一台机器100G文件发送给1000台机器 我直接说需要发送给每台机器,然后分别发送给每台机器,然后每台机器泛洪或者持有令牌环发送。 然后问我可能会有什么问题。。。 不太会,我开始猜和差错校验有关的内容…
26. 如果一个公司搭建的机器学习平台要考虑什么,特征工程的构建,基于分布式的机器学习系统,基于计算时间的算法的选择(SVM 和K-means在工业界用的比较多的原因) 口胡。。。。
27. 神经网络的loss函数怎么选择(我是研发的大哥,我怎么还记得这些…开始口胡) 面试官问我你不是做过项目的吗… . 我回答说最近一直在准备java研发的知识
28. 我问面试官您看我什么地方需要提高,面试官直接说,现在很多东西还不能告你,等通知就好了…
1、常用的编程语言是什么
2、设计一个吞吐量很大的系统需要考虑哪些问题
3、C++的内存管理,分配在哪些区
4、应该如何高效的使用这些内存
5、实现一个sort函数你能想到哪些方法
6、给一个链表排序怎么设计,考虑空间复杂度,不考虑空间复杂度
7、你擅长的技术是什么
1.自我介绍;
2.说一下项目;
3.对Servlet有了解吗?说一下。Servlet是单例还是多例,为什么?
4.说一下SpringMVC;
5.Controller是单例还是多例?
6.说一下AVL树,有什么好处?AVL查询的时间复杂度是多少?
7.了解哪些排序算法;快排的时间复杂度;
8.ASCII码是几位?表示26个英文字母要用几位二进制?
9.算法题:10万个高考学生按成绩排序;
10.a、b、c三个字母,a的频率最高,b次之,c出现的频率最低,怎么用变长编码去编码?编码后a、b和c的码字分别是多少?
11.上机测试:两个栈 stack1,stack2,其中stack1中放入无序的int数字,请用两个栈排序,不引入其他数据结构。
阿里云:域名系统
闲扯一小会,自我介绍
Java:
1、java为什么具有平台无关性?jvm是否具有平台无关性?
2、java怎么执行的?java编译生成什么?字节码文件里有哪些内容?java为什么比其他语言慢?
3、jvm内存模型,栈里存了哪些内容?
4、说一下gc的过程,中间打断问哪些可作为gc root?gc算法?新生代再往下粒度怎么分、对象怎么存?
5、说一下类加载的过程、双亲委派模型,为什么用双亲委派?
6、说一下对equals和hashcode方法的理解,重写这两个方法不遵从原规则对java体系有什么隐患?说一下hashmap。
7、用过多线程吗?说一下自己用的场景?
8、说一下synchronized和votatile关键字,然后问synchronized底层原理,说了加锁用monitor啥的指令,又问votatile怎么做的,也是这么做的吗?不会,然后就崩了
缓存:
9、多线程那个,我说的场景里有缓存,问缓存穿透咋回事,怎么处理
数据库:
10、事务的四大特性,说一下隔离性,说一下事务的隔离级别,可重复读具体什么意思?可重复读怎么做的?我说了加行级锁,问除了加锁还能怎么做?
11、说一下数据库索引是怎么做的?为什么用索引会变快?
计算机基础:
12、了解编译原理吗?说一下编译的过程?(词法分析、语法分析、语义分析后面不知道了),问词法分析输入什么输出什么?语法分析有哪些方法?(我说了自顶向下和自底向上,准备问我怎么做的,直接说了不记得了),问语法分析生成什么?(扯了句抽象语法树)
13、网络七层模型,网络层IP位数,ABC类地址的设计原理和区间,子网掩码怎么设计的,有什么用?没有子网掩码可不可以?(我当然说不可以)然后问我为什么不可以?
14、arp协议干嘛的?有IP地址为什么还要MAC地址?(举了一堆场景,假设ip无限,路由表贼大也能维护balabala,说啥都说这条件无效,最后直接说了句那就可以,IP地址设计的时候也有主机号杀死比赛)
15、DNS协议过程,本地浏览器输入网址之后的过程。
16、TCP三次握手、四次挥手
反应能力:
17、int a,b不用第三个变量交换值?(md我以为是要一步操作,套了半天位运算的逻辑,后来告诉我是不用第三个变量就行),没写出来,脑子懵了,写出来的都被他找出来问题了,贼简单
a=a+b;b=a-b;a=a-b,找出这段代码中的隐患,我说了a+b溢出后就不对,没再问了。
算法和数据结构:
18、八大排序,具体说了快排和归并,快排的复杂度
19、树这种数据结构设计出来是做什么的?一开始没懂,以为是能做啥,说了排序和搜索,后来说为了应对分支结构的数据。说一下二叉平衡树的定义,添加节点后怎么维持平衡?
闲扯。。。
1.说一下你实习中,一个需求是如何从产品的描述到上线的
2.为什么要建一个新的代码分支
3.介绍下实习中做了哪些事,用到了哪些技术,遇到了哪些困难
4.==和equasl的区别
5.ArrayList和LinkList的区别
6.get和post的区别
7.如何保证http报文数据的安全
8.说下对称加密和非对称加密
9.说下乐观锁
10.死锁,以及该怎么处理
自我介绍
IPv4和IPv6的区别
TCP和HTTP
长连接和短连接
进程和线程的区别
死锁是怎么产生的
怎么理解线程安全
HashMap是线程安全的吗
ConcurrentHashmap如何保证线程安全
为什么要用分段锁
CAS操作是什么,是原子的吗,底层实现
Java中的锁
实现上的区别,性能上的区别
JVM区域,垃圾回收算法
Redis可以用来做什么
redis如何实现分布式锁
redis过期机制
LRU自己怎么设计
常见的查找算法
并发量大的场景一般要做哪些设计
为什么要来蚂蚁
职业规划
讲讲体现你的学习能力的事情
你最大的优势是什么
有什么要问我的吗
类/接口/抽象类,解释一下;
set和List区别
java并发
线程实现
线程和进程区别
线程间通信
解释一下jvm内存回收机制,什么时候调用fgc;
死锁是什么,怎么解决死锁,怎么死锁避免;
了解加密和加签嘛,解释 一下;
查找算法有哪些,二分查找适用场景;
函数重载是什么,重载的方法签名有要求嘛;
链表的数据结构怎么实现,有几种链表类型