moka java实习生面试
刚整理资料发现还有几篇公司的面经没有上传
- 项目(请销假)逐层审批管理技能树怎么实现的?如何确保请假的单送给的自己老师,以及老师怎么做到只看到自己的学生?
(数据库里增加一个字段,还有仿照今日校园可以每次请假递交的时候选择老师)没有学生和辅导员绑定关系
- 延伸了很多关于这个项目(可能这个公司也在做HRsass的原因)
- 项目亮点(自己从零到一完成的项目)
- redis使用场景(缓存验证码、提高并发)
- redis常用命令
- 常用的数据结构(5+3)
- 大致看过redis更底层的东西吗?(单线程、IO多路复用)
- 为什么单线程速度还快(存在内存、避免上下文切换,IO多路复用优于非阻塞)
- 事务的隔离级别
- 脏读和幻读(insert delete)
- 写sql注意哪些点(连接查询有索引的表当被驱动、避免索引失效。。。避免!=)
- Hashmap实现原理(基本八股,链表和八股)
- 重写equals和重写hashmap(特点和他们之间的关系)
- Hashmap会造成环形链表(插入操作等 八股)
- 解决方式是什么?(hashtable、concurenthashmap)
- concurenthashmap怎么解决线程不安全?(分段锁)
- Linux常见命令(以及使用频率)(增删改查)
- 补全代码(例如getSub(3))返回list(后端研发组、后端实习生组、前端研发组)
import import com.sun.javafx.tools.packager.MakeAllParams; import java.util.ArrayList; import java.util.List; public class DepartmentTest { public static void main(String[] args) { List<Department> allDepartment = new ArrayList<>(); Department dep1 = new Department(1, 0, "北京总部"); Department dep3 = new Department(3, 1, "研发中心"); Department dep4 = new Department(4, 3, "后端研发组"); Department dep6 = new Department(6, 4, "后端实习生组"); Department dep7 = new Department(7, 3, "前端研发组"); Department dep8 = new Department(8, 1, "产品部"); allDepartment.add(dep6); allDepartment.add(dep7); allDepartment.add(dep8); allDepartment.add(dep1); allDepartment.add(dep3); allDepartment.add(dep4); List<Department> subDepartments = DepartmentTest.getSub(3, allDepartment); for (Department subDepartment : subDepartments) { System.out.println(subDepartment); } } /** * 根据id,获取所有子部门列表(包括隔代子部门,一直到叶子节点) * 要求:不能新增参数,不能增加static变量 * @param id * @return */ //递归找pid public static List<Department> getSub(int id, List<Department> allDepartment) { List<Department> all = new ArrayList<>(); for(Department de :allDepartment){ if(de.id = id){ digui(Department de, allDepartment,all); } } //} public void static digui(Department de,allDepartment,all){ //出口 if(de = null){ return ; } for(Department de1: allDepartment){ if(de.pid = de.id ){ all.add(de1); digui(de1,allDepartment); return all; } } } return null; } } class Department { /** id */ private int id; /** parent id */ private int pid; /** 名称 */ private String name; public Department(int id, int pid, String name) { this.id = id; this.pid = pid; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Department{" + "id=" + id + ", pid=" + pid + ", name='" + name + '\'' + '}'; } }
- 反问?主要工作
主要hrsass ,从招聘到发放offer
ehr体系(部门等等管理)
实习生主要做人事中专调离等