1:关于变量答案:ABCD2:关于枚举答案:BC3:关于使用ibatis答案:CD4:表的必备字段答案:ABD5:防止NPE答案:ACD答案:ABD6:关于数据库是与否答案:BD7:关于count相关答案:ACD8:关于二方库依赖答案:ABC9:根据数据库表设计冗余答案:ACD多选1.关于多线程并行处理定时任务的情况,下列哪些说法符合《阿里巴巴Java开发手册》:BCDA.推荐使用Timer方式处理。B.推荐使用ScheduledExecutorService方式处理。C.Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行。D.ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行。————————————————多选2.在多线程并发读写的情况下,下列哪些处理方式能保证对象的线程安全:BCDA.使用volatile关键字。B.使用synchronized关键字给对象的读写操作加锁。C.如果是基本类型,推荐使用java.util.concurrent.atomic包下面提供的线程安全的基本类型包装类,例如AtomicInteger。D.如果是集合,推荐使用java.util.concurrent提供的并发集合类,例如:ConcurrentHashMap。备注:(volatile解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。)————————————————多选6.关于线程池管理线程的好处,下列哪些说法是正确的:ACA.能够减少在创建和销毁线程上所花的时间以及系统资源的开销。B.使用线程池一定能避免OOM问题。C.线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。D.线程池能够根据资源等待情况,自动调整线程优先级并解决死锁问题。————————————————多选20.关于加锁,下列哪些说法符合《阿里巴巴JAVA开发手册》:ABCDA.可以只锁代码区块的情况下,就不要锁整个方法体。B.高并发的业务场景下,要考虑加锁及同步处理带来的性能损耗,能用无锁数据结构,就不要用锁。C.能用对象锁的情况下,就不要用类锁。D.加锁时需要保持一致的加锁顺序,否则可能会造成死锁。多选2.关于数据库中表相关的命名,下列哪些说法符合《阿里巴巴JAVA开发手册》:ABDA.表名、字段名禁止出现数字开头,禁止两个下划线中间只出现数字。B.表名不使用复数名词。C.表必备三字段命名:id,gmt_create,gmt_modify。D.表必备三字段命名:id,gmt_create,gmt_modified。————————————————1.4版本1.5版本单选4.关于使用EXPLAIN对数据库性能进行优化分析,下列哪些说法符合《阿里巴巴JAVA开发手册》:AA.SQL性能优化的目标:至少要达到range级别,要求是ref级别,如果可以是consts最好。B.index级别走的是扫描索引,所以速度会比ref快。C.range级别是指对表进行范围索引。D.ref级别是指使用主键或者唯一索引。————————————————多选5.关于索引效率,下列哪些说法符合《阿里巴巴Java开发手册》:CDA.使用索引的效率一定高于全表扫描的效率。B.关于explain的结果,type=index的索引效率好于type=ref。C.sql查询条件wherealike‘%阿里%’,不会走索引。D.sql查询条件wherealike‘阿里%’,a列创建了索引,一般会使用索引进行检索。————————————————多选7.关于MYSQL性能优化的描述,下列哪些说法是正确的:ABCDA.主键查询优先于二级索引查询。B.表连接有一定的代价,故表连接数量越少越好。C.一般情况下,二级索引扫描优先于全表扫描。D.可以使用通过索引避免排序代价多选11.关于索引的设计,下列哪些说法符合《阿里巴巴JAVA开发手册》:ACDA.对varchar类型的字段建立索引,必须指定索引长度。B.对varchar类型的字段建立索引,不需要指定索引长度,这样索引区分度最好。C.业务上具有唯一特性的字段(含组合字段),必须指定唯一索引。D.建复合索引时,一般选择区分度高的字段放在最左列。————————————————单选3.KV结构的集合,在处理NULL值的存储上有细微的区别,下列哪些说法是正确的:AA.TreeMap的key不可以为nullB.TreeMap的key可以为nullC.ConcurrentHashMap的key可以为nullD.ConcurrentHashMap的value可以为null注释:HashMap的key/value均可以为null,但是TreeMap的key不能为空,value可以为空————————————————多选10.HASHTABLE,HASHMAP,CONCURRENTHASHMAP都是MAP的实现类,它们在处理NULL值的存储上有细微的区别,下列哪些说法是正确的:ABDA.Hashtable的KV都不可以为null。B.HashMap的KV都可以为null。C.HashMap的K不可以为null,V可以为null。D.ConcurrentHashMap的KV都不可以为null。————————————————单选32.SORT表示元素在存入集合时进行了排序,数据遍历的结果是按某个排序规则输出的;而ORDER表示每次遍历的序列都是一样的,元素前后关系每次遍历都是确定的,那么下列哪些集合既是SORT,又是ORDER的:DA.HashSetB.LinkedListC.HashMapD.TreeSet多选12.关于CHECKED/UNCHECKEDEXCEPTION,下列哪些说法是正确的:BCDA.继承java.lang.Error的类属于checkedexception。B.checked异常继承java.lang.Exception类。C.unchecked异常继承java.lang.RuntimeException类。D.NullPointerException,IllegalArgumentException属于uncheckedexception。————————————————多选20.关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴JAVA开发手册》:ABCDA.向公司外部提供的http/api接口,推荐使用“错误码”方式返回异常或者错误信息。B.对于应用内部的方法调用,推荐使用“抛出异常”的方式处理异常或者错误信息。C.跨应用的RPC调用,推荐使用将“错误码”和“错误简短信息”封装成Result的方式进行返回。D.对外提供的接口,一定要保证逻辑健壮性:尽量避免空指针等技术类异常;对于业务类异常要做好错误码或者异常信息的封装。————————————————多选5.关于异常的处理方式,下列哪些说法是正确的:BDA.为防止obj对象本身空指针异常,书写代码时应该注意加异常捕获处理,例如:try{obj.method()}catch(NullPointerExceptione){……}。B.方法签名中,抛给调用者的关键字为throwsC.方法内部,抛出异常实例对象为throwsD.自定义异常要做到“认知对等”,即:抛出者和接收者要保持对自定义异常的认知统一,接收方需要知道这种异常的含义和对应的处理方案10:关于索引的设计和使用1.关于explanin执行计划2.关于数据库模糊检索的描述3.数据使用Arrays.aslist转化为集合4.关于捕获异常和抛异常5.kv结构的集合答案:A6.关于java的接口描述答案:BCD7.关于代码注释答案:ABD8.关于文件编码和格式9.单元测试多选1.关于多线程并行处理定时任务的情况,下列哪些说法符合《阿里巴巴JAVA开发手册》:BCDA.推荐使用Timer方式处理。B.推荐使用ScheduledExecutorService方式处理。C.Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行。D.ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行。多选2.关于数据库中表相关的命名,下列哪些说法符合《阿里巴巴JAVA开发手册》:ABDA.表名、字段名禁止出现数字开头,禁止两个下划线中间只出现数字。B.表名不使用复数名词。C.表必备三字段命名:id,gmt_create,gmt_modify。D.表必备三字段命名:id,gmt_create,gmt_modified。单选3.KV结构的集合,在处理NULL值的存储上有细微的区别,下列哪些说法是正确的:AA.TreeMap的key不可以为nullB.TreeMap的key可以为nullC.ConcurrentHashMap的key可以为nullD.ConcurrentHashMap的value可以为null注释:HashMap的key/value均可以为null,但是TreeMap的key不能为空,value可以为空多选4.关于二方库依赖的解析命令,下列哪些说法是正确的:ABCA.mvndependency:resolve打印出已仲裁依赖的列表。B.mvndependency:tree打印工程整个的依赖树结构。C.mvndependency:tree-Dverbose-Dincludes=commons-lang打印出与commons-lang相关的详细依赖。D.mvncleaninstall打印工程整个的依赖树结构,并部署到本地仓库中。多选5.关于变量和常量定义,下列哪些符合《阿里巴巴JAVA开发手册》:ADA.Longa=2L;//大写的LB.Longa=2l;//小写的lC.常量只定义一次,不再赋值,所以不需要命名规范。D.不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。多选6.关于线程安全,下列哪些说法是正确的:ACDA.SimpleDateFormat是线程不安全的类。B.SimpleDateFormat是线程安全的类。C.一般不要定义SimpleDateFormat的static变量,如果定义为static,必须保证线程安全。D.推荐使用Apache封装好的DateUtils和DateFormatUtils工具类,来处理时间日期转换问题。多选7.以下关于格式规约的说法,正确的有哪些:ADA.代码块缩进4个空格,如果使用tab缩进,请设置成1个tab为4个空格;B.代码块缩进5个空格,如果使用tab缩进,请设置成1个tab为5个空格。C.为了保持代码美观,《手册》强烈推荐增加若干空格,使某一行的变量与相邻对应位置的变量对齐。D.方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间推荐插入一个空行;相同业务逻辑和语义之间不需要插入空行。多选8.数组使用ARRAYS.ASLIST转化为集合,下列说法哪些正确的:ACDA.数组元素的修改,会影响到转化过来的集合。B.数组元素的修改,不会影响到转化过来的集合。C.对于转换过来的集合,它的add/remove/clear方法会抛出:UnsupportedOperationException。D.Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。多选9.关于异常的处理方式,下列哪些说法是正确的:BDA.为防止obj对象本身空指针异常,书写代码时应该注意加异常捕获处理,例如:try{obj.method()}catch(NullPointerExceptione){……}。B.方法签名中,抛给调用者的关键字为throwsC.方法内部,抛出异常实例对象为throwsD.自定义异常要做到“认知对等”,即:抛出者和接收者要保持对自定义异常的认知统一,接收方需要知道这