周日一面面试官打了2次电话,那天没怎么看手机,都没接到。
后来添加了微信,面试官和我约了面试。
分别记录一下我的面试经历吧,每次面试都是一次学习哦
小冰一面--电话面
1.是否离职,离职原因(大家都问,如实回答就可以了)
2.有没有意向的工作地点,目前offer情况(工作地点我都还ok)
3.看你实习,在st和sk,正式工作也在sk,为什么正式工作后从sk跑到了jx?
(今天下午鼎对科技的面试官也问了我同样的问题,因为大家可能都觉得在sk的这段经历和项目都还蛮ok的,不理解为什么。其实现在回过头来,觉得有2个原因:整个集团大环境的偏斜;个人技术栈的广度提升node-java)
4.对比你在st和sk和jx,这些工作氛围是怎样的?(哈哈哈,期间面试官还有和我谈st和sk的大boss,因为小冰是ai独角兽嘛,后来才发现都是ai大boss哈哈哈,感觉工作10年多的大佬和我们工作不久的孩子的关注有区别,哈哈哈,从种种方面感觉面试官很nice)
(大实话,st的技术氛围略胜一筹)
5.在sk和jx的工作时间是怎样的
6.看你的博客很早就开始写了,是在大学期间就像开始工作嘛
(很少有面试官能从那么细致的了解关于我的信息,一般大家都是各种考题,所以感觉tl和td还是注重的点有区别的)
7.看到你的成绩不错,大概怎么个分子分母;那么不错,怎么没保研?
8.你经常搞csdn,上学期间和工作期间怎么平衡的学习
9.如果有机会回老东家,你是回去还是去新公司,原因是什么
10.你期待的工作内容是怎样的?角色是怎样的?项目怎样的
11.看到你过去一年有晋升和加薪,你认为为什么会得到?了解下你的职级?
(谈到这些,我还是很感谢之前ld对我的信任,让我在平台上把事情做成,也很感恩之前的同事对我的帮助。当时我提到了我开发前会确保无任何卡点,把开发的内容包括接口、出入参、db全部设计好后才会开发,面试官有问到我这是公司的要求还是,其实在sk是无要求的,是我自发的;在jx是有这样明确要求的)
12.开始考技术问题了。如果mysql查询延迟比较大怎么办?
加索引、一次查的数据量过大改为多次查询
13.mysql和es的数据存储在哪里
因为mysql我有一阵研究过他的数据存储在哪所以我知道,es的也是存储在硬盘啊,怎么可能存内存???
14.索引,是什么数据结构
15.平时怎么debug的,stepin和stepover的区别
ide的debug,哈哈哈还有输出日志的方法,面试官不说我都忘了,天天都在debug,,当然stepin是进入函数了,stepover不进入函数去了
16.后来面试官问了我几个硬件的问题,都是考的性能,给我干蒙了,因为之前确实没有太关注过硬件的性能。
1)高速缓存cache一般多大,(面试官说一般上百KB)
2)CPU到内存和外设的pc2e总线能有多少mb每秒
3)面试官说有没有google编程大神的,关于程序员要懂得网络延迟,感觉面试官追求技术的狂热
每个程序员都应该知道的延迟数字 - 知乎
17.考一下算法,广度优先和深度优先
深度优先:主要思路是从图中一个未访问的顶点 V 开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路开始走到底...,不断递归重复此过程,直到所有的顶点都遍历完成,它的特点是不撞南墙不回头,先走完一条路,再换一条路继续走。
下图深度优先:1 2 5 9 3 6 10 7 4 8
广度优先:广度优先遍历,指的是从图的一个未遍历的节点出发,先遍历这个节点的相邻节点,再依次遍历每个相邻节点的相邻节点。
18.linux常用命令?显示进程的命令
我就写写我经常用的吧 pwd cd mkdir ls ps | grep find where Linux:20个linux常用命令 - 百度文库
19.java是高并发的服务,怎么让gc不影响服务呢,jvm参数有没有设置过呢?
以前知道一般cpu空闲或者内存快满的时候会发生gc,并且gc也是受jvm控制的,之前也设置过jvm参数。
现在当面试官问我这个问题的时候,我终于知道调jvm参数的意义了,实际就是在调gc。当gc影响服务了证明他执行的很频繁,这个时候只需要调整一下jvm参数就可以了,把堆内存调大一些。以后如果遇到频繁gc导致的影响服务器性能,我会直接把-Xmx调大一些。
垃圾回收在应用程序性能中起着关键作用,因为它会由于不正确的调优而影响不可预测性。如果频繁发生GC事件,导致垃圾收集器忙于执行GC操作,并导致应用程序服务器上的CPU使用率较高,则会导致应用程序处理不良。参加java培训,可以帮助你更好地了解垃圾回收相关问题,提高代码质量。
如果垃圾回收发生得太频繁或占CPU的很大比例,则应增加Java堆大小设置,或在应用程序中查找不必要地分配内存的位置。
由于堆内存配置不足或应用程序中存在内存泄漏,可能会发生过多的垃圾回收,这需要在发布期间生成heapdump来进一步检查。
为了获得更好的系统性能,必须有很少的完整GC事件,GC暂停应该是最小的,并且用于垃圾回收的CPU百分比应该非常低。
建议你在开发环境中对应用程序进行负载测试,以确定最大堆内存使用量。你的生产堆大小应至少比测试的最大值高25%-30%,以便为开销留出空间。在java培训中,会有关于垃圾回收的处理方法和技巧的课程,学好这些技巧,有助于更好地进行开发项目,少出问题。
通用GC配置和参数
-Xms:设置堆的最小和初始大小(以字节为单位)
-Xmx:指定堆的最大大小(以字节为单位)
-Xmn:在分代收集器中为年轻一代(托儿所)设置堆的初始大小和最大大小(字节)
-XX:PermSize:设置分配给永久生成的空间(以字节为单位),如果超出该空间,将触发垃圾回收。此选项在JDK8中被弃用,并被-XX:MetaspaceSize选项取代。
对于服务器部署,-Xms和-Xmx通常设置为相同的值,以便堆大小是固定的并预先分配。
20.怎么解决问题,百度?google?英语水平怎么样,因为我们平时需要读论文做研究
实际我平时90百度,10google
21.你认为算法数据结构、网络、数据库、操作系统、计算机组成原理这几门课你哪个更好,
我说了数据库,面试官问了我最后一道题,为什么要用存储过程,明明就有一条条的sql。
1.保证原子性
2.可以优化,数据库解析器有优化,加快执行速度
22.最后面试官和我介绍了一下小冰及工作环境,听起来还是蛮喜欢的
微软小冰-独立于2020年,独角兽公司,他们小组主要为公司下一代产品做语言,包括什么视频合成,语言合成,同事都对工作充满热请,在垂直领域做精
23.面试官说让我保持手机畅通,hr会和我约一下轮面试
写道最后,面试官很礼貌,说不上来的尊重,和他面试很舒服,能感到面试官对技术的热爱与专业性,感觉人应该很不错,让我对这家公司好感倍增
525小冰二面 视频面
实际是一面,第一次电话面问的差不多了,约在了晚上七点,还是大概记录一下,学习总结把
1.由于之前电话面试过了,就不再做尴尬的自我介绍了,面试官很礼貌,这种礼貌是来源与骨子里的,这点我需要向面试官学习
2.是什么样的优点让你得到了晋升
3.进入面试标准流程,写题
1)两个排好序的链表,要求合并输出一个链表,不开辟新的内存空间(2路归并)
2)链表反转,不开辟新的内存空间
package com.cnblogs.mufasa.demo1;
public class Node {
public int value;
public Node next;
public Node(int value){
this.value=value;
}
public void add(int value){
Node pre=this;
while (pre.next!=null){
pre=pre.next;
}
pre.next=new Node(value);
}
public static Node reverseList(Node head){//1,利用Node索引解决问题【完成】
Node next=null;
Node pre=null;
while (head!=null){
next=head.next;
head.next = pre;
pre=head;
head=next;
}
return pre;
}
public static Node reverseList2(Node head){//2,利用递归解决问题【完成】
if (head == null || head.next == null) {
return head;//节点为空或单节点
}
//递归反转子lian链表
Node newList = reverseList2(head.next);
//第三张图,原本:1-2-3-4-->2-1-nul 34
head.next.next = head;
head.next = null;
return newList;
}
}
class client{
public static void main(String[] args) {
Node root=new Node(1);
for(int i=2;i<10;i++){
root.add(i);
}
Node reRoot=Node.reverseList(root);
Node reRoot1=Node.reverseList2(root);
}
}
4.介绍一下常用的IDE功能,下载插件plugins
总结反思:抽空多刷刷算法题,我就能如虎添翼了,算法题的考察在社招每面都考