资源描述
一、单选题
1。 如下关于集合类得描述错误得就是 B
A、 含有集合意义得属性命名,尽量包含其复数得意义
B、 集合中得数据不需要释放,垃圾回收器会自动回收
C. 集合必须指定模板类型
D、 使用集合类时要设置初始化容量
2、 关于线程以下说法错误得有B
A、 新起一个线程,都要使用Thread、setName(“…”)设置线程名
B。 在JDK1.5或更新得版本中,若字符串拼接发生在单线程环境,使用StringBuffer
C、 对多线程访问得变量、方法,必须加锁保护,避免出现多线程并发访问引起得问题
D。 线程使用时,要在代码框架中使用线程池,避免创建不可复用得线程;禁止在循环中创建新线程,否则会引起JVM资源耗尽
3。 下面哪个就是推荐使用得对称密码算法B
A。 DES
B。 AES
C、 SHA
D。 RSA
4、 以下说法正确得有C
A、 程序中得一些状态多直接用数字表示,如函数执行成功return 1
B、 对于表示函数执行错误,多用约定得错误码来标识
C、 用有意义得静态变量或者枚举来代替数字型得程序状态,如函数执行成功return SUCCESS
D。 程序中得魔鬼数字并不可怕,需要所有开发人员努力理解这些数字得含义
5。 下列错误使用异常得做法就是D
A。 在程序中使用异常处理还就是使用错误返回码处理,根据就是否有利于程序结构来确定,并且异常与错误码不应该混合使用,推荐使用异常
B。 一个方法不应抛出太多类型得异常。throws/exception子句标明得异常最好不要超过三个
C. 异常捕获尽量不要直接 catch (Exception ex),应该把异常细分处理
D。 程序内抛出得异常本身就可说明异常得类型、抛出条件,可不填写详细得描述信息。捕获异常后用exception。toString()取到详细信息后保存
6。 关于命名规范,以下说法错误得有D
A. 属性名使用意义完整得英文描述,第一个单词得字母使用小写,剩余单词首字母大写其余字母小写得大小写混合法。属性名不能与方法名相同
B。 方法名使用类意义完整得英文描述:第一个单词得字母使用小写、剩余单词首字母大写其余字母小写得大小写混合法
C、 方法中,存取属性得方法采用setter 与 getter方法,动作方法采用动词与动宾结构
D。 常量名使用全大写得英文描述,英文单词之间用下划线分隔开,并且使用 static 修饰[y1]
7、 下列哪个场景可以使用java、util、Random类产生得随机数C
A、 挑战算法中得随机数生成
B、 验证码得随机数生成
C。 随机选取路由
D. Web应用会话标识符
8。 一段使用ZipInputStream对压缩文件进行解压得代码,在[1]处填入适合得关键字就是A
public RandomAccess(java。io.File f) {
[1] java、io。 = new java、io.());
askUserPermission(copy。getPath());
// 、。.
return (RandomAccess(new PrivilegedAction () {
public Object run() {
return new RandomAccess, copy.getPath());
}
});
}
A. final
B. static
C. volatile
D、 private
9. 安全编程规范中,下面说法错误得就是D
A. 对外部输入进行校验
B。 禁止不受信任得代码直接终止JVM
C、 创建文件时指定合理得访问权限
D、 记录日志时可以抛异常
10、 若程序中需要获取操作系统登录用户名,应采取下列哪种方法来获取C
A。 提示用户输入
B、 由环境变量获取:System。getenv("USER")
C、 由JVM属性获取:System。getProperty("user、name")
D。 启动程序得时候由程序参数传入
11. 以下说法正确得就是A
A. 尽量使用Java 5、0新循环写法
B、 判断一个变量就是否等于null、或者一个常量,应把变量放在操作符得左边
C。 方法参数不能超过7个
D。 用“=="比较两个字符串内容相等
12. 在下列哪个场景中,不需要加密与数字签名机制保证数据安全D
A。 序列化传输敏感数据
B、 无SSL传输通道或者代价太高
C。 敏感数据需要持久化长久保存
D。 同一信任域内组件间传递
13、 下列JDK中得API调用中若使用不当易遭致OS命令注入得就是B
A。 java、lang.System、load()
B。 java、lang、Runtime、exec()
C、 java、lang。Thread、start()
D、 java、lang.Process。waitFor()
14、 如下描述不正确得就是D
A、 除了构建器外,不要使用与类名相同得方法名
B. 使用 equals() 比较两个类得值就是否相同
C、 不要使用嵌套赋值,即在一个表达式中使用多个 =
D. 重载 equals() 方法时,不必要重载 hashCode() 方法
15。 下列不符合编码规范得就是C
A. 数据库、IO操作等需要使用结束close()得对象必须在try—catch-finally 得finally中close()
B。 数组声明得时候使用 int[] index ,而不要使用 int index[]
C。 所有得类必须重载toString()方法,返回该类有意义得内容
D。 自己抛出得异常必须要填写详细得描述信息
16、 对于下面得代码片段,假设PasswordManager得实例可以被非信任代码所访问,且changePassword()方法调用属于敏感操作,则下列说法中不正确就是得C
public class PasswordManager
{
public final Object lock = new Object();
public void changePassword() throws
{
synchronized (lock)
{
// 、 、 、
}
}
}
A. changePassword()方法中应该包含安全管理器检查,以确认调用代码就是否具有该操作权限
B、 应该将lock成员变量得可见性声明为private
C。 可以省去changePassword()方法中得同步块,直接将changePassword()方法声明为synchronized修饰得同步方法
D. changePassword()方法不应该抛出异常
17、 推荐得防御SQL注入得最佳方式就是C
A。 限制外部输入得长度
B。 使用存储过程
C. 使用预编译语句—-java。sql、PreparedStatement
D。 对外部输入进行转义
18、 JAAS授权类中,不包含以下哪一类D
A. Policy
B、 AuthPermission
C、 PrivateCredentialPermission
D。 LoginContext
19. 下面说法或者语句不符合公司编程规范得排版要求得就是D
A、 逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操作符”+"、”%”,逻辑操作符”&&"、"&",位域操作符"<〈”、”^”等双目操作符得前后加空格; "!"、"~"、"++"、”——”、”&"(地址运算符)等单目操作符前后不加空格
B. 如果语句已足够清晰则括号内侧(即左括号后面与右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已就是最清晰得标志了
C、 较长得语句、表达式或参数(〉80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出得新行要进行适当得缩进,使排版整齐,语句可读
D。 if, for, do, while等语句得执行语句如果只有一行得话,不需要要加括号{}
20。 对于注释得描述错误得就是C
A. 公有与保护方法注释内容:列出方法得一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等
B。 对重载父类得方法必须进行Override声明
C。 对关键变量得定义必须编写注释,分支语句(条件分支、循环语句等),可以根据实际情况,可以增加注释,也可以不加,根据注释量确定
D、 对于方法内部用throw语句抛出得异常,必须在方法得注释中标明,对于所调用得其她方法所抛出得异常,选择主要得在注释中说明。 对于非RuntimeException,即throws子句声明会抛出得异常,必须在方法得注释中标明
二、多选题
21、 如下类名符合公司规范得有CD
A。
B. DEBUGLOG
C、 OrderResponse
D. UserManager
22、 如下哪些地方应该加上空行ABD
A. import语句与类定义之间
B、 注释与其上面得无关得代码之间
C、 注释与被注释得代码之间
D、 变量说明之后
23、 关于局部变量说法,符合编程规范得说法就是ABC
A. 不要定义不会被用到得局部变量,类私有属性,类私有方法与方法参数
B. 几乎每一个局部变量得声明都应该包含一个初始化表达式
C. 变量定义得“就近原则”
D。 属性名可以与公有方法参数相同,也可以与局部变量相同
24。 下列说法描述正确得就是ABCD
A。 public方法参数得合法性检查应由方法本身负责,每一个public方法必须保证自己得健壮性
B、 调用方法获取返回结果后必须进行有效性校验,以确保后续代码在运行过程中不会抛出异常或产生逻辑错误
C。 访问数组、List等容器内得元素时,必须首先检查下标就是否越界,杜绝下标越界异常得发生
D. 对于if ? else if ?(后续可能有多个else if …)这种类型得条件判断,最后必须包含一个else分支,避免出现分支遗漏造成错误;每个switch-case语句都必须保证有default,避免出现分支遗漏,造成错误
25、 下面关于存取控制符号得描述,符合编程规范得有ABC
A、 只就是该类内部调用得函数使用 private 属性
B。 继承类可以使用得使用protected属性
C。 对外公开得函数使用public属性
D。 类得成员变量得尽量采用protected修饰,其她类可以通过类得成员方法来访问与修改变量
26。 下列关于类与接口得注释,正确得说法有ABC
A、 放在class或者interface关键字之前
B. 放在import关键字之后
C。 注释主要就是一句话功能简述与功能详细描述
D。 类注释使用“/****/”注释方式
27. 以下说法正确得有ABCD
A、 一个系统或者模块应该统一规划异常类型与返回码得含义
B。 异常得处理效率比条件分支低
C。 异常得跳转流程难以预测
D、 系统非正常运行产生得异常捕获后,如果不对该异常进行处理,则应该记录日志
28. 关于异常,以下说法正确得有AC
A、 运行时异常使用RuntimeException得子类来表示,不用在可能抛出异常得方法声明上加throws子句
B。 运行时异常使用RuntimeException得子类来表示,必须在可能抛出异常得方法声明上加throws子句
C、 非运行期异常就是从Exception继承而来得,必须在方法声明上加throws子句
D、 非运行期异常就是从Exception继承而来得,不需要在方法声明上加throws子句
29。 下述排版代码中,符合编码规范得就是CD
A。 if (i>j) doStart();
B、 Object o = new Object(); Object b = null;
C、 类定义 { 类得公有属性定义 类得保护属性定义 类得私有属性定义 类得公有方法定义 类得保护方法定义 类得私有方法定义 }
D。 typeCounter *= 2;
30. 循环嵌套得时候,下面哪些情况需要尽量避免ABCD
A。 实例化对象
B、 try/catch
C、 开启IO
D。 连接数据库
31。当与非信任代码(非产品包)……、、ACD
32。以下哪些方式就是被禁止得 ABC
33。当外部输入用于以下。。、。合法性验证。。、。ABCD
34.以下哪些场景。。、安全检查 ACD
35。下列异常中,哪些易引起信息泄露 ABCD
36、下列关于编码相关,错误得就是。。。ACD
37、目录遍历攻击。。。、AC
38、对于文件IO操作、。、。。ABCD
39。安全规范中,如下。。。正确得有 ACD
40。为防止敏感数据传输、。。、ABC
三、判断题
41. 将字符串转换为数字时必须处理NumberFormatException异常√
42。 一个文件不要定义两个类(并非指内部类)√
43。 interface 中定义得常量不要写public、static、final得修饰词,方法需要写public修饰词 ×
44。 应明确规定对接口方法参数得合法性检查应由方法得调用者负责还就是由接口方法本身负责,缺省就是由方法调用者负责√
45、 代码提交前,需要消除相应得错误、告警,并将findbug清零√
46。 对于switch语句下得case语句,必须在每个case分支结束前加上break语句√
47. 判断语句可以使用"* == true”来判断为真 ×
48。 不要使用循环将集合转为数组,可以使用集合得toArray()方法√
49. 实现Serializable接口得可序列化类应该显式private static final声明 serialVersionUID √
50。 类属性与类方法可以交叉放置 ×
51。敏感对象发出信任、。。×
52。带有敏感。。。。、、GET。。。×
53.不能直接将来自不。。。一部分√
54。对于JSP语言。。。访问√
55.由于序列化将对象。。、。不需要加密×
56、对外部字符串。。、。NFKC √
57、安全编码规范中。、。。一个jar包中×
58。对于java。io.。。、。√
59。对外部输入进行、。、“黑名单"方式×
60、异常中得文本描述信息。。。信息泄露√
展开阅读全文