阿里巴巴Java开发手册考试题库:多线程、ORM、索引效率和领域模型命名

5星 · 超过95%的资源 需积分: 50 137 下载量 76 浏览量 更新于2024-07-19 收藏 682KB DOCX 举报
"阿里巴巴考试题及答案详解" 本文将对阿里巴巴考试题及答案进行详细分析,涵盖多线程并发读写、ORM规则、索引效率、Map实现类和领域模型命名等多个方面的知识点。 一、多线程并发读写 在多线程并发读写的情况下,需要保证对象的线程安全。有多种处理方式可以实现线程安全,包括: 1. 使用synchronized关键字给对象的读写操作加锁。synchronized关键字可以将对象的读写操作同步化,使得多个线程无法同时访问对象。 2. 使用java.util.concurrent.atomic包下面提供的线程安全的基本类型包装类,例如AtomicInteger。这些类提供了原子操作,可以在多线程环境下安全地操作基本类型变量。 3. 使用java.util.concurrent提供的并发集合类,例如ConcurrentHashMap。这些类提供了线程安全的集合操作,可以在多线程环境下安全地操作集合。 二、ORM规则 阿里巴巴Java开发手册中规定了ORM的规则,包括: 1. 数据库中,表达是与否概念的字段,必须使用is_xxx的方式命名。 2. 不推荐使用iBATIS自带的queryForList(String statementName, int start, int size)进行分页查询。 3. 不要用resultClass当返回参数,即使所有类属性名与数据库字段一一对应,也需要定义resultMap。 三、索引效率 阿里巴巴Java开发手册中规定了索引效率的相关规则,包括: 1. 使用索引的效率不一定高于全表扫描的效率。在某些情况下,全表扫描的效率可能更高。 2. explain的结果,type=index的索引效率不一定高于type=ref。 3. sql查询条件where alike'%阿里%',不会走索引。 4. sql查询条件where alike'阿里%', a列创建了索引,一般会使用索引进行检索。 四、Map实现类 Hashtable、HashMap、ConcurrentHashMap都是Map的实现类,它们在处理null值的存储上有细微的区别: 1. Hashtable的KV都不可以为null。 2. HashMap的KV都可以为null,但K不能为空。 3. ConcurrentHashMap的KV都不可以为null。 五、领域模型命名 阿里巴巴Java开发手册中规定了领域模型命名的规则,包括: 1. 数据对象命名:xxxDO,xxx即为数据表名,例如:ResellerAccountDO。 2. 数据传输对象:xxxDTO,xxx为业务领域相关的名称,例如ProductDTO。 3. 展示层对象:xxxVO,xxx一般为网页名称,例如RecommendProductVO。 4. POJO是DO的子集。 本文对阿里巴巴考试题及答案进行了详细分析,涵盖了多线程并发读写、ORM规则、索引效率、Map实现类和领域模型命名等多个方面的知识点。