个人简历地址: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. 布隆过滤器