面试2019.3.24

1哈希算法

常用hash算法的介绍

https://www.cnblogs.com/GotoJava/p/7571405.html

https://blog.csdn.net/Beyond_2016/article/details/81286360

2JVM内存溢出

https://www.cnblogs.com/dingyingsi/p/3760447.html

或者深入理解JAVA虚拟机第二章

3JVM 内存分析工具

深入理解JAVA虚拟机第四章

1. 输出GC日志

JVM支持将日志输出到控制台或指定的文件中,方法有如下几种(配置启动参数):输出到控制台, 输出到指定的文件

2. GC Portal

Sun提供了一个GC Portal来帮助分析这些GC日志,并生成相关的图形化的报表

3. JConsole

JConsole可以图形化查看JVM中内存的变化状况,JConsole是JDK 5及以上版本中自带的工具,位于JDK的bin目录下

运行时直接运行JConsole.exe或JConsole.sh(要求支持图形界面),同时,JConsole也支持查看远程的JVM的运行状况

JConsole中显示了JVM中很多的信息:内存、线程、类和MBean等

4. JVisualVM

JVisualVM是JDK 6 update 7之后推出的一个工具,它类似于JProfiler的工具,基于此工具可查看内存的消耗情况、线程的执行状况及程序中消耗CPU、内存的动作。

4. JMap

JMap是JDK中自带的一个用于分析JVM内存状况的工具,位于JDK的bin目录下。使用JMap可查看目前JVM中各个代的内存状况、JVM中对象的内存的占用状况,以及导出整个JVM中的内存信息。

5. JHat

JHat是Sun JDK 6及以上版本中自带的一个用于分析jvm堆dump文件的工具,基于此工具可分析jvm heap中对象的内存占用状况、引用关系等。

6. JStat

JStat是Sun JDK自带的一个统计分析JVM运行状况的工具,位于JDK的bin目录下,除了可用于分析GC的状况外,还可用于分析编译的状况、class加载的状况等。

7. Eclipse Memory Analyzer

Eclipse Memory Analyzer是Eclipse提供的一个用于分析jvm堆dump文件的插件,借助这个插件可查看对象的内存占用状况、引用关系、分析内存泄露等。

4 JVM CPU占用过高排查

5 设计一个推荐系统需要哪些模块

面试2019.3.24_第1张图片

可知,一个推荐系统主要有以下模块组成:

  • 用户行为日志:此部分主要是用户行为日志的存储,属于数据统计的一部分, 存储在hive中。 

  • 数据ETL-1:将用户日志转换为推荐算法所需要的数据格式。对原始的用户行为等数据进行清洗、加工,如字段、属性、格式化等,作为下一步推荐算法的输入。

  • 推荐算法:是个性化推荐最主要的部分,包括通过用户行为计算相关内容以及推荐结果等。 

  • 数据ETL-2: 将推荐算法得到的结果进一步加工为存储模块的输入数据。对推荐算法产生的结果进行清洗、格式化等,作为下一步存储模块的输入。

  • 用户画像存储:存储用户的偏好以及行为数据,如对内容关键字的偏好、点击过哪些内容等。

  • 推荐结果存储:存储各种推荐算法产生的推荐结果,可以分为两部分:{用户 : itemList}推荐结果,为用户推荐的内容列表;{item : itemList}推荐结果,与item相关的内容列表。

  • 服务调用模块:整合推荐结构,对外提供提供推荐的调用接口。

https://www.cnblogs.com/wade-luffy/p/6358988.html

https://www.cnblogs.com/kobedeshow/p/3569525.html


 

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