双非非科班21届校招总结附面经
3.2 携程一面凉
-
说一下shiro+jwt的登录流程,请求头存储在哪里的
-
说一下redisson分布式锁,如果在数据库层面怎么解决,数据库的乐观锁怎么实现(加一个字段version)
-
手撕代码:两个线程交替打印1-100
-
手写单例模式,为什么有两个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.跳表了解吗,跳表应用于什么场景?
全程翻车,太菜了!!!