一线互联网面试总结

个人简历地址:https://www.linkedin.com/in/jiangxingqi/

阿里(蚂蚁金服-JAVA研发工程师 个人经验

一面(2018年3月6号)在线代码评测

https://github.com/jxq0816/alibaba-interview


二面(2018年3月7号)电话面试

一面程序题的拓展,长度改为小于等于,该如何修改程序

1、Java 虚拟机SVN的理解

https://blog.csdn.net/jxq0816/article/details/79454239

2、析构函数 栈内存 堆内存

https://blog.csdn.net/jxq0816/article/details/78757952

3、操作系统 分页的碎片如何解决

4、最近有看什么前言技术吗

当时回答了机器学习的心得

三面(2018年3月17号):视频面试

1、机器学习k-means算法,除了k-means还了解其他聚类算法吗

https://blog.csdn.net/jxq0816/article/details/79561201

2、视频去重算法

https://blog.csdn.net/jxq0816/article/details/79634776

3、介绍一下开放式基金与ETF基金,中证1000与中证500的关系

中证1000指数选取沪深300和中证500指数样本股之外规模偏小且流动性好的1000只股票组成指数样本,约代表A股市场12%左右的市值,用于刻画A股市场小盘股的整体表现,中证500指数是中证指数有限公司所开发的指数中的一种,其样本空间内股票是由全部A股中剔除沪深300指数成份股及总市值排名前300名的股票后,总市值排名靠前的500只股票组成,综合反映中国A股市场中一批中小市值公司的股票价格表现。

4、概述dubbo的原理,相比于其他RPC分布式框架,有哪些优点

http://blog.csdn.net/jxq0816/article/details/79441078

5、Aop的原理,属于代理设计模式,介绍一下代理模式。

代理模式所讲的就是现实生活中的这么一个概念:中介。

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

http://blog.csdn.net/jxq0816/article/details/79299077

http://blog.csdn.net/jxq0816/article/details/17795441

6、除了MongoDB,还了解哪些NoSQL(no only structed query language),相比之下MongoDB有哪些优点

7、简单介绍HDFS,reduce

https://blog.csdn.net/jxq0816/article/details/78563246

8、linux 统计一个文件夹下20个日志文件中exception出现的数量

9、Java 如何实现双向链表

腾讯(OMG事业群-研发架构组-个性化算法小组 个人经验)

一面(2018年3月15号)

数学建模的经历


中科院AI讨论班:NLP和预测模型

sql: 带索引的table count求和 ,mysql 存储引擎:InnoDB与Myisam

Linux: 常用哪些命令,查看CPU的占用率(top)

机器学习:K-means CNN KNN RNN

搜狐实习:主要做什么

最近有研究什么最近技术吗:回答自己最近在运营【机器学习】头条号,面试官立马拿出手机搜索了一下


二面(2018年3月21号)

1、数学建模的经历

数据建模的解决了什么问题,用到了什么算法模型

数学建模所承担的责任,如何带领团队

过程中面临的最大的困难,能够获奖的主要原因是什么

2、搜狐的实习经历

3、15-17年的工作经历,为什么要辞职考研,职业规划


百度知道数据研发分析工程师(2017年12月26号个人经验)

一面:

sql : 统计所有科目成绩都超过80分的学生

SELECT *
FROM score a 
WHERE a.`name` NOT IN (
SELECT DISTINCT(b.`name`) 
FROM 
score b 
WHERE b.score < 80
)

算法:

1. 如何检查链表有没有闭环,时间复杂度,空间复杂度

快指针pf(f就是fast的缩写)每次移动2个节点,慢指针ps(s为slow的缩写)每次移动1个节点,如果快指针能够追上慢指针,那就说明其中有一个环,否则不存在环。

这个方法的时间复杂度为O(n),空间复杂度为O(1),实际使用两个指针

2. 两个文件,一个文件500条数据,另一个50亿条数据,求出同时在两个文件都存在的数据

3. 函数:返回N阶回形矩阵

http://blog.csdn.net/jxq0816/article/details/78946094

数据结构:冒泡排序 快速排序 希尔排序的时间复杂度

http://blog.csdn.net/jxq0816/article/details/50181995

Linux: 

日志搜索

cat error.log | grep 'nick'
cat error.log | grep -C 5 'nick' 显示file文件里匹配nick字串那行以及上下5行
cat error.log | grep -B 5 'nick' 显示foo及前5行
cat error.log | grep -A 5 'nick' 显示foo及后5行

修改文件(vi 保存退出)

vi filename   //打开filename文件 
:w       	//保存文件 
:w filename //保存为指定文件 
:q          	//不保存修改并退出vi
:q!        	//不保存修改并强制退出vi
:wq         //保存修改并退出vi
:wq! 	//保存修改并退出vi(文件所有者忽略文件的只读属性)

查看当前进程(ps是process的缩写)

ps [选项]
-e 显示所有进程,环境变量
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
-a 显示终端上地所有进程,包括其他用户地进程
-r 只显示正在运行地进程
-x 显示没有控制终端地进程
二面:

solr的原理,为什么要用solr,用来查询什么数据,以什么为条件进行查询,如果以id为条件,相比于mysql有什么优势

Linux: awk 求和某一列,awk 求文件的行数,除了awk 还有其他命令可以求行数吗

机器学习:主成分回归,岭回归的算法,

hadoop:HDFS hive 

SQL: 求title字段的平均长度

select avg(length(title))
from push_temp;

left join right join inner join的区别

Java:spring 面向切面编程AOP原理

http://blog.csdn.net/jxq0816/article/details/17795441

京东搜索(2017年12月11日个人经验)

一面(现场手写程序)

现场编程

1.非递归单链表逆转

2.删除字符串中指定字符

3.实现删除制定字符

拓展题

题目:有10000个字符,将这些字符平均存放在n个集合中,要求相同的字符存放在同一集合中,不同集合中的字符数量大致相同。

思路:

①预定义hashMap,将字符及其对应的集合关系,存储在hashMap中;

②将第i个字符A存入集合

首先检查Hashmap中是否存在字符A,如果存在,则将字符A存入对应的集合(解决了相同的字符存放在同一集合的要求);

如果hashmap中不存在该字符,则将该字符存入第i%5个集合(解决了不同集合中的字符数量大致相同的要求);

二面(现场手写程序)

1. 两个有序数组合并,时间复杂度O(M+N)

2. 有一千万个数字,求出1000个最大数据集,要求时间复杂度为N,不能用队列遍历最大数据集,最后没有回答上来

3. 字符串==与equals的区别考察,String s=new String("abc");用到了哪些存储空间,

4. Hadoop MapReduce

5. 数据库 Inner Join 和 out Join的区别,回来查了一下out Join包括(left join,right join,full join)

left join 会返回左表所有的行,即使右表没有匹配的行

right join 会返回右表所有的行,即使左表没有匹配的行

full join 会返回左表和右表的所有的行,即使彼此没有匹配的行

6. HashTable,HashMap和 currenthashmap 的区别

ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求。

http://blog.csdn.net/jxq0816/article/details/43059571

搜狐(2017年11月22日 个人经验)

1. JVM调优,内存溢出的解决方案(2017年12月28号研究生第一学期结束,课上傅老师分析内存溢出,可以用持久化消息中间件来解决这个问题)

import java.util.HashMap;
import java.util.Random;
import java.util.WeakHashMap;

public class Main {

    public static void main(String[] args) {
        WeakHashMap map=new WeakHashMap();
        for(int i=0;i<100000000;i++){
            Double random= Math.random();
            map.put(random,random);
        }
        System.out.println(map.size());
    }
}

2. TCP/IP四层协议(物理层,数据链路层,网络层,传输层),三次握手

3. 问我熟悉Java哪一部分,集合,多线程中选一个,问了hashtablehe和hashmap的区别,HashMap的内部存储结构

4. 设计模式之装饰器模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。


新浪(2017年12月13日 个人经验)

感觉是面试最差的一次,和面试官不在一个频道上

1. floyd算法优化

2. 面试官让我聊一聊使用过的技术,不聊业务

3. 有没有搭建hadoop集群的经验

IGT(2017年12月20日 个人经验)

1. 英文自我介绍

2. Java基本数据类型(热身)

Java语言提供了八种基本类型。
六种数字类型(四个整数型byte short int long,两个浮点型 float double)
一种字符类型 char,还有一种布尔型boolean。

3. String 是否可以重写(不能,因为已经被申明为final类型)

 StringBuilder和StringBuffer的区别(StringBuilder:线程非安全的,StringBuffer:线程安全的

4. 关于static的理解,静态代码块,构造代码块,构造方法的执行顺序

http://blog.csdn.net/jxq0816/article/details/78867037

5. 子类和父类关于异常的讨论

6. 算法题

张三有m块钱,购买单价n元的饮料,喝完以后,x个瓶盖可以兑换b1瓶饮料,y个瓶子可以兑换b2瓶饮料


搜狗数据分析(2017年12月28日 个人经验

1. NLP

2. 深度学习CNN

沪江AI算法(2017年12月28日 个人经验

1. 数学建模的经历

2. NLP

3. K-means算法

4. 索引 分区 

5. solr应用场景 以什么字段为主键 负载量多少

嘀嘀数据分析

1. MySQL 所支持的数据类型

2. 查询每个人最近的打车记录

3. 使用Java或Python查询每个字符串出现的次数

美团(jiaoyang分享)

1. 算法:单链表插入、冒泡算法。 

2. JVM底层内存模型 

3. HTTP两次访问统一地址的区别 CHECK类型

4. GC G1的内容 

5. SpringMVC的AOP和IOC 

6. 数组和list的区别以及性能问题

7. URL如何去重,队列的使用 

8. 爬虫的架构 

9. 布隆过滤器

猜你喜欢

转载自blog.csdn.net/jxq0816/article/details/71083961