一、.在多线程并发读写的情况下,下列哪些处理方式能保证对象的线程安全:
1、使用synchronized关键字给对象的读写操作加锁。
2、如果是基本类型,推荐使用urrent.atomic包下面提供的线程安全的基本类型包装类,例如AtomicInteger。
3、如果是集合,推荐使用urrent提供的并发集合类,例如:ConcurrentHashMap。
4.关于ORM的规则,下列哪些说法符合《阿里巴巴Java开发手册》:(错误)
A .数据库中,表达是与否概念的字段,必须使用is_xxx的方式命名。
B .推荐使用iBATIS自带的queryForList(String statementName,int start,int size)进行分页查询。
C .为避免写resultMap,可以直接拿HashMap与HashTable作为查询结果集的输出。
D .不要用resultClass当返回参数,即使所有类属性名与数据库字段一一对应,也需要定义。
3.关于索引效率,下列哪些说法符合《阿里巴巴Java开发手册》:
A .使用索引的效率一定高于全表扫描的效率。
B .关于explain的结果,type=index的索引效率好于type=ref。
C .sql查询条件 where a like '%阿里%' ,不会走索引。
D .sql查询条件 where a like '阿里%' ,a列创建了索引,一般会使用索引进行检索。
2.Hashtable,HashMap, ConcurrentHashMap都是Map的实现类,它们在处理null值的存储上有细微的区别,下列哪些说法是正确的:
A .Hashtable的KV都不可以为null。
B .HashMap的KV都可以为null。
C .HashMap的K不可以为null,V可以为null。
D .ConcurrentHashMap的KV都不可以为null。
1.关于领域模型命名,下列哪些说法符合《阿里巴巴Java开发手册》:
A .数据对象命名:xxxDO,xxx即为数据表名,例如:ResellerAccountDO。
B .数据传输对象:xxxDTO,xxx为业务领域相关的名称,例如ProductDTO。
C .展示层对象:xxxVO,xxx一般为网页名称,例如RecommendProductVO。
D .POJO是DO/DTO/BO/VO的统称,命名成xxxPOJO。
1.关于使用explain对数据库性能进行优化分析,下列哪些说法符合《阿里巴巴Java开发手册》:
A .SQL性能优化的目标:至少要达到 range 级别,要求是ref级别,如果可以是consts最好。
B .index级别走的是扫描索引,所以速度会比ref快。
C .range级别是指对表进行范围索引。
D .ref级别是指使用主键或者唯一索
2.关于代码注释,下列哪些说法符合《阿里巴巴Java开发手册》:
A .所有的抽象方法(包括接口中的方法)必须要用javadoc注释。
正则匹配快代理 B .所有的方法,包括私有方法,最好都增加注释,有总比没有强。
C .过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。
D .我的命名和代码结构非常好,可以减少注释的内容。
4.关于类命名,下列哪些说法符合《阿里巴巴Java开发手册》:
A .抽象类命名使用Abstract或Base开头。
B .异常类命名使用Exception结尾。
C .测试类命名以它要测试的类的名称开始,以Test结尾。
D .如果使用到了设计模式,建议在类名中体现出具体模式。例如代理模式的类命名:LoginProxy;观察者模式命名:ResourceObserver。
5.关于加锁,下列哪些说法符合《阿里巴巴Java开发手册》:
A .可以只锁代码区块的情况下,就不要锁整个方法体。
B .高并发的业务场景下,要考虑加锁及同步处理带来的性能损耗,能用无锁数据结构,就不要用锁。
C .能用对象锁的情况下,就不要用类锁。
D .加锁时需要保持一致的加锁顺序,否则可能会造成死锁。
1.好的单元测试必须遵守AIR原则,那么AIR原则具体是指:
A .单元测试应该是全自动执行的,并且非交互式的。
B .单元测试必须在线上环境能够全部被正确地编译。
C .为了保证单元测试稳定可靠且便于维护,单元测试用例之间决不能互相调用,也不能依赖执行的先后次序。
D .单元测试是可以重复执行的。
2.关于表字段和索引,下列哪些说法符合《阿里巴巴Java开发手册》:
A .表字段注释,如果修改字段含义或对字段表示的状态追加时,需要及时更新。
B .合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。
C .针对表的每个字段都增加索引,加快查询速度。
D .字段的区分度越高,索引的查速度越快。
3.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:
A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。
C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。
D .推荐使用wFixedThreadPool(int x)生成指定大小的线程池。
4.关于线程池管理线程的好处,下列哪些说法是正确的:
A .能够减少在创建和销毁线程上所花的时间以及系统资源的开销。
B .使用线程池一定能避免OOM问题。
C .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
D .线程池能够根据资源等待情况,自动调整线程优先级并解决死锁问题。
1.对于索引的基本原理,下列哪些说法是正确的:
A .索引的数据结构主要有B-Tree、Hash、R-Tree、Full-Text等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论