阿里巴巴Java开发手册考试题库:多线程、ORM、索引效率和领域模型命名
5星 · 超过95%的资源 需积分: 50 87 浏览量
更新于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实现类和领域模型命名等多个方面的知识点。
点击了解资源详情
点击了解资源详情
1317 浏览量
1419 浏览量
2021-10-04 上传
2024-05-07 上传
2021-10-20 上传
you595030341
- 粉丝: 1
- 资源: 5