首页 > 双非非科班21届校招总结附面经
头像
lyq-
编辑于 2021-04-19 10:58
+ 关注

双非非科班21届校招总结附面经

折腾了一年,现在终于能够结束校招了,虽然结果也不是那么满意,但是知足常乐嘛,作为双非一本非科班自学Java一年上岸的我,暂时就这样吧哈哈哈。本人双非一本电子信息工程专业,去年上半年一直在纠结考研还是找工作中纠结,最终终于在我女朋友跟我分手之后下定决心学一门技术哈哈哈,本人电子信息工程专业,还是大二之后转过来的,之前根本没有任何代码经验,C语言从来都没敲过,于是去年三月份从零开始学C语言,学了一段时间之后不能到能干啥,于是开始学Java,B站上看动力节点的视频从零开始学,按照的是动力节点规划的路线,学到了数据库,后面感觉啥也没学一样哈哈哈。后来就去跟着尚硅谷又学了第二遍,这里面弄懂了很多东西。这期间学的都是一知半解的,就这样学了三个月,把java所需要的知识都学了一遍,包括框架什么的,期间还是很努力的每天七点起来看视频看到晚上12点,中间也有休息很长时间。六月份学校终于开学了,到了学校去考六级(听力蒙的比较高竟然过了哈哈哈),后来稀里糊涂去了亚信实习,确定了要毕业找工作这条路,其实确定了也好,有时候不能太过于衡量利弊,这些是算不清楚的,等你真正选择了之后会发现就没那么焦虑了。在亚信实习的时候虽然没学到啥东西,但是很感谢亚信公司,让我最起码有一段实习能够吹b了哈哈哈(虽然很垃圾)。
一直实习到九月份,没意识到秋招的重要性,九月份稀里糊涂的开始笔试面试,本人秋招的时候拿到了几个offer,第一个是去的大华成都的线下面试,那也是我第一次面试很紧张的面试,我只是看完了一些很基本的知识,看了点尚硅谷阳哥的面试题第二季趁热打铁就去了,那时候对软件行业的工资没有概念,到了线下听到很多人都在说工资17-18k,那时候我心想,我c,这么高,我那个时候就厚着脸皮说了10-12,成都岗位,一直怕说高了,第一次面试的时候很紧张,后面就慢慢好起来了。最终秋招拿到的offer有大华成都白菜、恒生白菜、深圳交通中心、瑛太莱公司的offer,最后由于瑛太莱给的最高,签了瑛太莱。
寒假的时候去了瑛太莱实习了俩月,期间写了一些小代码,更多的时候是自己摸鱼学习,基本上是摸了俩月哈哈哈,感觉瑛太莱的人都挺好的,LeetCode200道题目也是那个时候刷完的,因为当时就准备再参加一次秋招,所以就看了很多八股文,看的javaGuide,真的学到了很多,如果没有这个东西就没有现在的我,也买了几本书来看:深入理解java虚拟机、java并发编程的艺术、MySQL技术内幕、Redis的设计与实现,可以说是进行了一次系统的学习吧,期间也被了计算机网络还有操作系统八股文,实习到了年底就回家了,过年期间没咋学习,就这样到了三月份开学。在这里说一下瑛太莱这个公司,网上有很多黑这家公司的,但是我觉得这家公司就我实习的感受哈,还是挺好的,早10晚8(这已经是最严重的了),开发氛围也挺好的,没有脉脉上那么吓人哈哈哈,工资给的相对来说蛮是很有竞争力的,有双休,加班的话有加班工资哈哈哈,如果没有让我摸鱼的瑛太莱,就没有现在的我。
今年三月春招开始,自己也是很焦虑,因为想找到更好的,面试的时候很难受,因为一直自我怀疑,最开始面的携程,一面让我写个两个线程交替打印1-100的奇数和偶数,竟然没写出来,伤心了好久,因为当时觉得携程还是在自己的能力范围之内的。后来就各种投简历吧,我就说一下我进入面试的吧。字节笔试挂,百度笔试挂,其他大厂不给机会还是太菜了。其他的进入面试的小厂好像都过了,最后拿到的有松果出行、顺丰科技SP(很感谢顺丰爸爸给我SP,这是我唯一一个SPoffer,也让我有了很大的信心)、富途白菜。比较可惜的就是自己虾皮HR面试完之后挂了,看到别人发offer自己还是很羡慕的,哎,没办法还是自己太菜了吧,这也是一个唯一能很满意的offer吧。还有就是最开始的携程一面挂了,现在想想是自己那个时候没有好好准备,跑去耍朋友了哈哈哈,还是挺可惜的。要吐槽一下北京的顺丰同城,面试太拖了,三面技术面,最后一面总监面一直不给我安排说什么总监老婆生娃了,只差总监面了,后面干脆不安排了,差评。还有就是成都京东,二面完之后官网一直显示HR面试未安排,希望所有公司能像虾皮学习哈哈哈,没过的早点给人家发感谢信,别让我们这种菜鸡干等着哈哈哈。最后的话我是选择了松果出行,没有选择顺丰科技,还是面向了薪资编程哈哈哈,希望自己未来不会后悔自己的选择。
其实整个校招有挺多人要感谢的,要感谢我的爸妈,感谢他们大力支持我,也愿意帮我付违约金哈哈哈,希望我以后能好好报答父母。再有就是感谢自己的女朋友(哈哈哈,疫情之后之前跟我分手之后的女朋友又回来找我啦,现在又在一起了,也希望我们最后能修成正果,也要即将面对四年的异地恋呜呜呜),感谢他一直对我的相信和鼓励,我是个特别焦虑的人,所以那段时间也会把焦虑传染给他,感谢他一直觉得一个这么菜鸡的我这么厉害哈哈哈。再有就是感谢自己两段实习的导师,还有自己在松果实习的导师,我一直觉得好像我们搞技术的人都非常好,不管走到哪里都很好的指导我们嘿嘿,不嫌我们菜。还有最要感谢一个大大佬:此处本菜鸡冒犯打扰@牛客牛客牛 ,春招包括寒假期间一直在看这个老哥分享的帖子,真的学到了很多,没有这个老哥的帖子就没有我的今天哈哈哈,希望大家也多多去大佬这里取经,真的很有用,强烈推荐。还是很羡慕这个大佬去了虾皮,差最后一步就成同事了呜呜呜。最后也感谢牛客这个平台,感谢牛客让我看到了这么多的大佬,让我认识到自己就是一个弟弟,还需要不停的努力,也看了很多的面经,给了我非科班一条学习的路。再说一下我整个校招的感受吧:
1.技术为本,技术永远是最重要的,不要囫囵吞枣,要全面的了解而不是只知皮毛,基础知识是最重要的。
2.知足常乐。一定程度之后要学会接受自己,不能太跟自己过不去,当时我取这个昵称也是因为年少轻狂哈哈,慢慢准备,机会永远都是留给有准备的人,这两年好好学习,希望两年后的现在我也在大厂之中!
最后附上我春招的面经,都是一些很基本的,供大家参考。接下来我的愿望就是实习完之后做了毕业设计之后好好享受自己大学的最后时光,最后来场浪漫的毕业旅行哈哈哈。最后说一下,菜鸡勿喷,仅为介绍自己的校招之路!!!最后祝愿正在找工作的大家成功上岸!!

3.2 携程一面凉

  1. 说一下shiro+jwt的登录流程,请求头存储在哪里的

  2. 说一下redisson分布式锁,如果在数据库层面怎么解决,数据库的乐观锁怎么实现(加一个字段version)

  3. 手撕代码:两个线程交替打印1-100

  4. 手写单例模式,为什么有两个if,为什么用volatile变量修饰,如果不用这个这个变量修饰会出现什么问题,你能复现这个问题吗

3.9 松果出行一面

自我介绍

1.数据库的三范式

2.对数据库事务的理解

3.说一下Vector、ArrayList、LinkedList的区别

4.说一下冒泡排序最差和最好情况

5.分析一下快速排序的过程以及时间复杂度怎么计算的

6.进程和线程的区别

7.进程之间通信的方式(BB一大堆,被打断了)

8.进程调度算法

9.死锁

10.操作系统段和页的区别(不会)

11.session和cookie的区别

12.OSI七层模型以及每一层包含的协议

13.说一下TCP和UDP的区别

14.SpringMVC的执行流程

手撕代码:计算两个链表的和,LeetCode原题

3.11 顺丰同城Java一面 1h

在全时云上面面试的,一个小时

1.自我介绍

2.说一下Java的泛型,泛型的好处

3.说一下HashMap和HashTable的区别

4.HashMap为什么要采用数组+链表来实现

5.HashTable是怎么保证线程安全的

6.说一下synchronized关键字的作用和底层实现

7.说一下volitale关键字

8.String a = new String("a") + "a"创建了几个对象,在哪里。

8.说一下JVM的内存模型

9.JVM堆中每一代采用的垃圾回收算法以及为什么使用这种算法

10.问一下数据库,你用的都是什么存储引擎,Innodb

11.说一下聚簇索引和非聚簇索引的区别

12.非聚簇索引和聚簇索引那个效率高,为什么?

13.你刚刚说聚簇索引要回表查询,什么情况下不用回表查询

14.说一下联合索引以及生效失效场景

15.数据库有哪些隔离级别

16.设计一张博客表包含一篇文章,你会包含哪些基本字段

17.你刚刚说存储文章内容用text类型,为什么不用varchar。

18.说一下SpringBoot和Spring的区别。

19.SpringBoot加载配置文件的优先级。

20.一个项目打完包后,怎么指定使用磁盘的配置文件运行。

21.给一个场景,现在要实现一个登录流程,你会怎么设计实现

22.你刚刚说用账户密码签发TOKEN,每次都验证数据库,高并发情况下会有问题,你怎么优化(存放到Redis中)

23.如果数据库的密码更改了,你怎么保证Redis数据的一致性?(DB和缓存的一致性)

24.写一个题目。

共享屏幕手撕代码: 两个链表的第一个公共节点

3.12 富途服务端一面面经 1h10min

1.你愿意转语言吗,我们用的都是C++、Go(可以)

2.先写一道算法题目:找到两个有序数组中的重复的数字,提出了三种解法,分析复杂度

3.笔试的时候考了计算机网络吧,说一下TCP的四次挥手

4.为什么四次挥手需要有2MSL等待时间

5.当有大量连接建立,但是没有发送数据,服务器会怎么做

6.一秒钟之内如果有百万级的请求到达服务器会发生什么

7.说一下什么是网络拥塞以及TCP怎么避免网络拥塞

8.说一下Java相关的吧,Java中的线程安全你怎么理解的

9.Java中保证线程安全有哪些方式

10.Java中如果要更新多个变量你会怎么做

11.知道Java中的volatile关键字吗,说一下

12.什么是内存屏障?

13.一道数学概率题:东城有80万人,西城有20万人,一天之内有100万个电话产生,一个城里面的人可以打电话给任何人,问跨城打电话的概率是多少

14.问一下redis,你知道redis分布式锁实现的原理吗

15.redis的一个命令是怎么执行的

16.redis是单线程还是多线程的,执行的命令是单线程还是多线程的

17.一道大数据分析题:40亿个无符号整数的文件,要判断一个数字是否存在,你会怎么做,要求内存1g

18.假如这40个数字需要作为黑名单,不经过磁盘IO,怎么做(利用bitmap放入redis

19.内存操作和IO操作速度之比是多少

20.说一下Spring的IOC原理是什么

3.18 顺丰科技一面

本来约的三点的面试,但是面试官提前上线看到我在线就说提前开始吧。

1.自我介绍

2.怎么学习Java的

3.说一下抽象类和接口

4.说一下HashMap和HashTable

5.线程安全的还有哪些集合

6.HashMap添加一个元素的流程

7.什么是红黑树,特点是什么

8.数据库索引的底层结构

9.B+树的特点,有几层,最大可以存放多少条数据,当什么级别下需要分库分表

10.分库分表怎么保证不同表的ID自增

11.怎么分析一条sql,关键字段有哪些

12.redis有哪些数据结构,持久化的方式有哪些

13.JVM的内存模型

14.类加载的过程

15.怎么设置一个栈的大小以及在工程中怎么设置的。

3.18 顺丰科技二面 17min

1.说一下抽象类和接口的区别,jdk1.8之后有什么新改变

2.List和Set有什么区别,ArrayList和LinkedList区别

3.HashMap的底层数据结构是什么,什么是红黑树,为什么使用红黑树。

4.说一下redis都有哪些数据结构。

5.说几个redis的使用场景。

6.说一下Shiro和SpringSeucrity的区别是什么。

7.SpringBoot和Spring相比有什么好处,SpringBoot中有哪些容器。

8.现在为什么都不再使用外键,数据库实现乐观锁怎么实现。

9.说一下冒泡排序至少需要几个for循环

10.sleep和wait的区别

3.18 顺丰同城二面 25min

1.自我介绍

2.共享屏幕手撕算法:给定一个字符串,找到子字符串中其中最长的回文子串。

3.接口类和抽象类有什么区别。

4.说一下redis的基本数据结构。

5.挑一个最近的项目介绍一下,你刚刚说后端处理验证用redis而不用数据库,这体现了什么redis的特点。

3.18 京东一面 40min

面试体验超级好,面试官超级棒,但是由于自己有点紧张说话语速有点快。

1.自我介绍

2.看你有两段实习,说一下最近的一段实习都干了啥。

3.你怎么理解认证和权限的,为什么使用jwt不适用session、cookie

4.已经使用了jwt为什么还要使用redis(解决Token续签和退出登录的问题,面试官说那你这个跟session有什么区别,我:没区别。。。)

5.你觉得在微服务中是在网关中实现认证和登录好还是在网关中实现好,为什么,有用到过吗,官网看过网关的资料吗,有了解过更多信息吗(没有。。)

6.redis是单线程的还是单线程的,redis为什么快,redis有哪些数据结构。

7.数据库和redis的qps之比是多少知道吗

8.你在第一段实习中做了什么工作,使用到了哪些技术。

9.说一下Java基础把,线程和进程的区别是什么?

10.你对Java哪些部分比较熟,(答了集合)Java8中有哪些集合是新的,说一下底层原理。

11.对jvm熟吗,说一下Java是怎么判断一个对象应该被回收的。

12.问两个场景问题吧,直播中有很多弹幕出现,你怎么实现,redis已经是集群了,假如所有的数据都分到了某一个redis节点上面,很多请求来访问这个redis数据库,你怎么处理?

13.redis的持久化机制,你在项目中用到了哪个

14.对于高并发场景,你怎么保证服务高可用,从使用框架和自己设计实现来说(负载均衡,Hystrix,使用计数器统计请求的数量,爆增到一定数量后进行错误处理)

15.Spring循环依赖怎么解决的。

16.了解哪些设计模式?说一下代理模式?代理模式都有哪些实际的用法?

17.说一下输入url按下回车键都发生了什么

3.20 松果出行二面 30min

1.自我介绍

2.说一下volitile关键字。

3.说一下快排的思想以及时间复杂度。

4.什么是死锁,举一个死锁的例子?

5.说一下ArrayList和LinkedList的区别是什么

6.一道算法题目:

List<Song>  rank(List<Song>  songs, List<Integer>  ids) s2 s1  s3 s4  s6 s5   s8 s7       1, 2, 3, 5, 9 s1 s2 s3 s5 s4 s6 s8 s7

3.21 虾皮一面 46min

1.自我介绍

2.熟悉的语言是Java吗,说一下HashMap底层的数据结构,什么时候链表会转化成红黑树,为什么是8?

3.HashMap是采用什么方式解决Hash冲突的,还有什么其他的方式,在rehash的时候如果要读取一个值会去新数组里面找还是旧数组里面找,如果写呢,会写到新数组还是旧数组。

4.redis里面为什么使用跳表作为zset的底层结构,为什么不采用红黑树,什么会影响到跳表的时间复杂度,怎么优化。

5.索引的数据结构?B树和B+树的区别?

6.为什么不用红黑树来当索引的数据结构?

7.你刚刚说到B+树非常有利于磁盘的读取,是什么原因呢?

8.一个页的大小是多少,了解分页吗?

9.为什么需要虚拟内存?

10.问一下计算机网络:说一下TCP建立连接和释放连接的状态都有哪些?

11.tme_wait会占用端口吗?怎么解决time_wait占用端口过多的情况?

12.你刚刚说了可以直接跳过time_wait关闭连接,直接跳过会有什么问题吗?

13.两个场景题目:假如现在有一个10亿的排行榜,需要找出前500名,你会怎么做?假如最大积分为10万,你怎么设计找到某个积分的排名(没听懂)。

14.现在在做爬虫,文件很大,爬到某个URL时,你怎么判断这个URL是否被爬过?除了分治法还有别的比较快的方法吗?(布隆过滤器)

15.写题:给出一个升序排列的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出链表为1->2->3->3->3->4->4->5,返回1->2->5

3.24 京东二面 10min

1.自我介绍

2.介绍一下你觉得深刻的一个项目

3.说一下你对有状态和无状态的理解,他们的优缺点是什么?

4.项目中的难点说一下?

5.用过SpringBoot,SpringBoot特点是什么,你在使用过程中有什么缺点吗。

6.为什么很多地方都要用到redis?

7.哪些数据应该存到redis,哪些数据不应该?

8.你还有什么想问我的?

9.我看你意向地点写的北京,是想去北京吗?

3.24 富途二面 50min

1.自我介绍

2.写算法题:给定几个梯度,进行求和?

3.写算法题:对于一个数组,将它里面的元素所有为0的元素移动到数组的最后位置,且不改变数组其他元素的相对位置,不能使用额外的空间,如:[0,1,2,0,5]移动变为:[1,2,5,0,0]

4.概率题:问一副扑克牌,52张不包含大小王,从中不放回的抽取两张扑克牌,问是同一花色的概率?

5.数学题:有若干个猴子和若干个桃子,如果每个猴子分3个桃子,则桃子多59个,若每个猴子分5个,则最后一个猴子分不到5个桃子,问猴子和桃子的数量?

6.说一下你实习期间的项目吧,有什么是印象深刻的。

7.你刚刚说用local storage保存TOKEN,会存在被窃取的危险吗?怎么解决这个问题呢?

8.反问。

3.27 虾皮二面 45min

1.自我介绍,聊天。

2.设计一个下载博客的系统,你会怎么设计?

3.数据库的索引底层数据结构有哪些,索引文件和数据文件是怎么存储的?InnoDB和MyASIM两种引擎的索引有什么区别?

4.全文索引你了解吗?

5.select count(*) 和select count(a)有什么区别?

6.操作系统管理内存的方式有哪些?

7.说一下零拷贝技术?

8.说一下TCP建立连接,断开连接的状态,如果出现大量的time_wait是什么原因?

9.路由器和交换机的区别是什么?

10.写一道算法题目:删除链表的倒数第n个节点

11.了解微服务吗?什么是服务注册与发现?底层的原理怎么实现的。。。。

12.设计一个发红包的系统,你怎么保证某个金额数字最后一位出现的概率最小?

13.图和树的区别是什么?

14.limit存在的性能问题是什么?你怎么优化?

15.ping命令的原理

16.数据库连接池用过吗,有什么优点,如果让你写,你会怎么来写?

17.数据库的间隙锁有了解过吗?解决了什么问题?

18.跳表了解吗,跳表应用于什么场景?

全程翻车,太菜了!!!


全部评论

(15) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐