前几天,考了阿里编码规范刚好80险过,总结出以下例题,答案有错,欢迎评论
1.关于方法的返回值是否可以为null,下列说法正确的是(BCD)
A.方法的返回值可以为null,如果是集合,必须返回空集合
B.方法的返回值可以为null,不强制返回空集合,或者空对象等
C.方法实现者必须添加注释,充分说明什么情况下会返回null值
D.防止NPE是调用者的责任
2.如何处理单元测试产生的数据,下列说法正确的是(AC)
A.测试数据入库时加特殊前缀标识
B.测试数据使用独立的测试库
C.自动回滚单元测试产生的脏数据
D.无须区别,统一在业务代码中进行判断和识别
3.关于count相关的使用,下列哪些说法符合阿里巴巴java规范 (ACD)
A.不要使用count(列名)或count(常量)来替代count(*)
B.count(列名)会统计值为null的行,而count(*)不会统计
C.当某一列的值全是NULL时,count(列名)返回0
D.在程序代码中写分页查询逻辑是,若count为0应直接返回。以避免执行后面的查询
4.数组使用Arrays.asList转化为集合,下列说法哪些是正确的:(ACD)
A.数据元素的修改,会影响到转化过来的集合
B.数组元素的修改,不会影响到转化过来的集合
C.对于转换过来的集合,它的add/remove/clear方法会抛出: UnsupportedOperationException 异常
D.Arrays.asList体现的是适配器模式,只是转换接口,后台的接口仍是数组
5.关于异常处理,下列哪些说法是正确的:(ABCD)
A.try块放到了事务代码中,catch异常后,如果需要回滚事务,必须手动回滚事务
B.在finally块必须对文件秀进行关闭
C.不能在finally使用return,fanally块中的return返回方法结束执行,不会再执行 try 块中的 return 语句
D.循坏体中避免不必要的try-catch操作
6.对于索引的基本原理,下列哪些说法是正确的: ABCD
A.索引的数据结构主要有B-Tree,Hash,R-Tree,Full-Text等
B.从物理存储来看,主要分为聚集和非聚集
C.Mysql的表是聚集索引组织表(index of table)
D.聚集索引的叶子节点存放的是数据,非聚集索引的叶子节点存放的瑟吉欧非聚集索引的key和主键的值
暂未找到相关资料,个人觉得全对
7.关于二方库的snapshot与release的区别,下列哪些说法是正确的(ABD)
A.snapshot在本地编译时,都会到中央库下载最新的二方库
B.release在本地编译时,如果已经存在相同的版本号,即使中央仓库有最新相同版本的二方库也不会拉取
C.应用使用了A的release版本的二方库,A依赖了B的snapshot二方库,应用本地编译时,并不会拉取B最新的snapshot的jar
D.应用发布尽量使用release版本的二方库,此举是为了保证发布的冥等性
8.下列哪些说法符合阿里巴巴java开发手册:ABCD
A.在使用正则表达式时,利用好其预编功能,可以有效加快正则匹配速度
B.在JDK8中,针对统计时间等场景,推荐使用instant类
C.尽量不要在vm中加入变量声明,逻辑运算符,更不要在vm模板中加入任何复杂的逻辑
D.后台输送给页面的变量必须加$!{var}----中间的感叹号
9.关于分页查询,下列哪些说法符合阿里巴巴java开发手册 ABC
A.分页查询,当统计的count为0时,应直接返回,不要在执行分页查询语句
B.IBATIS自带的queryForList(Stirng statemenName,int start,int size)分页接口有隐性隐患,不允许使用
C.定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑
D.可使用存储过程写分页逻辑,提高效率。
10.针对tcp协议。下列哪些说法是正确的: CD
A.tcp链接主动关闭的一方,在完成四次挥手协议后,即会立即关闭并释放Socket
B.处于time_wait状态的socket,其实是已经关闭状态,当需要新建连接时,可以被马上复用
C.当大量的socket处于time-wait状态是,会导致可用的socket资源稀缺,从而导致服务器并发能力下降
D.通过修改/etc/syscti.conf配置文件,减小time_wait的超时时间,可以降低time_wait状态的socket数量