楼主还是很厉害的😄

相关推荐

08-14 21:54
已编辑
中国地质大学(武汉) Java
1.那现在从产品的视角来分析一下这个世界频道的功能应该是怎么定义的世界频道(王者荣耀这类游戏的世界频道)以及讨论一下它的技术实现有什么难点2.有没有了解过类似于QQ的群聊QQ的群聊是怎么实现的3.那假设让你实现一个群聊功能服务器的逻辑是怎么样子的(或者说可以描述一下整个链路,就是客户端一个用户发了一条消息开始,完整的数据传输流程,流转流程是什么样子)4.那在这个过程中服务器的作用就是将收到的消息转发给其他的用户对吧那你能详细说一下这方面的细节吗(是怎么转发的)5.那假如现在让你设计让你设计一个QQ,你会怎么设计这样的一个整个的系统流程来保证在线的用户可以实时收到一个消息然后不在线的用户也可以在下一次上线的时候看到历史的群聊消息6. OK那刚才你提到了一个客户端接收消息的机制那这个应该是一个什么样的呢?(这个群聊里有ABC三个人,A发了一条消息然后服务器把这个消息推送给谁,那这个推送一般是用什么技术或者什么协议实现)[可以使用websocket或者简单一点的话也可以直接使用TCP]7.刚才我们有提到就是在线的任务和离线的那怎么区分在线还是离线呢?(它其实就是可以通过TCP的饭店接吗他只要一直连着我的服务器那他就是在线)(面试官告诉我的一个过程:在线的用户要能实时收到消息,然后不在线的用户在上面之后也要看到这个历史消息,所以简单的完整的时间流程就是当a发了消息之后,就把这个消息存到这个群所对应的数据表里,然后再对每个人维护一个已读状态,然后如果这些人在线的话就单独更新一下,比如状态为一组就可以同时通过在线的这个TCP长连接把消息给它推出去,然后那些不在线的人在上线的那一刻就可以根据他的这个所有未读的消息整体做一个拉取然后已读之后再给它标记为已读就可以)8.那从这种情况回到刚才所聊的世界频道那世界频道和群聊在功能和实现上会有什么不同的地方(我回答了规模,历史信息是否保留)9.客户端什么时候知道能够去拉取这条消息10.有点像是刷帖子的意思就是我打开刷新,然后就主动拉取一次最新的消息,那假如我现在就一直打开了这个页面了那最新的消息应该怎么去获得(这里我回答的一个机制类似于刷帖子一样,然后面试官问我如果我一直打开这个页面保留在那里,我该怎么获取最新消息)11.或者我们反问一下就是从最开始出发他到底是真的是世界频道吗?(我这里回答可能是频道是划分了多个小频道然后的话可以根据地区可以根据时间戳来去划分)12.Java的JIT是什么13. Java的一段源代码从你写出来到最终执行这段过程发生了什么(可以回答牛客的那个面试专题部分的内容)14. Java将源代码编译成字节码之后交给JVM,那么我们C++中会编译成可执行文件交给机器执行这两个流程之间有什么不同15.现在具体到一条赋值语句int a = 1+3;这条语句在C语言中编译成了二进制的机器码,然后直接运行这个程序然后在Java中编译成了字节码交给jvm,这两段运行的过程有什么区别16.Java的int和Integer有什么区别17.在这个转换的过程中有没有踩过什么坑(我回答了基本数据类型和包装类然后说了一下自动拆箱和装箱他就问在这个转换过程中有没有坑,我回答了如果自动装箱或拆箱的次数过多会导致性能不好)18.假如现在我们都使用integer那么两个之间的比较是使用==号吗?(围绕了equals()和==讲了一下)19.使用==比较integer的时候,明明两个内存地址是不一样的但是最终比较的时候是相等的(我回答了常量池这部分的知识)20.常量池是在哪里维护的(我回答了元空间(也就是堆))21.常量池我是怎么了解到的(我就回答之前遇到过相似的题目我就好奇为什么会这样子明明两个数相等但是比较出来的结果却是false进而去了解了常量池,还回答了常量池的作用)22.有没有看过关于Java的源代码比如说常量池部分的实现(我说我看过关于Redis部分的,就是使用Lua脚本部分,还回答了AQS部分,但是这个我是一带而过了)23.讲一下你看过的Redis的源代码以及收获(我这里就回答了我看过他底层的LUA脚本,Redis怎么去使用这个脚本来实现单线程以及其他的一些原理,锁的部分也提到了一点点(不过我确实有点忘记了))24.手撕题leetcode 523连续子数组和:给你一个整数数组 nums 和一个整数 k ,如果 nums 有一个 好的子数组 返回 true ,否则返回 false:一个 好的子数组 是:长度 至少为 2 ,且子数组元素总和为 k 的倍数。(我讲了一个思路,而且刚刚开始还理解错了)25.反问,没什么好说的,因为觉得自己肯定没了,也没多问
查看24道真题和解析
点赞 评论 收藏
分享
08-16 17:07
门头沟学院 Java
自我介绍相关介绍一下你的教育背景和实习经历。Java 基础final 关键字可以用在哪些地方?有什么含义?如果 final 修饰的是一个 ArrayList,是否还能往里面添加元素?Java 中新建线程有哪些方式?线程池的核心参数有哪些?它们的作用分别是什么?核心线程数、最大线程数、等待队列之间是如何协作的?线程池的拒绝策略有哪些?数据库相关你在滴滴的项目中提到“双表结构”和“唯一索引机制”,能详细解释一下吗?乐观锁在你们项目中是怎么实现的?延迟队列是如何实现的?订单超时未支付如何处理?索引优化主要做了哪些?为什么嵌套集模型查询更高效?聚集索引和非聚集索引有什么区别?什么是覆盖索引?联合索引在什么情况下会失效?什么是最左匹配原则?违反后会有什么影响?InnoDB 的事务四大特性 (ACID) 分别是什么?事务隔离级别有哪些?各自解决了哪些问题?InnoDB 默认隔离级别是什么?如何避免幻读?MVCC 是如何实现的?undo log 的作用是什么?Redis 相关Redis 常见的数据结构有哪些?你最常用的是哪种数据结构?如何用 Redis 实现分布式锁?setnx ex 和 Redlock 算法?Redis 的持久化方式有哪些?如果要遍历 Redis 中所有 key,该如何做才能避免影响线上业务?如何判定并处理热点数据?算法题给定数组,输出“除自身外数组元素的乘积”,你会如何实现?(前缀积+后缀积)
查看26道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务