A.向公司外部提供的http/api接口,推荐使用“错误码”方式返回异常或者错误信息
B.对于应用内部的方法调用,推荐使用“抛出异常”的方式处理异常或者错误信息
C.跨应用的RPC调用,推荐使用将“错误码”和“错误简短信息”封装成Result的方式进行返回
D.对外提供的接口,一定要保证逻辑健壮性:尽量避免空指针等技术类异常;对于业务类异常要做好错误码或者异常信息的封装
第1题:
A.如果需要捕获不同类型异常,为了方便处理,可以使用catch(Exceptione){...}
B.不要捕获异常后不处理,丢弃异常信息
C.捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类
D.异常定义时区分unchecked/checked异常,避免直接使用RuntimeException抛出
第2题:
A.继承java.lang.Error的类属于checkedexception
B.checked异常继承java.lang.Exception类
C.unchecked异常继承java.lang.RuntimeException类
D.NullPointerException,IllegalArgumentException属于uncheckedexception
第3题:
A.版本号命名格式:主版本号.次版本号.修订号
B.主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级
C.次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改
D.修订号:保持完全兼容性,修复BUG、新增次要功能特性等
第4题:
A.线程资源必须通过线程池提供,不允许在应用中自行显式创建线程
B.同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗
C.创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯
D.推荐使用Executors.newFixedThreadPool(intx)生成指定大小的线程池。(线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式)
第5题:
A.异常信息应该包括两类信息:案发现场信息和异常堆栈信息
B.日志文件推荐至少保存15天,因为有些异常具备以“周”为频次发生的特点
C.避免重复打印日志,浪费磁盘空间,务必在log4j.xml中设置additivity=false
D.错误日志和业务日志尽量分开存放
第6题:
A.不允许出现任何魔法值(即未经预先定义的常量)直接出现在代码中
B.魔法值是指程序中随意定义并赋值的变量值,如果代码编写者明白变量值意义是可以任意使用的,例如在代码中写if(status==3)returnerror;符合规范
C.如果变量值仅在一个范围内变化推荐用Enum类
D.在程序中,一律禁止使用枚举类型
第7题:
A.防止pagesize过大导致内存溢出
B.防止正则输入源串拒绝服务ReDOS
C.防止任意重定向
D.预防SQL注入
第8题:
A.对于是与否概念的列名,必须使用can_abc来表示
B.对于是与否概念的列名,必须使用is_abc来表示
C.数据类型是varchar(1)(Y表示是,N表示否)
D.数据类型是unsignedtinyint.(1表示是,0表示否)
第9题:
A.所有的POJO类属性必须使用包装数据类型
B.RPC方法的返回值和参数必须使用包装数据类型
C.因为JAVA的自动装箱与拆箱机制,不需要根据场景来区分数据类型
D.所有的局部变量推荐使用基本数据类型
第10题:
A.抽象类命名使用Abstract或Base开头
B.异常类命名使用Exception结尾
C.测试类命名以它要测试的类的名称开始,以Test结尾
D.如果使用到了设计模式,建议在类名中体现出具体模式。例如代理模式的类命名:LoginProxy;观察者模式命名:ResourceObserver
第11题:
A.IDE的textfileencoding设置为GBK格式
B.IDE的textfileencoding设置为UTF-8格式
C.IDE中文件的换行符使用unix格式
D.IDE中文件的换行符使用windows格式
第12题:
下面关于Java接口的说法正确的是()。
第13题:
A.表名、字段名禁止出现数字开头,禁止两个下划线中间只出现数字
B.表名不使用复数名词
C.表必备三字段命名:id,gmt_create,gmt_modify
D.表必备三字段命名:id,gmt_create,gmt_modified
第14题:
A.Longa=2L;//大写的L
B.Longa=2l;//小写的1
C.常量只定义一次,不再赋值,所以不需要命名规范
D.不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护
第15题:
A.所有的抽象方法(包括接口中的方法)必须要用javadoc注释
B.所有的方法,包括私有方法,最好都增加注释,有总比没有强
C.过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担
D.我的命名和代码结构非常好,可以减少注释的内容
第16题:
A.推荐if-else的方式可以改写成卫语句的形式
B.尽量减少try-catch块内的逻辑,定义对象、变量、获取数据库连接等操作可以移到try-catch块外处理
C.if(condition)statements;单行语句不需要使用大括号
D.在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有
第17题:
A.主键索引(primarykey),字段类型为unsignedbigint、单表时推荐自增、步长为1
B.主键索引(primarykey),字段类型为unsignedbigint、单表时推荐自增、步长为2
C.唯一索引(uniquekey),命名规则为uk_字段名(如果多个字段继续下划线)
D.普通索引(normalindex),标记成idx_字段名(如果多个继续下划线)
第18题:
A.推荐使用Timer方式处理
B.推荐使用ScheduledExecutorService方式处理
C.Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行
D.ScheduledExecutorService并发运行多个定时任务时,其中某线程抛出异常,不会影响到其它线程的继续运行
第19题:
A.在接口类中的方法和属性使用public修饰符
B.对于Service类,内部的实现类加Impl的后缀与接口区别。例如:ProductServiceImpl实现ProductService接口
C.对于Service类,基于SOA的理念,是以接口方式暴露服务
D.尽量不在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,而且是整个应用的基础常量
第20题:
A.表字段注释,如果修改字段含义或对字段表示的状态追加时,需要及时更新
B.合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度
C.针对表的每个字段都增加索引,加快查询速度
D.字段的区分度越高,索引的查找速度越快
第21题:
A.数据库库名和表名没有规定,可任意取名,只要方便记忆即可
B.库名应该尽量与应用名称保持一致,表的命名最好是业务名称_表名的方式
C.无论是库名还是表名都禁用保留字,如desc、match、range等
D.表名、字段名必须使用小写字母或数字
第22题:
A.分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句
B.iBATIS自带的queryForList(StringstatementName,intstart,intsize)分页接口有性能隐患,不允许使用
C.定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑
D.可使用存储过程写分页逻辑,提高效率
第23题:
下列哪个说法是正确的:()。