小公司面试
就不对每个小公司单独发帖了,放在一起算了。
03.18
学校招聘会投的小公司,约的线下面。上来先30分钟笔试,给的卷子题目非常基础,批改后才面试。
自我介绍,描述项目架构;面试官看了眼卷子,觉得做的不错。 开始询问,了解公司吗,了解公司工位吗,是否接受调剂,所在籍贯,接受加班吗,意向薪资多少,是否接受低代码开发,是否接受两个月出省培训,是否接受培训后考核。 叭叭叭地讲了半天,简要的意思是实习生150一天,主要低代码开发,先得到合肥培训两个月(100一天),考核后留下后,等转正具体再说。
呃呃呃呃,一点八股没问,问半天就是让人做牛马,两三小时来回的收获只有:一面试前提前了解公司,二别投小公司。😅😅😅😅
04.15
BOSS上投递近800份中第一个约面的,所以很期待的,但是现实是10分钟结束战斗,呃呃呃,一下子就尬住了。
-
想找一份什么样的实习呢?最近三年的职业规划呢?毕业之后打算在哪找工作呢?
-
SpringAOP
-
动态代理的具体原理
-
下述SQL语句左连接结果是什么,那右连接结果呢?
-
对于一个近百亿的字符串集合和一个小集合,如何求它们的一个交集?
-
幂等性
-
分布式锁怎么样去实现?
-
实习时间怎么样去保证呢?到岗时间大概是什么时间?实习期的薪资要求呢?
04.16
学校招聘会。
- Java的基础数据类型有哪些,其数据范围是多少?
- Spring的常用注解
- 什么是死锁,导致的原因,如何解决?
- 表的连接查询是如何实现的?
- 如何设计一个表,给出你的案例?
04.18
广州千人能源厂,十三分钟结束战斗,无八股,无算法。
-
个人介绍
-
项目的来历,是比赛还是个人兴趣,项目成员有哪些,你的责任是什么,项目由谁发起?
项目带来的收获,遇到了什么困难?
能实习多久,一直到毕业的这段空余期打算怎么安排?
-
你说你维护用户30天的活跃度,进而维护月排行榜,可是我一个月不固定30天,你怎么解决?
-
反问
- 略
- 此时面试官反问我,是否打算学习前端vue,什么时候打算学,个人发展想法,是否就任学生会?
这一场面试唯一的收获就是排行榜的问题,难道除了互联网厂,其他厂找实习其他都是这么随便吗?不懂
急了,就问一个技术问题,我也答出来了。难不成因为不愿意学VUE就直接挂了吗,之前原本都没提过这一嘴,就是反问的时候突然冒出来的。呃呃呃呃呃呃。
04.24_杭州小公司
杭州小公司,开发销售软件的。30分钟全程八股,无算法,无项目,答得还不错。
-
起手自我介绍,项目是个人的还是公司的,什么时候毕业?
-
开发项目遇到的困难?
-
TCP建立连接的过程
-
建立TCP连接的序列号是固定的,还是随机的?
-
TCP断开连接的过程
-
TCP如何保证包序?
-
对Java中的集合的理解,具体到每一个实现类
-
HashSet如何保证key不重复?
-
对 对象 又如何保证这个元素不重复?
-
如何定义你的
hashCode()
方法? -
对多线程的理解
-
对线程的状态的理解
-
为什么有了线程还要有线程池?(即线程池的作用)
-
线程池的拒绝策略
-
创建线程池的方式
-
什么是CAS?
-
什么叫自旋?
-
什么情况适合CAS,什么情况下不适合?
-
对AQS的理解
-
使用线程的感受?
-
了解哪些设计模式
-
对模版方法模式的理解
-
什么是红黑树?
-
MySQL的一级缓存和二级缓存
-
MyBatis的动态传参有
#
和$
两种方式,他们之间的区别是什么? -
什么是数据库的事务?
-
什么是事务的隔离级别?
-
什么是幻读?
-
数据库的索引有哪些?
-
重定向和转发的区别,他们的状态码分别是什么?
-
什么时候需要用到索引?
-
final
修饰的字段和变量分别代表什么含义? -
String
、StringBuilder
、StringBuffer
的区别? -
Spring的事务的传播行为有哪些?
-
Spring的ApplicationContext的创建方式有哪些?
-
反问
略
04.24_深圳小公司
深圳ai小公司,四十分钟的面试,面试官没开摄像头,而且简历也是现场找来看的,感觉一般都这样,反正开场等了好一阵。问的好多都是开放题,汗流浃背了,但是几乎每个问题面试官都有总结和回答,体验非常的好。
无算法题。
-
先是自我介绍,然后询问个人情况,略
-
平时有用过ai吗,ai的模型原理有了解,对ai影响开发的现象是如何看待的?
-
我看你项目中“使用自定义的雪花算法生成 TraceID,结合 AOP 记录接口访问日志”,你的日志是怎么保存的,保存在哪里的?
我:打印到控制台,同时保存在本地文件
面试官:日志保存在本地文件,那么查询十分的繁琐,有尝试保存在哪些数据库比较好呢?
我:MySQL,其他数据库不了解
面试官:MySQL不是存储日志的最佳选择,因为日志信息通常是纯文本的,且日志数据量通常比业务数据要大得多,而且大部分时间这些日志数据可能并不会被使用。只有在需要时,日志数据才会起到辅助作用。而MongoDB和ElasticSearch这两种数据库都非常适合存储日志信息。
-
Integer的缓存机制有了解吗
我:Integer会缓存-128到127之间的整数对象
面试官:具体的缓存机制是怎么实现的,这么说吧,
Integer.valueOf(int)
和new Integer(int)
的区别是什么,谁更优?后面的问答略,属于八股问题
-
开放题:为什么String要设计为不可变?
-
对字符串拼接,String进行
+
和StringBuilder进行append
,谁更快,为什么? -
开放题:为什么已经有
ArrayList
,还要有数组? -
开放题:
HashMap
和LinkedHashMap
的区别,性能谁更优,为什么? -
线程池拒绝策略
-
对ThreadLocal的理解,和其具体使用场景?
-
volatile具体是如何工作的,它能替代锁吗?
-
开放题:设计一个容器能够每秒接收新数据,然后定期将数据批量插入到数据库中,你如何设计,需要考虑什么问题?
-
开放题:如何设计一个接口,能够让用户通过接口下载大量(如1亿条)的数据?
-
你的项目难点?
我:用户活跃度的幂等判断,直接开背
面试官:用户活跃度的概念是什么呢?
我:继续解释
面试官:所以活跃度是指用户对平台有效且积极的操作,那么你怎么保证接口的幂等呢?
我:继续背
面试官:不是不是,这里是指在活跃度频繁更新的情况下,你如何判断别人是在刷接口还是真的是活跃度呢?
我:检测频率,然后对异常的用户放黑名单
面试官:那么在你检测到之前,网络带宽、服务器性能被这部分占去一大半了,你怎么解决?
我:直接从业务层面改,“活跃度是指用户对平台有效的操作”,即不做活跃度的删减判断,那么对一个文章可操作的次数是非常有限的。
面试官:限流也可以吗(面试官都无语了,就是想让我答出限流)
我:噢噢,也可以
-
反问:略
04.28_上海小公司
发了消息早上就约面,但是迟到了20分钟,感觉对方好像很忙的样子,闲聊了一阵就发道题,讲了下思路,面试官讲了改进方式,然后就结束战斗,无八股、无项目。唔,先这样吧。
题目:
直接双指针,需注意,除了分隔符以外的都可以被视为单词,比如"PD2"。
package liam;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
class Main {
public static void main(String[] args) throws FileNotFoundException {
FileInputStream in = new FileInputStream("C:\\Users\\Liam\\Desktop\\License.txt");
Scanner scanner = new Scanner(in);
StringBuilder sb = new StringBuilder();
while (scanner.hasNextLine()) {
sb.append(scanner.nextLine());
}
String s = sb.toString();
Map<Character, Integer> cnt = new HashMap<>();
Map<String, Integer> cnt2 = new HashMap<>();
Map<String, Integer> cnt3 = new HashMap<>();
for (int i = 0, j = 0; j < s.length(); i = j) {
while (s.charAt(j) != ',' && s.charAt(j) != '.' && s.charAt(j) != ' ') {
++j;
}
if (i != j) {
String curr = s.substring(i, j);
for (int k = 0; k < curr.length(); ++k) {
char c = curr.charAt(k);
if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) {
cnt.put(c, cnt.getOrDefault(c, 0) + 1);
}
}
cnt2.put(curr, cnt2.getOrDefault(curr, 0) + 1);
if (curr.length() >= 2 && curr.substring(0, 2).equals("PD")) {
cnt3.put(curr, cnt3.getOrDefault(curr, 0) + 1);
}
}
++j;
}
// Output the results to a file
PrintWriter writer = new PrintWriter("C:\\Users\\Liam\\Desktop\\Output.txt"); // Replace with your output file path
writer.println("Character counts:");
cnt.forEach((key, value) -> writer.println(key + ": " + value));
writer.println("\nWord counts:");
cnt2.forEach((key, value) -> writer.println(key + ": " + value));
writer.println("\n'PD' word counts:");
cnt3.forEach((key, value) -> writer.println(key + ": " + value));
writer.close();
scanner.close();
}
}
04.28北京小公司
发完消息的第二天就约面,基于低代码开发分布式内容,但核心业务还是自己开发。
面了22分钟,大概八股、项目、算法都稍微问了一下,感觉好像很缺人的样子。害,不知道结果怎么样。
-
闲聊
- 目前所在地,何时能到岗,为什么不考研?
- 省赛银牌的个数一共多少?
- 平时看什么技术书籍?
- 接下来如果想在工作公公司这边实习,你期望得到什么?抗压性怎么样?
-
算法(开屏幕共享)
给定
List<Integer>
,找到第一个不重复的元素,若不存在则返回null。- 要求时间复杂度小于,且额外开一个容器维护。
- 在原本代码基础上,流化操作
-
下述结果是什么,为什么这样?
-
并发编程在项目中如何使用的? 直接开屏幕共享指出来,第一次遇到真的看项目源码的。
-
CountDownLatch
是什么,为什么不用CountDownLatch
而是用CompletableFuture
? -
MySQL的默认事务隔离级别是什么,读已提交是什么?
-
反问
略
后悔去上面这家北京的小公司了,虽然不做低代码开发,有MT带,但是压力拉满了,非常规范以至于严格苛刻的状态,领导还压力人。每天开会,每周考察,每月考察,不知道该去向何方。排了一个月的测试内容。
干了一周回来了。
05.07
学校宣讲会投的广西民营的上市大公司,过了一周多约面,因为在小公司实习做牛马,约的晚上8:30,面试官在家里面,小孩一直在抢眼,面了14分钟。下面非技术问题省略:
- 对并发编程的理解
- Spring的基本原理
- 小程序从开发到发布需要准备什么,需要准备什么?
- 对MySQL索引的理解
- 后端如何跟前端对接?