java面试

44次阅读
没有评论

1、自我介绍(2-5分钟,项目经验、团队合作、热爱学习、学习能力强、积极乐观)
2、为什么离职。上家公司在哪?那座大厦、几层、周边有哪些标志性建筑或公司。公司多少人。
3、介绍一下最近做过的项目(项目的架构、业务、做了哪些优化),需要画图
4、你负责项目中哪一块业务。
5、项目组有几个人、集群有几台服务器、每天数据量多大、总数据量多大、高峰期数据量多大。
大数据(5)+java(5)+前端(1-2)+安卓(1-2)+ios(1-2)
6、项目中遇到哪些问题。
1.整个项目的人员总数?
2.项目的人员分配?(前端几个,后端几个)
3.项目人员分配的岗位名称?
4.项目是否上线?上线的时间?
5.项目上线的流程?
6.做项目过程中遇到不会的问题怎么解决的?
7.平时通过什么方式学习?
8.项目后期通过什么进行维护?
埋点行为数据基本格式(基本字段)
我们要收集和分析的数据主要包括页面数据、事件数据、曝光数据、启动数据和错误数据。
数据仓库每天跑多少张表,大概什么时候运行,运行多久?
基本一个项目建一个库,表格个数为初始的原始数据表格加上统计结果表格的总数。(一般70-100张表格)
用户行为5张;业务数据33张表 =》ods34 =》dwd=>32张=》dws 22张宽表=>ads=》15张 =》103张
Datax: 00:10 => 20分钟左右 第一次全量
用户行为数据,每天0:30开始运行。=》ds =》 5-6个小时运行完指标
所有离线数据报表控制在8小时之内
大数据实时处理部分控制在5分钟之内。(分钟级别、秒级别)
如果是实时推荐系统,需要秒级响应
与mysql等关系数据库区别
团队
微服务
你说的内存映射和零拷贝又是什么啊
是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件
传统IO:2次DMA拷贝+2次CPU拷贝+4次上下文切换
mmap:2次DMA拷贝+1次CPU拷贝+4次上下文切换
sendfile():2次DMA拷贝+1次CPU拷贝+2次上下文切换
但是使用sendfile()方式时,IO数据对于用户空间是不可见的。
场景设计
红包设计
接口幂等
分布式事务
支付通用
如果叫你自己设计一个消息中间件,你会如何设计?
生产者、消费者、Broker、注册中心。
而注册中心用于服务的发现包括:Broker 的发现、生产者的发现、消费者的发现,当然还包括下线,可以说服务的高可用离不开注册中心。
然后开始简述实现要点,可以同通信讲起:各模块的通信可以基于 Netty 然后自定义协议来实现,注册中心可以利用 zookeeper、consul、eureka、nacos 等等,也可以像 RocketMQ 自己实现简单的 namesrv (这一句话就都是关键词)。
为了考虑扩容和整体的性能,采用分布式的思想,像 Kafka 一样采取分区理念,一个 Topic 分为多个 partition,并且为保证数据可靠性,采取多副本存储,即 Leader 和 follower,根据性能和数据可靠的权衡提供异步和同步的刷盘存储。
并且利用选举算法保证 Leader 挂了之后 follower 可以顶上,保证消息队列的高可用。
也同样为了提高消息队列的可靠性利用本地文件系统来存储消息,并且采用顺序写的方式来提高性能。
可根据消息队列的特性利用内存映射、零拷贝进一步的提升性能,还可利用像 Kafka 这种批处理思想提高整体的吞吐。
比如如何设计一个线程池?如何设计一个 HashMap ?如何设计一个 RPC 框架等等,当然这里的设计只是让你说说大致设计理念,整体架构。
你负责项目的时候遇到了哪些比较棘手的问题?怎么解决的?

正文完
 
评论(没有评论)