字节上海后端java开发 转行自学四个月(9月到12月)
1、自我介绍:因为我是研二想转行互联网,所以学了半年后端开发的内容,然后他问我都学了什么,我就说(ssm框架,springboot,mysql,redis,linux,计算机网络,算法数据结构,操作系统)之类的;
2、mysql
(1)说完自我介绍后,就说既然学了mysql就让我写一条查询的语句(打开了他们自己公司里面一个类似牛客的做题平台),mysql我只写过最简单的增删改查,本来我赌他不问mysql语句,看来不能心存mysql的侥幸心理,他出的那个题是一个查的问题,查起来比较复杂,要一下查多列数据,也不是连表查询,因为没接触过,就给他写了个普通查的的语句(想着虽然不会,但是也不能啥也不写吧);然后他开始想引导我,但是我确实没写过类似的,就跟他说算了,自己确实不会;
(2)、看我没写出来mysql语句,他觉得有点尴尬,就问我mysql会什么,我就说(懂一些基本知识,ACID,MVCC,表,隔离级别,B+树之类的,InnoDB),然后他就问我MySql的隔离级别是什么,我就说有两种引擎MyIsam和InnodB,RR级别之类的(背了那么多就问一个这个qaq),然后跟他说了一会儿相关的内容;
3、计算机网络
(1)mysql问完了就开始问我计算机网络学了哪些内容(我以前一直以为面试官直接问问题,结果总是先问我学了什么内容,把我整不会了,就说了下自己背过的八股文的内容的题目,osi7层模型,TCPudp,tcp拥塞控制之类的),然后让我说七层模型,然后我也说了下tcpip五层模型和他的区别,说完之后他开始根据七层模型问我一些内容
(2)网桥在哪一层(我只听过这个名词,但是这是什么东西不知道,我就猜了个数据链路层,虽然猜对了,但是他也看出我是猜的了qaq)
(3)路由器在哪一层,交换机在哪一层(一个在网络层,一个在传输层,以前没特意去看过这些内容,只能根据生活常识推导出来了)
(4)然后因为我在七层模型说了传输层实现端对端的通信,他就问我端口有什么用(我就说是确定是两个连接的通道,其实他是想问多线程的内容,后来他引导我,我就说使多个程序不然会混乱,(标准回答应该是ip地址实现两个主机之间的连接,端口确定具体主机具体哪个线程连接)),然后他问我怎么不混乱,我没想到从多线程这层角度说,就说tcp通讯时,报文的字节头存放了具体的端口号,偏移量之类的内容,通过这个来对应;
(5)然后他说tcp的包对应不上怎么办,我就说对应不上会有等待超时时间,然后服务端回发消息提醒,或者快重传算法
4、操作系统
(1)然后又问我操作系统会什么,操作系统我感觉内容我看得很少,我就说会一些linux基本指令,多线程多进程,虚拟内存之类的知识;
(2)然后他说我用LInux做过什么,我就说在linux中用过jdk,tomcat,redis,然后他觉得没啥好问的,就随便问我jdk和jre的区别,跟他讲了讲;
(3)继续问我java做过什么,我感觉我也没做过啥,就写过算法题,做题呗,然后说可以做聊天程序(用计算机网络编程),然后自己用spingboot做过员工管理系统(pojo,dao,controller,service层之类的)
(4)然后他问我为什么要分(dao,pojo,controller,service)之类的,我就说了下mvc三层架构的思想
(5)然后开始让我做算法题
5、算法数据结构题;
实现 String s = "1[a]2[c]3[d]";输出为accddd String s1 = "3[a2[c]]"; 输出为accaccacc6、总结:第一次面试很紧张,面试官很好,但是我还是好紧张,而且能力确实有待提高,这次肯定是过不了了,我也知道自己有欠缺,当时就想的随便投一下实习,没想到直接就给安排面试了,有点突然,准备不充分,学的也不充分,打算后面再认真学一个月再面试了(rabittmq,kafaka,jvc,在做一个秒杀项目)