2019.9.9现场面
通用软件开发工程师


一面:

  1. 笔试题第一题思路
  2. 笔试题第二题思路
  3. 笔试题第三题思路
  4. 介绍实习所做的内容
  5. 介绍实习所用的技术栈
  6. 介绍nlp分类模型
  7. 为什么选用结巴分词?
  8. 有没有更好的选择?
  9. 训练词向量的过程
  10. 分类模型的流程(各部分功能)
  11. static有哪些作用?
  12. 说几种排序算法(快排、堆排、归并)
  13. 画图讲解堆排序的全过程
  14. 手撕代码1:求n!
  15. 手撕代码2:反转字符串中的每个小字符串并输出,输入的字符串中有下划线。
    如abc_def_gh,反转后的结果cba_fed_hg
  16. 手撕代码3:求二叉树所有叶子结点的和
  17. 手撕代码4:手写单例模式

二面:

  1. 说说你所有项目中的亮点有哪些
  2. 学校项目的整体结构设计
  3. 实习项目的整体结构设计
  4. 加盐hash加密算法的流程
  5. 为什么要用redis
  6. 有缓存情况下查询的流程
  7. 有缓存情况下修改的流程
  8. spring boot和spring 的区别
  9. aop如何实现
  10. 动态代理有几种
  11. 静态代理和动态代理的区别
  12. 动态代理与反射
  13. 项目如何进行分布式部署
  14. spring cloud如何进行配置
  15. 缓存命中率低会发生什么?
  16. 如何解决缓存穿透?
  17. 怎么样过滤掉不存在的key值?
  18. 布隆过滤器的原理
  19. gc的过程
  20. system.gc()是否可以立刻出发gc
  21. 如何立刻触发gc()
  22. 描述二叉树如何实现dps和bfs(非递归)
  23. dfs和bfs的区别
  24. 各自举出一个只能用dfs和bfs的场景
  25. 手撕代码1:
    以下代码是否有问题?
    有什么问题?
    补充代码解决这个可能的问题。
    public class A{
    int val;
    A(int x){this.val=x;}
    }
    A a=new A(1);
    A b=new A(1);
    HashMap<A,Integer> map=new HashMap<A,Integer>();
    map.put(a,1);
    map.put(b,1);
  26. 手撕代码2:输出以1开始的n个正整数(1,2,...,n)的第k个排列。(要求回溯法)

三面:

  1. 介绍学校项目的内容
  2. 深度学习部分如何与后端项目结合
  3. nlp的步骤
  4. 分词的原理
  5. 使用wordtovec训练词向量的原因
  6. 有没有更好的选择?
  7. 下一步的科研计划
  8. 概率论学了什么内容
  9. 概率论如何与深度学习结合
  10. 神经网络学习的原理
  11. 反向传播算法
  12. 训练集和测试集的比例
  13. 分类模型的各步作用
  14. 为何要使用双向的循环神经网络
  15. 注意力机制层的作用
  16. 训练中如何调整注意力机制层的权值
  17. 为什么可以在nlp中使用卷积神经网络
  18. 全连接层如何连接
  19. softmax分类器的原理
  20. 科研项目使用的框架
  21. 实验中你调整了哪些参数
  22. 数据集的来源
  23. 分词前是否还需要额外预处理
  24. 你觉得还需要多少数据量合适
  25. 了解哪些机器学习方法
  26. 决策树和神经网络的区别
  27. SVM和神经网络的区别
  28. 深度学习相比机器学习的优点有哪些
  29. 深度学习自身存在哪些缺点
  30. 在项目里担任什么角色?
  31. 如何处理冲突?
  32. 实习时如何进行项目对接?
  33. 自己的优/缺点
  34. 10年内的工作规划
  35. 以后想要在哪个城市工作
  36. 校招选择工作时的标准