大应科技

收藏
企业服务
100-499人
天使轮
杭州/成都

0

在招职位

18

面试经验

0

真题试卷

上传简历
此刻你想和大家分享什么
职位类型
全部
后端开发
最新
热门
(自我介绍,略)#面试常问题系列#我:介绍项目,提到一些设计的改动就是你这边有提到状态的这弱一致性,那你这边怎么去理解弱一致性和强一致性?你有对这一块有了解吗?我理解,我这边看你还有使用 naocs,充当的部分是什么?是配置中心还是做那个服务发现这一块的能力?想问你的就是对于 Narcos 的 AP 和 CP 是怎么去配置的?然后你是怎么考虑这个 AP 和 CP 的?嗯,对这一块有了解吗?那如果我不用 MQ 的话,能不能实现这一套呢?就是我完全靠,比如说就只靠DB,我不需要 MQ 这样的一个中间件能不能实现同样的效果呢?(分布式事务)定时任务的频率你是怎么考虑的呢?如果是多节点呢?怎么考虑定时任务的同步协作那如果不想用分布式的引擎调度呢?(回答分布式锁)在设计这个分布式锁的时候会考虑到哪些东西?你这边对于定时任务的线程池的配置是怎么样的?如果数据量上来了之后,你定时任务超出了那个执行的时长的话,你是怎么考虑这个情况的呢Redis 常用的一些数据类型有哪些呢?比如 Redis 里面我要存一些对象列表,然后这些对象里面有一些属性,然后我需要对这些对象列表做分页、做搜索、做筛选。有这三个需求, Redis 能满足我,哪一个数据类型能满足我?或者是它这个数据类型的 API 能不能满足这一点?如果不满足的话,有没有其他的解决方案的你这一块提到了lua脚本的话,那如果这个 Lua 脚本很复杂的情况下,你是怎么做调试的边的话,我看你这边对 Java 并发编程这一块了解的比较多,你可以讲一下对于 Java 内存模型的一些理解吗?这边的理解我想我希更希望的是你能表达出这个内存模型,比如说我们都知道计算机硬件,对吧?都知道有CPU,对吧?有内存,多个线程会对这一块数据做进行操作的时候,为什么会有并发的问题?然后我们怎么从那个计算机的硬件角度上去理解它这样整体的一个过程?然后我们又是通过什么样的方式来解决这个问题的?然后我们再去了解这个过程,就是它是通过什么特性或者通过什么协议来保证的,然后或者是它这个协议其实际上原则上没有保证这一点,又是通过什么手段去解决这个问题的?你简单讲一下这边就是提及到两点,一个是 synchronize 的关键字,对吧?嗯,然后还有一个是 retrend lock 这一些对应的一些API,对吧?嗯,是的,然后你刚刚也提到 volatile 这一块的一个关键字,它只能保证内存的数据的一个可见性。那你这边,嗯,能深入聊一下,就是对于 volatile 这一块,它关键字实际上是怎么保证这个内存数据是可见的呢(答了字节码层面的标记变量) return lock 这一块,它你知道它背后它是怎么支持的吗?跟那个 synchronize 的区别是什么呢你理解的 return 的log,它实际上维护的是一个状态数据,这一块状态数据是在哪里存储的呢?使用 spring 事务过程中的时候是怎么使用它的?然后使用它的时候需要注意哪些方面?这些方面会有哪些隐患?说到了使用事务的时候会有你这个就是一开始定好的分布式锁的力度和事务所谓的力度并不一致的情况。那我如果想问一下,我在一个事务方法里面,它可能存在一些异步的一些代码,我可能就是比如说有些代码会去考虑到并行的情况,我想去提速的话,我需会遇到哪些问题?或者说这个问题能不能解决掉?其实想问的一点就是你理解的这一块的事物的数据,如果我们是用声明式的注解去做的时候,这一块事物的数据它是怎么存储的?您知道了解这一块吗?(懵逼,面试官解释了一下:它其实是跟着线程变量来的)就是你在使用这个事务过程中的时候,假如我们这边不用 d b 的事物去做了,然后那我能不能就是相当于我自己去实现套你这一套的事物的一个提交回滚?然后我可能不是放,不是用 DB 的那个statement, prepare statement 去做这一块事情的话,有没有其他的方式去做呢?比如说我把这个数据,就是这些事物的一些数据,因为我们这个东西肯定是存这个这些DB、 MySQL 或者 PG 它们引擎里面,它自己会去存这样的一个事务数据,对吧?它有对应的事务记录,那这个事物的记录你如果我把它迁移到,比如说就假设是一个开放性,等于,就比如说我放到 Redis 里面,那我在 Redis 里面应该怎么存?然后我怎么去用这一块的一个就是这一块的事务记录我是怎么交互的呢?比如说我想在 Java 里我不用 Sprint 事务了,我想自己实现一套AOP,然后这一块我该怎么去实现呢?(完全懵逼)我们实际上我们是有一些业务库和一些用专门用来做查询的一些库,我们是会分开的,就是写库和查库,我们实际上可能并不是统一到数据源,那我们是怎么保证这一块去做的呢?就是你会选择去做实时的时候,双写还是离线的方式去做,那离线去做的时候你又怎么去控制这一块的一个定时任务的频率的?对实时和离线这一块的选择会考虑哪方面的一些事情呢?就是为何选择实施?为什么要选择离线?你有想过这一点吗?(依旧懵逼)----------------------------------------------------------------------彻彻底底被拷打得体无完肤,最服气的一次,面试官人很好,答错时会给出一些解答和考察方向,打断的时候也很有礼貌
查看22道真题和解析 面试常问题系列
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2023-03-17 15:21
已编辑
java实习生(元数据引擎部)因为是实习岗,只有一面跟CTO面,校招岗好像一共四面。流程,原本3.8号晚上一面,但是面试官有事提前到3.8号下午2点了,面完还没一小时就打电话约3.8号晚上7点的CTO面了。一面,约50分钟:自我介绍索引的数据结构,为什么?一个请求发送到springboot并且返回response的流程说一下?大概就是MVC的一些东西挑一个项目,说说重点mq用过吗?我说我项目用不上mq,但是我自己实现了一个类似mq的解耦功能我说我在项目中自己实现了一套集群的容灾机制,以及用notify/subscribe解耦整个项目功能刚刚听你说是nacos的贡献者,说说你提的pr?我说修了几个bug和增加了几个功能,并且最近fork了mq,准备学习一下原理。CTO面(大约70分钟):自我介绍,我提到了项目是我带头做的,CTO一直问我为什么导师选择我不选研究生带头问我带头做了什么,我说从需求分析,软件方案设计,和甲方沟通,代码编写都是我参与的然后直接问我的项目,项目跟一面说的差不多不过CTO对项目细节扣的更细,也探讨了一下我架构的合理性springboot中有哪些设计模式?我说到了几个,然后我说,springboot暂时想不起来了,我说说别的框架的设计模式吧,然后提到了nacos的订阅通知,netty的责任链,javaIO的装饰器模式等等。你觉得你对java的哪一个部分最熟悉,我说并发编程。他问例如呢,我说例如解决一些并发问题,生产者消费者等,CTO就接着问有几种方式能实现生产者消费者,我说semaphore,synchronized,reentrantLock都可以实现,然后说了下实现的方法。synchronized说的不好简历上说你是nacos的贡献者,具体做了哪些贡献,为什么这么做,问了下线程池,其他的跟一面差不多巴拉巴拉。。反问:公司是初创公司,问一下发展的前景以及方向?CTO说公司里至少十个p8,p9如果没有前景不会来问还有什么提升的地方?我对技术热情还可以,但是有些细节不够清楚,需要提高总结:两个面试官人很好,而且对八股文问的很少,都是结合实际项目去问,也对我给nacos提的pr很感兴趣希望能过,正好转大数据应该比纯java后端路好走一点#大应科技##面经#
投递大应科技等公司8个岗位
点赞 评论 收藏
分享
2023-03-15 20:53
门头沟学院 后端
发面经攒人品
玻璃橘子:感谢大佬分享
查看8道真题和解析 投递大应科技等公司8个岗位 > 投递实习岗位前的准备
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客企业服务