面经
2018.4.3 瓜子二手车(暑期实习)
一面:
- OSI7层模型
- 访问一个web经历了哪些过程
- SQL语句(分组,左连接)
- 单例模式(写了饿汉式)
- 冒泡排序
- 手写多线程实现
- 一个目录有很多文件,找abc.txt,写shell
- 100亿个数,怎么找前10个最大的数
- Mysql索引,事务的特性,引擎
二面:
- 进程和线程的区别
- 进程可以没有线程吗
- 进程间的通信有哪些
- 进程间如何同步
- 知道哪些设计模式,手写了单例模式(双重锁)
- 说说策略模式
- Volatile
- 快排
- 手写反转单链表
- Java的同步(synchronized lock),区别
- 同步的底层实现
- Public,private,默认,protecte的区别
- 虚拟机垃圾回收
- http和https的区别,https具体的实现
- List,set,map的区别
- 数据库三范式
2018.7.19 腾讯(日常实习)
- 了解servlet吗
- hashmap
- spring的两大特性
- mysql索引
- 20亿条url,统计每个url的次数,并且输出top前100
- 快排
- 归并排序
- post一个表单,后端怎么拿到数据的
- groupe by,分组后求,每个组的分数和
- http请求头,post表单和json有啥区别
- 常见http状态码
2019.3.9(阿里菜鸟 预面试)
1.聊项目
2.kafka如何保证消息的顺序性
3.不同的消息如何放入同一个partition里
4.kafka的写入速度为什么这么快,说下具体的存储方式
5.红黑树概念
6.红黑树插入的具体过程
7.为什么不用普通的二叉搜索树
8.死锁
9.银行家算法
10.数据库三范式
11.B树和B+树的区别
12.对一张200W行数据的表做分页,怎么做
13.联合索引,举了几个SQL问索引有没有生效
2019.3.11(蚂蚁金服 芝麻信用 一面)
1.springBoot和springMVC的区别,优点
2.redis做分布式锁是如何实现的
3.redis的持久化
4.多线程
5.hashmap
6.知道哪些设计模式,模板方法和策略模式的区别
7.jvm内存模型
8.垃圾回收算法
9.遇到一条查询很慢的SQL应该如何优化
10.事务的特性
2019.3.15(蚂蚁金服 芝麻信用 笔试)
1.写一段代码来实现策略模式,并说明策略模式与模板方法模式的异同与各自可能的应用场景。
2.有两组文件,红包文件和账户文件,每个文件的每一行都是按照`账户id+空格+金额`排列。
红包文件有50个,共一亿行,id会重复。账户文件有100个,共一千万行,按id%100分开,不重复且保证顺序。
把红包的金额加到账户文件中输出。请列举出有哪些提升该程序性能的措施,越多越好(可用伪代码实现)。
3.大文件当中每行一条json记录,要求按照记录当中score字段从大到小,找出TOP k的记录,分析时间复杂度。
2019.3.18(蚂蚁金服 芝麻信用 二面 )
1.一个规模很大的项目,用你们做的测试工具应该怎么处理,怎么才能使性能提高
2.说说最终一致性
3.说了二阶段提交协议之后,对方问如果一个slave发的ack延迟了,导致超时应该怎么办
4.访问淘宝页面经历了哪些过程,越细越好
5.操作系统层面是怎么处理并发问题的
6.kafka都了解哪些原理,和别的MQ的区别,kafka怎么保证在多个副本上的消息的一致性
7.类加载的过程
8.jvm内存模型
9.String s =new String("abc") 内存是怎么分配的
10.进程和线程的区别
11.进程间可以共享内存么
12.线程间是怎么通信的
13.hashmap和concurrentHashmap的区别
14.遇到执行很慢的SQL怎么处理
15.分表有哪些方法
16.hadoop的原理
17.最近在学什么
18.对未来有什么规划
2019.3.20(蚂蚁金服 网商银行微贷事业部 一面)
1.你的项目中是如何保证数据库与缓存双写一致性的
2.redis缓存雪崩和穿透
3.redis大量key同时过期,此时大量请求走mysql,应该怎么办
4.redis分布式
5.redis的槽重新分片
6.redis的过期策略
7.如何在多台机器上实现i++,保证安全性
8.hashmap
9.如果要用线程安全hashmap该怎么办
10.volatile
11.用过什么设计模式
12.进程和线程的区别
13.创建多线程的方式
14.线程池
15.什么情况下会内存溢出
16.如果内存溢出了你该怎么办
17.linux下用什么命令查看某个进程占用了多少内存
18.手写LRU,说说思路
19.如何判断单链接表是否有环,说说思路
2019.3.20(蚂蚁金服 网商银行微贷事业部 笔试)
1. 给一个String,找出最长的不重复的连续字符长度
2. 两个线程交替打印1-100的整数,一个打印奇数,一个打印偶数,要求输出结果有序
3. 基于Java的Collection包,设计一个LRU的缓存,并需要考虑到线程安全.
2019.3.21(蚂蚁金服 网商银行微贷事业部 二面)
1.如果你不用hadoop,你怎么设计一个分布式系统
2.如果主节点没收到从节点的ack,但其实从节点没有挂,应该咋办
3.如果主节点挂掉了该咋办
4.jvm如何判定一个对象是否存活
5.可作为 GC Roots 的对象包括
6.jvm垃圾回收算法
7.什么情况下方法区会出现oom
8.写了一个类,有一个main方法,运行之后虚拟机经历了哪些过程
9.为啥准备阶段要给静态变量赋零值
10.BIO和NIO的区别
11.NIO Reactor模式
12.mysql索引的底层数据结构
13.linux查找某一个文件用什么命令
14.linux查看进程的内存使用情况用什么命令
15.如果这个进程没有在显示的列表里,该怎么查他的内存使用
2019.4.15(蚂蚁金服 支付宝 一面)
1.说一下你实习中,一个需求是如何从产品的描述到上线的
2.为什么要建一个新的代码分支
3.介绍下实习中做了哪些事,用到了哪些技术,遇到了哪些困难
4.==和equasl的区别
5.ArrayList和LinkList的区别
6.get和post的区别
7.如何保证http报文数据的安全
8.说下对称加密和非对称加密
9.说下乐观锁
10.死锁,以及该怎么处理
2019.4.17(蚂蚁金服 国际事业部 一面)
1.CAS
2.线程池
3.什么是面向对象
3.知道哪些设计模式,说下策略模式
4.观察者模式
5.在二叉查找树中查找一个数的思路
6.红黑树
7.8个硬币,1个是轻的,几次找出轻的,如果是11个呢
8.一屋子硬币,有1毛,5毛,1块的,如何估算每种硬币的数量
9.概率论还记得多少,问了下排列组合
10.说下正则表达式
2019.4.18(蚂蚁金服 国际事业部 二面)
1.十张图片,宽一样,高度不同,要分成两列显示,设计一个算法,使得两边图片的高度和差不多
2.怎么看待线上代码和实验室做实验的代码
3.如何保证高可用
4.平时的学习时间
5.觉得暑期实习能学到什么
6.实习和在学校学习有啥不同
2019.4.30(阿里中间件 一面)
1.hadoop的原理
2.kafka是如何存储的
3.kafka为何采用pull的方式
4.hashmap
5.currenthashmap
6.垃圾回收算法
7.synchronized和lock的区别
8.如何实现两个线程交替打印A,B
9.java的基本数据类型
2019.3.28(腾讯 提前批 一面)
1.redis的过期策略
2.redis有序set的底层数据结构
3.跳表的插入
4.kafka的写入速度为啥这么快
5.说说mapreduce大概是咋回事
6.hadoop的容灾
7.索引的底层数据结构
8.说说联合索引
9.linux抓包用啥命令
10.linux查看进程占用端口号用啥命令
11.为啥是四次分手
12.说说桶排序
2019.4.11(腾讯 正式批 一面)
1.设定如下的对应关系( A=1,B=2,C=3,...,Z=26,AA=27,AB=28,...,AAA=xxx,...),编写一个转换函数,根据上面的规则把一个字符串转换为数字
2.从单链表中找出中间的节点。
3.从一个整数数组中,找出递增的最长序列。
4.项目中觉得最难的地方在哪
5.kafka了解多少
2019.4.28(字节跳动 一面、二面)
1.LCS
2.排序数组中找两个数=目标值
3.数组中找3个数使其=0
4.redis的数据类型
5.zset的底层数据结构
6.redis的持久化
7.聚簇索引和非聚簇索引
8.mysql的存储引擎
9.最左前缀原则
10.CAS