菜菜cccC level
获赞
171
粉丝
131
关注
12
看过 TA
2825
门头沟学院
2026
后端
IP属地:江西
暂未填写个人简介
私信
关注
算法题: 1, 2, 5, 10 硬币组成n元的组合方式答: 完全背包的动态规划, 但是递推公式有点问题, 没做出来, 应该是求出用不用第i硬币的加法而不是取max类似:********************************************************问题1. 上次面试有哪些不会?学了吗?2. 什么情况下数据会进入老年代?3. JVM老年代会不会被GC?4. 为什么GC要分成不同的年代?5. GC的分代内存是连续的还是零碎?各有什么好处?坏处?6. 数据链路层、网络层、传输层为啥要分层, 各层的职责7. 那为啥要分呢, 不分不是更好8. 传输层 什么是链接?9. 如果网络某一个路由器断开3s, 链接还存在吗?10. 进程间通信方式共享内存, 进程A 存放字符串的指针, 进程B读指针,然后print(指针) 会打印出什么?11. 你能讲讲你个人的优势在哪里?回答:1. 上次关于JVM进程的详解没有讲清楚, 这次详细讲解了new 一个对象的全过程● 类加载检查, 看下这个对象所属的类有没有加载、链接、初始化成功, 否则先加载类(JVM类加载具有动态加载的特性)● 分配内存, 分配方式根据内存模型的规整与否(关系GC的选择)● 内存零值赋值● 初始化对象头,包括这个对象的年龄代、字面量、属于哪个类的元数据等, 其实就是标记字段 + 类 指针● Init(), Java程序看起来,对象的创建函数,字段init(), 对象的地址分配给引用变量● JVM内存模型分为不同的年龄代, Eden Survivor Old等● 年龄代存在对象头中, 用于记录GC情况, 当一个对象对于GC Root没有被引用的地方,即不可达时, 会被标记, 后续再次会被删除2. Eden在经过一次MoniGC 还存活的对象进入S0、S1区, 年龄+1, 年龄超过GC器阈值(0 -15)可以进入老年代, 同时大对象也可以进入老年代3. 会。被回收的直接原因是因为对象的引用可达性不存了,GC一般分为部分GC和Full GC, 部分GC可以在单独的Eden、Old乃至混合区域GC,如果内存不够还会触发Full GC 引用不可达的老年代对象一样会被删除4. 不同年代内存区域有各自的适用范围, 比如Eden每时每刻都会有大量的对象死去, 适用用标记-复制, 而老年代对象存活时间较长, 用标记-清除、标记-整理更好, 分代GC效率更高5. 零碎的。零碎的好处是空间利用率高, 只需要一个逻辑标识就能知道是哪个年龄代, 坏处是没有利用好空间局部性。连续的好处是利用了空间局部性, 但是容易有碎片。6. 有点问穿, 数据链路层的基本单位是数据帧, 用于咋局域网内的物理机器地址mac传输, 网络层是在不同的子网内ip传输, 传输层是在找到了应用端间口建立的稳定或者不稳定的链接7. 。。。。我回到是耦合性, 解耦了, 不同层有不同的协议解决各自的问题, 混沌系统太复杂的很难排查, 分层每次只需要接受下层接口,给上层提供服务就行,而不用关心实现细节8. 我认为的链接是指在目标端口的过程中, 无论是IP协议会在不同路由器留下转发映射, 还是APR协议留下目标MAC IP转换, 在逻辑上是有一条通路的, 这就是链接9. 我认为如果路由器的ip映射也消失了, 就会断开链接, 如果没有不一定会断开, 还会重新去找路径链接, 如果在没有超过ACK确认的时间内找到了则不会断开(这段感觉在胡言乱语)10. 这不太会, 我答的是地址或者HashCode, 提到了很多虚拟地址的情况, C++相关的问题, 后面查资料是因为每个进程的虚拟地址空间不一样, 进程B是打印不对的11. 从个人专业学习、工程经验、团队经验、个人性格四个方面回答
查看11道真题和解析
0 点赞 评论 收藏
分享
02-14 15:39
已编辑
门头沟学院 后端
算法题:字母大小写全排列 *****************************************************一眼回溯很快做出来了, 先讲回溯思路,然后花5分钟做出来了基本上是根据项目用到的内容1. 问了我是考研还是保研的?答:考研的, 内容是4082. JVM 层次 一个new Object 从创建到GC的完整过程(没回答上来。。没复习到 简历没更新、旧简历还在后续以更新, 就只回答了 对象的创建是先1分配内存、 2初始化对象、3把对象指向内存)3. kafka 的延迟队列自己如何实现? 答:Java本身用延迟阻塞队列来接数据,面试官引导这样会造成每个机器都需要部署, 如果是分布式环境是不是需要分布式延迟队列, 我说是4. 有没有了解过RockedMQ 是如何做延迟队列的?答:学习过程中只清楚RocketMQ和Kafka底层数据结构和吞吐量高的原因, 还没了解到RocketMQ比Kafka新增的应用是怎么实现的。5. 消息队列如果发生消息堆积怎么办? 答:从生产端、消费端、队列本身入手, 消费端增加消费者, 生产端做一个回调缓冲(如果太多减少消息生产), 队列进行消息压缩(我具体是说很多消息的id等属性重复在业务上可以接受压缩成一条)6. 场景:如果增加了消费者,性能、吞吐量还是很低是为什么?答:排查的方式, 如果还是没有提高, 可能是消费组里有空闲消费者没有用到, 增加partition, 重平衡(面试官说重平衡不能增加partition)7. kafka 怎么保证消息消费的有序性,patition内offset 可以顺序消费 , Topic内也是有序的(面试官说这个不对 Topic内不是有序的,他说的应该意思和我有些差别) 8. Mysql , innodb 底层数据结构 答B+, 分析了底层数据页、块的链接结构, 和B+为什么作为Innodb结构的原因(通过和其他数据结构进行比较)9. Mysql锁, select 会加锁吗?什么情况下会加锁? 答: select不会加锁, RC、RR隔离级别下读的是ReadView, 通过MVCC机制来构建的, 讲了下MVCC是通过undolog 和 事务id算法 进行实现的, 在可见、不可见、 活跃区可以判断要查哪些数据, RC下是每个select前创建一个ReadView, RR下是第一个Select就创建ReadView。加锁的情况 是设定了select 。。。 for update 或者 in shard mode10. 项目数据量多少? 答每天10w+, 一年3kw。11. 项目中Mysql索引失效的场景, 尤其是Like, 在你们的数据量大情况, 有什么办法实现模糊搜索高性能? 答: like 是会造成性能问题, 面试官引导我大数据情况下应该怎么做到模糊搜索, 我回到了ES是可以实现,面试官追问怎么实现的?没回答上(后续看是倒排索引), 最后回答的是维护一个前缀树, 但是第一次查询也会很慢12. redis2hive、申请Redis集群是什么? 答:杂活, 完成自测,hive2redis不合理, 之前的简历没更新。。。。。13. 项目查询怎么实现的? 答: 项目的第一步一般都是查询展示, 需要根据查询人的权限和查询条件查询, 也就是RBAC + 筛选条件, 角色获取由权限控制获取, 筛选条件写在Mybait的动态查询里面, <if test = > </if> 那些14. 如何排查慢查询?实际操作是什么?答:1. 网络连接数是否匹配? 2. 多人多版本开发问题, 后人增加索引, 但是优化器还是走了老索引, force强制走索引 3. 查看监控Buffer Pool的命中情况, 一般低于99%, 一般考虑是业务逻辑有问题, 违背了局部性原理, 抖动太多 4. 索引失效: explain 看 走的索引、类型、长度、 extra、 搜到rows 判断, 并修改 15.MySQL中B+树结构,根据主键具体查询过程、二级索引查询过程? 二级索引, 如果像是联合索引, 查询目标就在索引里面,直接返回, 如果不在, 二级索引的叶子结点就是主键, 再根据主键查询一次 16. 现在已知公网源IP、 目标IP, 输入的全过程?答: 子网掩码, 在子网内通过ARP协议搜索目标IP或者路由器的Mac地址, 在通过路由器转发,可以是邻接转发也可以是洪范, 直到找到目标子网, 再通过APR找到目标Mac进行访问, 后续还说Tcp、http(面试官说多了)17. 其他关于专业选择、和未来求职、导师学位?答:学的都是计算机基础, 未来目标就是后端开发、导师很开明自由选择方向我选择的就是去企业学习。反问:1. 进去做什么 2 部门业务
牛客333895027号:北大✌️也太强了吧
查看17道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务