4.30 字节后端一面凉凉经+华为软开奇葩一面
之前不懂,暑期投错岗位在里面卡了一个多月,然后一只没收到面试。投了很多日常都被卡住了
前天下午找内推人联系HR吧暑期的流程终止了,昨天下午就收到HR电话约面试,本来在今天上午的,我还有华为的面试就改成了下午;
和很多人一样,我也是水的一个秒杀的项目,然后问了我挺多关于高并发优化的东西。
回到java上来,问题如下
1,JVM虚拟机,我说太宽泛了不知道从何说起,然后面试官问了我堆区的分配
2、垃圾回收相关的问题,新生代老年代之类。
3、锁的机制,我讲了互斥锁/读写锁。
4、多线程的同步方法和同步代码块
然后就开始代码了,问题如下:
两个单向链表从尾部开始相加,返回新的链表。每个节点都是[0-9]的整数。 head------- tail 2-3-4-5 + 4-5-6 = 2-8-0-1 不限语言,数据结构自定义即可,不要求可执行,核心代码逻辑正确,边界考虑。 Node{ int value; Node * next; }; List{ Node * header; }我写出来的
import java.util.Scanner; public class Main { public static void main(String[] args) { int len1=0; int len2=0; Node temp1=head1; Node temp2=head2; while(temp1!=null){ len1++; temp1=temp1.next; } while(temp2!=null){ len2++; temp2=temp2.next; } if(len2>len1){ Node t=head1; head1=head2; head2=t; int lent; lent=len1; len1=len2; len2=lent; } for(int i=0;i<len1;i++){ temp1=head1; temp2=head2; int jiawei=0; for(int j=1;j<len1-i;j++){ temp1=temp1.next; } if(i<len2){ for(int j=1;j<len-i;j++){ temp2=temp2.next; } } if(i<len2){ temp1.val+=temp2.val; } temp1.val+=jinwei; if(temp1>10)( jinwei=1; )else jinwei=0; temp1%=10; } Node ans; if(len1==len2&&head1.val+head2.val>10)( ans=new Node(1); ans.next.head1; )else ans=head1; } }
再讲讲华为一面,本来约得是50分钟
然后开始之后面试官就让我介绍一下硕士期间方向,然后跟我聊关于LTE和5G NR的东西,感觉起码得十几分钟吧
问题大概有:5G和LTE相比让你印象最深的区别是什么,我随便扯了几个Massive MIMO,Raytracing,Beamforming之类,聊了聊基站和综测仪,核心网之类,
然后开始进入正题问语言
1、final的意义,修饰变量,修饰方法和类
2、static的意义,修饰变量方法和类
3、圈复杂度(这到底是啥,谁能给我科普下)
然后就……结束了
开始手撕代码
素因子分解(为什么可以这么水)
然后大概三十分钟吧,面试官就说差不多就到这里吧(说我通过了下面应该有一个面试等通知),问我还有没有什么问题。我们聊了一会,聊了下他们部门。