本篇博客旨在记录我求职的过程,给有相同需求的同学提供参考。目前还在完善中,有想了解详细情况的也可以交流,求职不易。。。
基本情况
- 1年工作经验,本科学历:重庆大学软件工程;
- 掌握技能:java精通、spring全家桶、常用中间件、数据库、数据结构与算法、计算机网络基础,这里花了一个多月时间做准备,具体准备的知识见本人知识类文章;
- 求职目标:在重庆/成都找一份1w+的工作,在高工资和不加班之间权衡;
- 求职时间:2020/7-
- 求职渠道:各大公司官网(具体有哪些较大体量的公司可以知乎或者百度,大部分机会都在北上深杭广,这对我来说也是不得不接受的一个事实),各类求职软件(猎xx、xx钩、bossxx,这三个软件使用体验都还不错,反馈较快,推送积极,个人体会不打广告。。)
面试记录
仅记录过简历关的:
- 兴业数金
- 形式:牛客网机试
- 问题:第一战,准备不足,笔试挂,具体题目已经忘了
- 圭目机器人
- 形式:线上笔试,由HR发笔试题word,要求一小时内完成
- 问题:应聘的是java岗,但笔试题全是c++的,挺无语,笔试超时答题也不理想,挂
笔试内容可私~
- 久远银海
- 流程:电话面(技术面)、现场面(现场笔试、hr面、一面、加面)
- 电话面:自我介绍,主要是java基础和spring、具体项目,没有问算法
- 现场笔试:题量较多、难度简单、单选20道+多选10道+代码题1道+sql题3道,1小时完成,主要是java基础、spring基础、sql基础,
代码题是打印九九乘法表,sql题考查表连接、分组语句等,是不是很简单… - hr面:谈了一些常见问题,个人规划、期望薪资、公司情况介绍(业务、福利、出差、加班等)、学习能力
- 一面:innodb的索引实现原理,b+树的优点,索引创建需要注意什么,spring启动过程,如何给已实现系统添加日志功能,如何启动加载缓存等
- 二面:索引失效场景,bean生命周期
笔试内容可私~
- 梦创双杨
- 流程:视频面试(一面技术面)、线上笔试、电话面试(二面主管面)
- 一面:cookie和session的区别和联系,spring事务传播类别、隔离级别
- 二面:问题有:@component和@bean的区别和联系,先加载谁,spring事务传播失效场景,索引的使用
- 新华三
- 岗位:sdn控制器开发
- 方式:线下
- 流程:1.现场笔试 2.一面 3.二面
- 笔试:题量较多、难度适中,比较难的是单选多选交叉,需要仔细判题,简答题6道(==和equals的区别,抽象类和接口的区别,多线程同步方式,内存泄漏的场景等),代码题3道(进制转换,随机字符串生成,文件读取逐行打印)
- 一面:面试官比较亲和,问题围绕项目经历,问了synchronized关键字,中间件的掌握情况、数据库慢查询优化和项目难点解决
- 二面:主管面,面试官态度严肃,有压力面试的感觉,先是围绕我的项目提问,然后问了基础:hashmap版本区别、数组和链表区别等,一道算法题:两个乱序数组,找出公共部分
- 华为OD
- 机试题:
1)100个人绕成一圈报数,报到k的人出局,下一个人从1开始报数,直到剩余人数小于k结束,最后剩余的人的初始序号。
2)n个小学生排成一排,从最后一个学生开始往前找第一个高于他的学生就是他的好朋友。。。
3)生成多叉树。
- 腾讯
一面:JMM,JVM内存回收算法,synchronized锁升级,synchronized和Lock的区别,数据库优化方法,B+树和B树区别,redis缓存穿透、击穿、雪崩概念解释和解决方法,一致性哈希,spring自动装配,spring事务传播;算法题:检测一个字符串中的符号是否对称:
/**
*考察栈的使用
**/
public static boolean helper(String s) {
Deque<Character> stack = new ArrayDeque<>();
for (int i = 0; i < s.length(); i++) {
char tmp = s.charAt(i);
if (tmp == '(' || tmp == '[') {
stack.push(tmp);
}
if(tmp == ')'||tmp == ']') {
if(stack.isEmpty()){
return false;
}
char c = stack.pop();
if ((tmp == ')' && c != '(') || (tmp == ']' && c != '[')) {
return false;
}
}
}
return stack.isEmpty();
}
-
深绘智能
一面(电话面):问个人情况,用到哪些设计模式,oracle和mysql的区别,一道简单的sql题,redis缓存雪崩、缓存击穿、缓存穿透的概念,线程死锁的检测和预防。 -
佰钧成(外包公司?)
一面(电话面):Collection和Collections的区别,集合类有哪些实现,线程实现的方式,线程同步方法,线程池使用,数据库优化方法,Object类的常用方法,clone是深克隆还是浅克隆,如何重写clone方法,equals和hashCode关系。
二面(华为的面试官):面试官风格:问细节,一直问到不会为止
map、set、list区别
HashMap线程不安全体现在哪里
LinkedSet和List的区别
多线程三种实现方式,可返回结果的,可获得终止状态的
线程的几种状态,runnable到running的条件
wait和sleep的区别
线程池参数,几种实现
AQS介绍,如何实现公平锁、非公平锁
volatile如何保证线程间可见(提示:总线嗅探、缓存行)
八大原子操作 use和asign的顺序
Spring Ioc和Aop介绍
Ioc的意义
动态代理 jdk和cglib的区别
单例模式的几种实现方式
mysql 两种存储引擎的区别
Mybatis mapper接口绑定实现原理(动态代理:SqlSession、MapperProxy)
redis几种数据类型,set、list区别
redis集群方案
主从和哨兵区别
rocketmq保证消息不丢失 -
返空汇
笔试:现场笔试,题目基础有些刁钻,当然大部分原因是我太菜,主要涉及:基本类型转换和强转;方法重载参数数相同类型不同传null值,传数字;几种集合类的扩容机制(HashMap、ArrayList等);类继承代码加载顺序;switch()传null值报空指针; -
聚思力(Synnex)
一面(现场面):面试问题:面向对象特点、具体实现和应用;介绍多线程;介绍集合类;mysql设计业务表并查询 -
太平洋保险
-
多点