首页 > 字节提前批java后台开发面试一面
头像
杀死那只大白鹿
编辑于 2021-08-04 15:04
+ 关注

字节提前批java后台开发面试一面 内部员工回复

2021-8-x日字节面试一面

选的是杭州电商那边的部门

正式批不选这个部门了。面试体验很差。

项目问题

你的项目分了哪几个模块.

底层的数据传传输格式是什么样的。

八股

字符编码的utf8 gbk为什么设计这么多格式。

进程线程区别

死锁怎么产生的,怎么避免死锁。

(互斥、不可剥夺、循环等待、请求与保持。 破坏四个条件)

Java线程安全的保证

Tcp,https在哪一层

为什么把网络分为这么多层

子网掩码

http https的区别,https的详细流程

hash索引b+树索引区别

联合索引生效条件

数据库三范式

写题

1.
sql:学生成绩表 table1, 学生、课程、成绩,(name,sbuject,score),查询出所有课程都大于80分的学生的平均成绩。

2.
算法:求全排列的下一个数:如1234 下一个数是1243,1243下一个数是1324.

原题leetcode - https://leetcode-cn.com/problems/next-permutation/

设计题:

给出微信pc端的登录的技术流程。(讲给技术人员听的流程)

这个题的体验很差,面试官只会对照网上的答案bb个不停。

答案转载自
https://blog.csdn.net/pseudonym_/article/details/84311297

图片说明
用户访问微信网页版,此时微信服务器会为其生成一个全局唯一的UUID。然后这个UUID就存放在上面路径 login.weixin.qq.com/l/obsbQ-Dzag==的后面,此时该操作并没有和用户有交互,所以该ID仅仅是个唯一字符串而已,系统并不知道该ID会和哪个用户相绑定。

如果过此时你不断地刷新,你会发现每次的ID都会发生过变化。感兴趣的可以自己手动来抓包,这里就不做示范了。注意:此时服务器和更改你网页还会建立一个长连接,为了节约系统资源,如果一段时间不扫描,便会超时。返回状态为408。

用户扫描PC端的二维码,返回状态码为201,并且生成一个询问,是否登录。这个步骤的目的是为了获取起生成的全局唯一UUID,为了下一步和微信绑在一起。

用户如果此时点击确认登陆,则会像系统发送一条请求,并且将UUID和用户账号(或者token)一块发送过去。

系统受到这一步的目的是将UUIIDI和用户账号(或token)绑定在一起,因为二者都是唯一,便可以确定唯一的对应关系。处理完该关系后,系统会向PC端反馈消息,这个UUID对应的用户是A,然后网页便可请求加载A的微信信息和资料。

二维码扫描看起来好像很高大上,其实原理还是比较简单的。首先浏览器获取一个唯一的、临时的UUID,然后等待用户扫描,如果扫描并且确认,后台系统就会将二者绑定,然后发送也浏览器这个UUID绑定的用户信息。从而确定对应关系。

注意:在超时、网络断开、或者其他设备浏览器上登陆后,,此前绑定的UUID将会失效,这样会形成更有效的安全防护。有些二维码不能扫是因为它会访问钓鱼网站,从而造成财产直接或间接流失。

不出意外是凉了,面试官很装...

更多模拟面试

全部评论

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

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐