面试相关整理

    1.自我介绍,包括做过项目。
    2.有看过哪些 JDK 源码,了解哪些常用库。
    3.集合框架 HashMap 的扩容机制,ConcurrnetHashMap 的原理
    4.jvm 内存模型与 gc 内存回收机制
    5.classloader 结构,是否可以自己定义一个 java.lang.String 类,为什么? 双亲代理机制。
    6.了解哪些设计模式,6 个设计原则分别是什么?每种设计原则体现的设计模式是哪个?
    7.关于设计模式看了哪些书?书名是什么?
    8.uml 模型图画过哪些? 类图中类之间的关系有哪些,区别分别是什么?
    9.画 uml 中类图时候用过一种虚线么?做什么用的?
    10.做过应用相关性能测试的,举个例子,实际项目中怎么使用的。
    用过并发框架相关的哪些内容
    11.了解哪些 osgi 的框架?
    12 有没有做过 jvm 内存调优,如何做的,举例子,用过哪些工具?
第二轮面试视频
    1.自我介绍
    2.看过哪些源码
    3.java 的 io 库的类结构图所用到的设计模式如何体现
    4.画出自己设计过的设计模式如何体现,画出结构图,并进行讲解。
    5.画出自己做的架构的项目架构图 如何扩展等
    6.数据库设计中主键 id 设计的原则
    7.jvm 内存调优用过哪些工具,jstate 做什么用的?如何 dump 出当前线程状态?
    8.并发框架是否有了解
    9.classloader 的双亲代理机制
    10.应用服务器的 jvm 调优实际经验,如何做的,在哪里用到的
    11.在哪里获取最新资讯,逛什么论坛。最新的 Swift 语言有什么看法
    12.设计原则与设计模式对应
    13.servlet/filter 作用原理配置
    14.ibatis in 操作 以及一个属性的作用
    15.spring aop 用了什么设计原则,自动注入配置是做什么用的
    16.jboss 的类加载器
    17.session 共享机制
    18.做过最成功的一件事情是什么?
    19.最大的争执是什么?
第三轮面试电话:
    1.现在公司负责什么?
    2.项目主要目的是做什么的?
    3.公司管理方式、项目问题反馈机制是什么?
    4.Java 的序列化做什么用的 序列化 id 会出现哪些问题?
    5.OSGi 用过哪些?类加载器结构如何,如何在一个 bundle 中加载另外一个 bundle 中的一个类?
    6.nio 是否了解 阻塞之后通知机制是怎样的?
    7.uml 设计类图如何画,类之间关系以及区别
    8.spring 如何不许要配置文件加载 bean 定义,可能是问自动注解或者是 properties 文件定义 bean
    9.ibatis 等框架是不是都是实际在使用的,技术细节
    10.为什么想离职去阿里
第四轮总监面电话面试:
    1.自我介绍
    2.公司做什么,业务, 负责内容,汇报机制等
    3.企业级应用安全相关
    4.http 协议,返回码,301 与 302 区别
    5.多线程并发用过哪些
    6.应用服务器相关,谈最熟悉的
    7.为什么离职


一面(1 hour):
    1. 面试官从简历里抽了一个较感兴趣的项目,让把项目简单介绍了下,针对项目问了几个技术问题
    2. 介绍 Java 中垃圾回收机制,程序员平时需要关注这个吗?为什么?请举例说明。
    3. 数据库隔离级别介绍、举例说明。
    4. override 和 overload 的区别。
    5. 求二叉树的最大距离(即相距最远的两个叶子节点),写代码。
    6. 两个栈实现一个队列,写代码。
    7. 你觉得你的优势是什么?有什么技术薄弱点吗?
    8. 目前手上有 offer 吗?
二面(40 minutes):
    1. 详细介绍研究生期间的小论文项目。
    2. 求二叉树的宽度,先简介思路再写代码。
    3. Hashmap、Hashtable 和 cocurrentHashMap 的区别,要讲出它们各自的实现原理才行,比如 Hashmap的扩容机制、cocurrentHashMap 的桶分割原理、多线程安全性。
    4. 进程调度算法,有哪些算法比较难实现?
    5. linux 下如何修改进程优先级?(nice 命令的使用)。
    6. linux 下性能监控命令 uptime 介绍,平均负载的具体含义是什么?建议看 server load 概念。
    7. linux 下如何调试程序?说到 gdb,具体如何调试?如何查看 core 文件中的堆栈信息等(bt 指令)。
三面(1 hour and twenty minutes):
    1. 介绍我研究生期间的论文,讲的很详细,每个点具体采用的技术、实现方法等,花了较长时间。
    2. 打印二叉树两个叶子节点间的路径,写代码(汗,百度这么喜欢问二叉树)。
    3. 字符串中第一个只出现一次的字符,如何优化算法使得遍历次数更少?
    4. socket 编程相关,如果服务器这边调用 write 写了 100 个字节的数据,客户端想要获得这个数据,是直接用 read 系统调用,参数也是 100 吗?
    5. 百度新闻缓存预算问题:一般为了追求时间性能,都需要缓存一些新闻数据,你怎么计算所需预算?然后申请需要的主机……
    6. 多线程的适用场景是什么?为啥要用多线程?
    7. 问是否会 go 语言,……
    8. 为啥对技术感兴趣,一些相关问题讨论。
    9. 聊北京、谈 offer。
    10.请简述 hadoop 怎么样实现二级排序?
    11.简述 hadoop 实现 join 的几种方法?
    12.请用 Java 实现非递归二分查找?
    13.请简述 mapreduce 中,combiner,partition 作用?


1、平台搭建类
 数据计算平台搭建,基础算法实现,当然,要求支持大样本量、高维度数据,所以可能还需要底层开发、并行计算、分布式计算等方面的知识;
2、算法研究类
 文本挖掘,如领域知识图谱构建、垃圾短信过滤等;
 推荐,广告推荐、APP 推荐、题目推荐、新闻推荐等;
 排序,搜索结果排序、广告排序等;
 广告投放效果分析;
 互联网信用评价;
 图像识别、理解。
3、数据挖掘类
 商业智能,如统计报表;
 用户体验分析,预测流失用户。

1、你在研究/项目/实习经历中主要用过哪些机器学习/数据挖掘的算法?
2、你熟悉的机器学习/数据挖掘算法主要有哪些?
3、你用过哪些机器学习/数据挖掘工具或框架?
4、基础知识
 无监督和有监督算法的区别?
 SVM 的推导,特性?多分类怎么处理?
 LR 的推导,特性?
 决策树的特性?
 SVM、LR、决策树的对比?
 GBDT 和 决策森林 的区别?
 如何判断函数凸或非凸?
 解释对偶的概念。
 如何进行特征选择?
 为什么会产生过拟合,有哪些方法可以预防或克服过拟合?
 介绍卷积神经网络,和 DBN 有什么区别?
 采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
 用 EM 算法推导解释 Kmeans。  用过哪些聚类算法,解释密度聚类算法。
 聚类算法中的距离度量有哪些?
 如何进行实体识别?
 解释贝叶斯公式和朴素贝叶斯分类。
 写一个 Hadoop 版本的 wordcount。
5、开放问题
 给你公司内部群组的聊天记录,怎样区分出主管和员工?
 如何评估网站内容的真实性(针对代刷、作弊类)?
 深度学习在推荐系统上可能有怎样的发挥?
 路段平均车速反映了路况,在道路上布控采集车辆速度,如何对路况做出合理估计?采集数据中的
异常值如何处理?
 如何根据语料计算两个词词义的相似度?
 在百度贴吧里发布 APP 广告,问推荐策略?
 如何判断自己实现的 LR、Kmeans 算法是否正确?
 100 亿数字,怎么统计前 100 大的?

答题思路
1、用过什么算法?
 最好是在项目/实习的大数据场景里用过,比如推荐里用过 CF、LR,分类里用过 SVM、GBDT;  一般用法是什么,是不是自己实现的,有什么比较知名的实现,使用过程中踩过哪些坑;
 优缺点分析。
2、熟悉的算法有哪些?
 基础算法要多说,其它算法要挑熟悉程度高的说,不光列举算法,也适当说说应用场合;
 面试官和你的研究方向可能不匹配,不过在基础算法上你们还是有很多共同语言的,你说得太高大上可能效果并不好,一方面面试官还是要问基础的,
    另一方面一旦面试官突发奇想让你给他讲解高大上的内容,而你只是泛泛的了解,那就傻叉了。
3、用过哪些框架/算法包?
 主流的分布式框架如 Hadoop,Spark,Graphlab,Parameter Server 等择一或多使用了解;
 通用算法包,如 mahout,scikit,weka 等;
 专用算法包,如 opencv,theano,torch7,ICTCLAS 等。
4、基础知识
 个人感觉高频话题是 SVM、LR、决策树(决策森林)和聚类算法,要重点准备;
 算法要从以下几个方面来掌握
    产生背景,适用场合(数据规模,特征维度,是否有 Online 算法,离散/连续特征处理等角度);
    原理推导(最大间隔,软间隔,对偶);
    求解方法(随机梯度下降、拟牛顿法等优化算法);
    优缺点,相关改进;
    和其他基本方法的对比;
 不能停留在能看懂的程度,还要
对知识进行结构化整理,比如撰写自己的 cheet sheet,我觉得面试是在有限时间内向面试官输出自己知识
的过程,如果仅仅是在面试现场才开始调动知识、组织表达,总还是不如系统的梳理准备;

你可能感兴趣的:(面试)