您现在的位置是:网站首页> 编程开发> java 编程开发

java 常见面试题

2022-07-21java 449人已围观

简介1、说一说你上家公司的岗位职责,主要以管理为主还是开发为主?2、开发里主要做了发些改进?做的哪些事是可以降本增效的。3、如果理解 DDD 领域模型? 什么样的产品会用到?优缺点是什么?答:DDD模型简单理解就是中台化,把各业务拆分成不同的微服务,一般大型的项目,比如电商里的用户、商品、订单、物流几种是可以拆分成不同的微服务的,优点是模块独立,缺点是硬件成本高,还会有分布式事物的问题存在。4、如何解

java 常见面试题

最后更新:2022-12-02 10:52:54

推荐指数

1、说一说你上家公司的岗位职责,主要以管理为主还是开发为主?

2、开发里主要做了发些改进?做的哪些事是可以降本增效的。

3、如果理解 DDD 领域模型? 什么样的产品会用到?优缺点是什么?

答:DDD模型简单理解就是中台化,把各业务拆分成不同的微服务,一般大型的项目,比如电商里的用户、商品、订单、物流几种是可以拆分成不同的微服务的,优点是模块独立,缺点是硬件成本高,还会有分布式事物的问题存在。

4、如何解决分布式事物?

答:

1)可以使用接口或mq的方式做逆向流,如果自己事物内失败了,调用逆向接口或逆向mq,需要注意的是要做好接口的幂等。缺点是会产生逆向数据流,比如数据冲正等非业务的数据出现。

2)使用springcloud alibaba的seata方式完成分布式事物


5、seata的几种模式及实现方法

答:seata有四种实现方式

1)TCC模式:一阶段 prepare 行为。二阶段 commit 或 rollback 行为。缺点是

2)AT模式:通过xid做为整体的请求号,保障各微服务中请求的xid是一至的。AT模式里会有一个事务协调者的主线程,回滚时会根据请求做出反向的SQL,回滚时执行该SQL。该锁是轻量级的行锁,比TCC模式要好很多。优点是不用写代码,直接打注解就可以实现。

3)XA模式:同AT模式,只是连接的数据源不同使用的MysqlXAConnection 类封装类 XA协议的底层接口供外部调用。

4)SAGA模式:需要在业务代码中实现 prepare/commit/rollback 逻辑相比,XA 模式对业务代码无侵入。


6、说一说oAuth2的实现方式有哪些?


7、说一说jwt的实现原理?shiro 是什么?如何实现的?


8、double和springcloud的区别是什么?有哪些优缺点?

答:Dubbo相对而言,成熟稳定,文档齐全门槛低一些,但是很多服务治理方面的功能是缺失的。Springcloud大而全,但很多功能不强大,不成熟。长期而言,个人更看好Spring cloud,虽然目前还有一些坑,而且门槛也比Dubbo高,但整体发展趋势比Dubbo强,Spring cloud生态体系比Dubbo更好,功能更全面。掌握Dubbo和Spring cloud是不冲突的,二者有很多相同的地方,又有很多地方不同。

dubbo缺陷很多呀,特别是服务治理方面,服务限流算法有缺陷,突发流量有问题的,服务熔断才刚刚有,但也有缺陷,监控方面只支持点到点的监控,不能做到分布式链路监控,没有服务网关,服务分组能力太弱。dubbo性能还有提升的空间,编解码不支持messagpack,通信方式有待改进。监控中心功能太简单,监控中心和管理后台没有整合。dubbo才刚刚和springcloud打通,支持还不是很友好。


9、MYSQL存储引擎(4种)

1)MyISAM它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。

2)每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:.frm(存储表定义) ,YD(MYData,存储数据) , MYI(MYIndex,存储索引),InnoDB,InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

3)memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。

4)merge存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,MERGE表中并没有数据,对MERGE类型的表可以进行查询、更新、删除的操作,这些操作实际上是对内部的MyISAM表进行操作。


10、mysql的索引有哪些,如何做sql优化?



11、大型项目里如何做架构设计?

答:这里可以说一说自己的架构图,使用了哪些技术栈,以及技术的选型和各种中间件的技术对比。


很赞哦! (1)

文章评论

来说两句吧...

验证码: