需要掌握的Java知识点:

1 基本数据类型、循环控制、String类型的使用、数组、类和对象、接口和抽象类、面向对象三大特征、异常处理、集合类(List、Map、Set)

2 能够熟练使用Spring、Struts、Mybatis/Hibernate或者Springboot进行基本的业务开发,熟悉MVC架构
3 能写工作流,熟悉常用的设计模式且至少掌握3种(创建型模式5种,结构性模式7种,行为型模式11种)
4 掌握一定的前端知识,如:Jsp、Servlet、Ajax、JavaScript、Jquery
5 掌握常用的Java组件,包括但不限于:单元测试、日志系统Log4j、Json标准格式
6 对Java的较为复杂的技术能够灵活使用,如:IO输入流和输出流、多线程、反射、网络编程
7 至少熟练使用一种数据库(MySql、Oracle、PostgreSql)且熟练掌握SQL语句,如:子查询、Mybatis/Hibernate的复杂查询
8 熟练使用至少一种项目构建工具和Web容器,如:Maven/Gradle、Tomcat
9 熟练使用Git代码管理工具
10 有一定算法基础和SQL运用能力
11 对常用的框架的原理有较清晰的理解,能够掌握其设计思想和所用到的设计模式
12 能独立的完成项目的某些模块的任务
13 能够进行性能优化,代码规范,编程习惯良好无冗余代码
14 对缓存、事务管理、日志、分布式等复杂技术有着深入理解

答:分布式事务可以采用分布式锁进行实现,目前zookeeper就提供此锁;分布式锁需要牺牲一定性能去实现,若业务支付最终一致性,那此方法是最佳方案。如在京东下订单,过一会才会告诉你订单审核通过,而不是马上响应订单结果。

15 能深入理解JVM虚拟机
16 有一定的并发技术基础
17 对JDK版本的新特性有一定了解
18 至少熟练使用一种消息中间件且对消息队列机制有深入了解,如:Kafka、RabbitMQ、ActiveMQ
19 熟练使用Linux系统并掌握常用命令
20 对微服务架构模式有一定了解

05-23 00:31