纽酷科技一面面经

是在牛客上投递的一家公司
1.说一下什么是AOP
2.两种动态代理的区别
3.Java里面的浮点数为什么会精度丢失
4.如何避免精度丢失
5.用什么去代替浮点数,分别优缺点
6.MySQL查询语句的一个执行过程
7.数据库中的优化器是什么
8.怎么选择最最优的索引
9.结合b+树说一下索引失效的问题,如何避免
10.说一下分布式锁
11.怎么去设计一个秒杀系统
12.超卖问题是怎么解决
13.中间件中生产者没发送成功,消费者没有消费成功
14.说一下 ​Elasticsearch,倒排索引
15.ES的储存过程,刷盘是什么

问的还是挺多的但是感觉面试官心不在焉好像着急下班hhhhh#牛客AI配图神器#
全部评论

相关推荐

消除与控制副作用的重要性消除和控制副作用在软件开发中非常重要,原因有以下几点:https://www.nowcoder.com/issue/tutorial?zhuanlanId=j572L2&uuid=0dddbed382eb4cd3b0e79d4558d492ad1. 可预测性和一致性可预测性:副作用会影响程序的可预测性,特别是在状态变化来自外部因素时(例如,用户输入、网络请求等)。消除副作用可以让函数的行为更加可预测,确保相同输入时产生相同输出。一致性:没有副作用的函数可以被多次调用而不改变程序的其他部分状态,避免不同的调用产生不一致的结果。2. 易于测试单元测试:没有副作用的函数可以轻松地进行单元测试。测试纯函数时,只需验证其输入和输出,而无需考虑外部状态或上下文。隔离测试:副作用会导致测试之间产生隐蔽的交互,而消除副作用可以使每个测试独立,使得错误更容易定位和修复。3. 代码的可维护性简化理解:控制副作用使函数的行为更加清晰,有助于开发人员理解程序的流动,降低了学习曲线。减少复杂性:副作用往往导致代码复杂化,因为程序员需要跟踪和理解多种状态变化。通过控制副作用,代码变得简单,易于与其他部分集成。4. 复用性提高复用性:没有副作用的函数可以在不同上下文中复用,因为它们行为一致,不依赖特定的状态或上下文。这样的函数可以在不同模块或项目之间共享,减少重复代码。5. 支持并发和并行处理安全的并行执行:没有副作用的函数可以安全地并行执行,因为它们不会彼此影响。这在多线程或分布式系统中尤为重要,可以显著提高计算效率。简化并发编程:消除副作用减少了数据竞争和死锁的可能性,使并发编程更简单和安全。6. 状态管理的简化降低状态复杂性:副作用会导致程序的状态变得复杂与不易追踪,尤其是在状态管理不当时。控制副作用可以简化状态管理,使得程序的状态更清晰明了。更好的状态可追踪性:通过合理组织函数,应用状态的变化就变得容易跟踪,从而在程序运行时更容易理解某一时刻系统的状态。7. 增强代码的可移植性减少依赖性:通过控制副作用,代码减少了对外部环境(如文件系统、网络或全局状态)的依赖,可以在更广泛的环境中运行,增强了代码的可移植性。总结消除和控制副作用在现代软件开发中至关重要。它能提高代码的可预测性、可测试性和可维护性,简化状态管理,并允许更安全的并行和分布式处理。通过良好的副作用管理,开发人员可以将精力集中在业务逻辑上,创建更加健壮和高效的程序。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务