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、圈复杂度(这到底是啥,谁能给我科普下)
然后就……结束了
开始手撕代码
素因子分解(为什么可以这么水)
然后大概三十分钟吧,面试官就说差不多就到这里吧(说我通过了下面应该有一个面试等通知),问我还有没有什么问题。我们聊了一会,聊了下他们部门。

