-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path题库1
619 lines (600 loc) · 27.7 KB
/
题库1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
1、永远不应该被序列化的敏感信息不包括:回答正确
A、数字证书
B、所有的类
C、秘钥
D、在序列化时引用敏感数据的类
正确答案:B 提交答案:B
2、以下程序执行输出结果是:
public class Test {
public volatile int inc = 0;
public void increase() {
inc++;
}
public static void main(String[] args) {
final Test test = new Test();
for(int i=0;i<10000;i++){
new Thread(){
public void run() {
for(int j=0;j<10;j++)
test.increase();
};
}.start();
}
while(Thread.activeCount()>1) //保证前面的线程都执行完
Thread.yield();
System.out.println(test.inc);
}
}回答正确
A、不确定,小于或等于100000
B、 10
C、 100000
D、 0
正确答案:A 提交答案:A
3、关于锁对象的说法错误的是
A、Boolean类型不适合作为锁使用
B、在异常条件下,保证释放已持有的锁
C、使用相同的方式请求和释放锁,避免死锁
D、Integer类型不适合作为锁使用
正确答案:D 提交答案:D
4、以下哪个不属于ReDos攻击的防护手段回答正确
A、对正则匹配的数据长度进行限制
B、在编写正则时,尽量不要使用过于复杂的正则
C、避免动态构建正则,当使用不可信数据构造正则时,要使用黑名单进行严格校验
D、在编写正则时,尽量减少分组的使用
正确答案:C 提交答案:C
5、关于文件路径校验说法错误的是回答正确
A、File.getAbsolutePath()返回文件的相对路径
B、使用File.getCanonicalPath()方法,它能在所有的平台上对所有别名、快捷方式以及符号链接进行一致地解析
C、获取文件路径时,必须使用getCanonicalPath(),禁止使用getAbsolutePath()
D、文件路径校验前必须先进行标准化处理
正确答案:A 提交答案:A
6、TransformerFactory 设置下面哪个feature可使xslt在转换XML过程中避免被注入执行任意程序恶意代码的问题回答正确
A、http://apache.org/xml/features/disallow-doctype-decl
B、http://javax.xml.XMLConstants/feature/secure-processing
C、http://xml.org/sax/features/external-parameter-entities
D、http://xml.org/sax/features/external-general-entities
正确答案:B 提交答案:B
7、关于NullPointException异常下面说明错误的是?
A、在判断字符串是有效时不可以根据try捕获异常的方式判断其不是有效字符串。
B、对于调用开源三方件,三方件中抛出NullPointerException异常时,可以捕获NullPointerException,并对该异常进行处理。
C、直接捕获异常,并对该异常进行处理,保证程序正常执行不会报错即可。
D、非开源三方件的NullPointException异常需要对根因进行定位处理,不是只处理异常即可。
正确答案:C 提交答案:C
8、下面的说法错误的是回答正确
A、不要使用已标注为@deprecated的方法
B、对于返回数组或者容器的方法,应返回长度为0的数组或者容器,代替返回nul
C、使用JDK自带的API或广泛使用的开源库,不要自己写类似的功能
D、某些情况下我们希望指定某些枚举常量为某个固定值以代表特殊意义。返回该固定值的方法可以基于ordinal方法来实现
正确答案:D 提交答案:D
9、下面哪个地方不应该使用空格隔开
A、任何关键字(例如if,for 或catch )与该行后面的左括号用空格分开
B、在声明的类型和变量之间
C、任何二元或三元运算符的两边,包含联合类型中的&符号以及 `::`(方法引用的两个冒号)
D、在双斜杠( // )的开始一行注释的前面须留有空格,建议仅留有一个空格,不鼓励留有多个空格
正确答案:C 提交答案:C
10、被检查的异常和不受检查的异常有什么区别
A、受检查的异常应该用try-catch块代码处理,或者在方法中用throws关键字让JRE了解程序可能抛出哪些异常。运行时异常在程序中不要求被处理或用throws语句告知。
B、Exception是所有受检异常的基类,不是运行时异常的基类。
C、NumberFormatException,NullPointerException属于受检异常,需要处理。
D、错误(error)被JVM保留用于指示资源不足、约束失败或者其他程序无法继续执行的情况,日常编程中最好实现新的Error子类来说明当前错误的情况。
正确答案:A 提交答案:A
11、推荐的防御SQL注入的最佳方式是回答正确
A、使用存储过程
B、对外部输入进行转义
C、限制外部输入的长度
D、使用参数化查询
正确答案:D 提交答案:D
12、下面函数返回结果是:
public int testException(){
int flag = -1;
try{
}catch(Exception e){
flag = 2;
}finlly{
return 0;
}
return flag;
}回答正确
A、都不是
B、 -1
C、 0
D、 2
正确答案:C 提交答案:C
13、下面说法错误的是回答正确
A、过多的使用锁可能会导致死锁
B、调用Thread.stop()会造成一个线程非正常释放它所获得的所有锁,可能会暴露这些锁保护的对象,使这些对象处于一个不一致的状态中
C、程序不能使用实例锁来保护静态共享数据,因为实例锁在两个或多个实例的情况下是无效的,导致并发时的线程同步失效
D、直接调用Thread.run()方法,run()方法中的语句是由新创建线程来执行
正确答案:D 提交答案:D
14、如下此段代码运行输出是什么
public class Swan {
public static void fly() {
System.out.println("swan can fly ...");
}
public void flyOther() {
System.out.println("swan can fly other...");
}
static class UglyDuck extends Swan{
public static void fly() {
System.out.println("ugly duck can't fly ...");
}
public void flyOther() {
System.out.println("ugly duck can't fly other...");
}
}
public static void main(String[] args) {
Swan uglyDuck = new UglyDuck();
uglyDuck.fly();// 1
uglyDuck.flyOther();// 2
}
}回答错误
A、swan can fly …
swan can fly other…
B、ugly duck can't fly …
swan can fly other…
C、ugly duck can't fly …
ugly duck can't fly other…
D、swan can fly ...
ugly duck can't fly other…
正确答案:D
15、使用SSLSocket代替Socket的原因?回答正确
A、更简单
B、减低效率
C、效率更快
D、更安全
正确答案:D 提交答案:D
16、那个不是推荐的加密算法
A、SHA1
B、ECDSA
C、AES
D、RSA
正确答案:A 提交答案:A
17、父类中处理敏感关键信息的方法,以下哪种方式最合理回答正确
A、使用protected修饰
B、使用final修饰
C、使用public修饰
正确答案:B 提交答案:B
18、下面说法正确的是:回答正确
A、使用空格缩进,对齐就行, 没有空格个数要求
B、使用空格进行缩进,每次缩进2个空格即可
C、 代码缩进使用tab,空格都可以
D、使用空格进行缩进,每次缩进4个空格
正确答案:D 提交答案:D
19、关于国际化的说法错误的是回答正确
A、在所有的输入输出环节,指明正确的编码方式,进行正确的字符到字节,或字节到字符的转换
B、String类的toUpperCase()和toLowerCase()方法、format()方法,如果不输入参数,则会按当前系统默认的编码模式转换,因此转换结果可能并非如你所预期
C、如果输入源或输出目标直接支持,尽可能直接使用GBK进行输入输出
D、Java源文件,资源文件,配置文件必须用UTF-8编码
正确答案:C 提交答案:C
20、以下代码中1和2处代码的输出分别是
public class Email
{
public String address;
public Email(String address)
{
this.address = address;
}
public int hashCode()
{
int result = address.hashCode();
return result;
}
public static void main(String[] args)
{
HashSet<Email> set = new HashSet<Email>();
Email email = new Email("huawei.com");
set.add(email);
email.address = "silong.com";
System.out.println(set.contains(email)); //1
set.remove(email);
System.out.println(set.size()); //2
}
}
A、false,1
B、true,1
C、true,0
D、false,0
正确答案:A 提交答案:A
21、下面的代码片段最终输出的结果是多少
public class Increment {
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < 100; i++) {
count = count++;
}
System.out.println(count);
}
}
A、 100
B、 0
C、 1
D、 10
正确答案:B 提交答案:B
22、业界威胁建模方法主要的类型不包括:回答错误
A、以威胁为中心
B、以攻击者为中心
C、以资产为中心
D、以软件为中心
正确答案:A 提交答案:D
23、保存口令等敏感数据应优先使用_______,使用结束后_______,可降低敏感数据泄露的风险( )回答正确
A、String,置为0
B、char[],清0
C、String,等待垃圾收集器回收
D、char[],等待垃圾收集器回收
正确答案:B 提交答案:B
24、当方法遇到异常又不知如何处理时,下列哪种说法是正确的回答错误
A、嵌套异常
B、声明异常
C、抛出异常
D、捕获异常
正确答案:B 提交答案:C
25、下面关于变量的说法错误的是回答正确
A、不能用浮点数作为循环变量
B、浮点型数据判断相等不能直接使用==
C、需要精确计算时建议使用long和double
D、避免同一个局部变量在前后表达不同的含义
正确答案:C 提交答案:C
26、对于使用默认编码方式的第三方代码或者遗留代码, 可应用适配器模式,将返回的字符串转换成什么内码回答错误
A、incode
B、Unicode
C、decode
D、uncode
正确答案:B 提交答案:C
27、以下代码结果是
class Dog {
public static void bark() {
System.out.println("woof");
}
}
class Basenji extends Dog {
public static void bark() {
System.out.println("miao");
}
}
public class Bark {
public static void main(String[] args) {
Dog woofer = new Dog();
Dog nipper = new Basenji();
woofer.bark();
nipper.bark();
}
}回答错误
A、输出2行miao
B、输出miao
C、输出woof
miao
D、输出2行woof
正确答案:D 提交答案:B
28、如下的代码片段说法错误的是
public class SensitiveHash {
private Hashtable<Integer, String> ht = new Hashtable<Integer, String>();
public void removeEntry(Object key) {
ht.remove(key);
}
}回答错误
A、代码实例化一个Hashtable,并定义了一个removeEntry()方法删除其条目
B、应该使用安全管理器检查来防止Hashtable实例中的条目被恶意删除
C、由于该方法被声明为是public且non-final的,所以是安全的
D、removeEntry()这个方法被认为是敏感的,因为哈希表中包含敏感信息
正确答案:C 提交答案:B
29、对于命令注入漏洞,命令将会以什么权限进行执行?回答错误
A、低于Java应用程序的权限
B、高于Java应用程序的权限
C、与Java应用程序相同的权限
D、命令注入时注入的权限
正确答案:C 提交答案:D
30、以下关于线程说法错误的是回答错误
A、java doc文档需要重点描述业务功能,对线程安全性简单说明即可,不需要详细说明
B、针对线程安全性,需要进行文档(javadoc)说明
C、当一个类的实例或者静态方法被并发使用的时候,这个类的行为如何,是该类与其客户端程序建立的约定的重要组成部分
D、如果一个类的文档中未描述其行为的并发性情况,使用者有可能做出错误假设,程序就可能缺少足够的同步,或者过度同步
正确答案:A 提交答案:D
31、方法头注释可以包含哪些内容?回答错误
A、算法实现、可重入的要求
B、功能说明、返回值
C、用法、内存约定
D、性能约束
正确答案:ABCD 提交答案:D
32、跨信任边界传递的不可信数据使用前必须进行校验,可以采用哪些校验方式?回答错误
A、“白名单”方式净化
B、“白名单”或者“正向”校验
C、“黑名单”方式净化
D、“黑名单”或者“负向”校验
正确答案:ABCD 提交答案:D
33、哪些信息是日志中不能保存的回答错误
A、银行卡信息
B、调试信息
C、口令、密钥
D、个人账户信息
正确答案:ACD 提交答案:D
34、preparedStatement和Statement的区别有哪些?回答错误
A、任何情况下,Statement要比PreparedStatement的效率高
B、在执行可变参数的一条SQL时,PreparedStatement要比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率高。安全性更好,有效防止SQL注入的问题。
C、对于多次重复执行的语句,使用PreparedStatement效率会更高一点。
D、PreparedStatement的安全性比Statement好
正确答案:BCD 提交答案:D
35、Java语言中,处理IO的方式都有哪几种?回答错误
A、CIO
B、 AIO
C、NIO
D、BIO
正确答案:BCD 提交答案:D
36、关于平台安全说法正确的有回答错误
A、避免使用URLClassLoader和java.util.jar提供的自动签名检查机制
B、不要基于不可信数据做安全检查
C、使用安全管理器来保护敏感操作
D、编写自定义类加载器时必须调用超类的getPermission()函数
正确答案:ABCD 提交答案:D
37、关于I/O操作说法正确的有回答错误
A、对于从流中读取一个字符或字节的方法,使用Integer类型的返回值
B、临时文件使用完毕必须及时删除
C、在多用户系统中创建文件时指定合适的访问许可
D、禁止将Buffer对象封装的数据暴露给不可信代码
正确答案:BCD 提交答案:D
38、些数据库隔离级别能防止脏读?回答错误
A、TRANSACTION_SERIALIZABLE
B、TRANSACTIONREPEATABLEREAD
C、TRANSACTIONREADCOMMITTED
D、TRANSACTION_DELETED
正确答案:ABC 提交答案:D
39、关于泛型的说法正确的有哪些?回答错误
A、静态工具方法很适合于泛型化
B、在集合中使用泛型,可以告诉编译器每个集合中接受哪些对象类型
C、类的设计可优先考虑泛型
D、数组与泛型集合相比,更灵活,应优先使用数组,而不是泛型集合
正确答案:ABC 提交答案:D
40、当将一个null变量视为一个正常的对象引用,且未校验该对象的状态,则会导致空指针引用,这种情况下会抛出NullPointException异常,进而可能会导致拒绝服务。常见的使用null场景如下:回答错误
A、获取一个null的Array的长度;
B、访问修改null对象的字段;
C、调用一个null对象的方法;
D、访问或修改Array中为null的元素;
正确答案:ABC 提交答案:D
41、关于异常的继承关系说法正确的有?回答错误
A、Error类是与Exception的平级的类,用来表示Java中存在的严重错误,只能通过修改代码来解决问题。
B、RuntimeException类是运行异常类,继承自Exception类,它以及它的子类只能在运行过程中存在,当出现时,只能修改源代码,此异常无法处理。
C、Exception异常类及其子类都是继承自Throwable类,用来表示java中可能出现的异常,并且合理的处理这些异常。
D、Throwable类是所有错误跟异常类的超类(祖宗类)。
正确答案:ABCD 提交答案:D
42、哪些类型的命名需要采用大驼峰命名?回答错误
A、枚举
B、常量
C、接口
D、包名
正确答案:AC 提交答案:CD
43、关于try-catch-finally-return的执行说法正确的有?回答错误
A、finally是在return后面的表达式运算执行的,所以函数返回值在finally执行前确定的,无论finally中的代码怎么样,返回的值都不会改变,仍然是之前return语句中保存的值
B、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值
C、当try和catch中有return语句时,finally块仍然会执行
D、如果有异常产生,finally块中代码不会执行
正确答案:ABC 提交答案:D
44、使用Runtime.exec()方法的时候需要注意哪些?回答错误
A、 禁止向Runtime.exec()方法传递不可信数据
B、禁止使用Runtime.exec()方法
C、避免使用 Runtime.exec()
D、如果无法避免使用Runtime.exec(),则必须要对输入数据进行检查和净化,防止其中包含命令分隔符,管道,或者重定向操作符(“&&”,“&”,“||”,“|”,“>”,“>>”)等,以及参数开关符(“-”,“/”)。
正确答案:ACD 提交答案:D
45、Socket不提供但是SSLSocket提供的主要保护包括回答错误
A、可重用性
B、可移植性
C、完整性保护
D、保密性(隐私保护)
正确答案:CD 提交答案:D
46、关于线程并发说法正确的有哪些?回答错误
A、CompletableFuture类的一系列async结尾的方法,可以启动一个异步任务,既可以在默认的线程池运行,也可以指定线程池。
B、使用Thread.interrupt()或者线程同步机制终止一个线程的运行,而不是Thread.stop()
C、多线程访问同一个共享的可变变量,需增加同步机制
D、针对线程安全性,需要进行文档(javadoc)说明
正确答案:ABCD 提交答案:D
47、在JDK中,哪些类是用来实现Java反射机制的?回答错误
A、Constructor类
B、Array类
C、Field类
D、Class类
正确答案:ABCD 提交答案:D
48、下面的说法错误的有回答错误
A、禁止使用私有或者弱加密算法
B、必须使用Socket代替SSLSocket来进行安全数据交互
C、安全场景下不需要使用强随机数
D、禁止在日志中保存口令、密钥和其他敏感数据
正确答案:BC 提交答案:D
49、对于异常的理解正确的有?回答错误
A、使用错误码来做业务逻辑错误处理,而非异常
B、在抛出异常的时候,应该同时提供足够信息,但是需要注意符合公司安全红线和法律法规的要求,不要包含敏感信息或者个人信息。
C、方法抛出的异常,应该与本身的抽象层次相对应
D、不要用exception机制来做流程控制。exception机制只应该用于处理罕见的、意料之外的、导致正常流程无法继续执行的行为,而不是取代正常的业务逻辑判断。
正确答案:BCD 提交答案:D
50、List和Set区别有哪些?回答错误
A、List不可以通过下标来访问,而Set可以
B、List是有序集合,而Set是无序集合
C、在List中允许插入重复的元素,而在Set中不允许重复元素存在
D、List和Set均是接口,List继承了Collection接口,而Set继承了Map。
正确答案:BC 提交答案:D
----------------------------------------------------------
2、JAVA字符的编码方式是回答正确
A、UTF-8
B、GBK
C、ASCII
D、GB2312
正确答案:A 提交答案:A
在哪个情况下,需要使用SSLSocket套接字回答错误
A、套接字的网络路径从来不越出信任边界
B、套接字上传输的数据不敏感
C、不安全的传输通道中传输敏感数据
D、数据虽然敏感,但是已经过恰当加密
正确答案:C 提交答案:B
4、以下哪个整数运算符不会存在溢出行为回答正确
A、 +
B、 %
C、 *
D、 -
正确答案:B 提交答案:B
6、关于序列化和反序列话说法错误的是回答正确
A、禁止直接将不可信数据进行反序列化
B、将含敏感数据的对象在同一信任区域传递前必须进行签名并加密
C、禁止序列化非静态的内部类
D、防止序列化和反序列化被利用来绕过安全管理器
正确答案:B 提交答案:B
7、下面说法正确的是:回答错误
A、每行一个语句是可以提高代码可读性
B、如果只有一个语句, if 不需要大括号
C、语句比较短的话, 每行要求一个语句浪费空间
D、在屏幕宽度范围能显示全的话,每行不一定要求只能一个语句
正确答案:A 提交答案:C
8、对于从流中读取一个字符或字节的方法,应该使用哪种类型的返回值回答正确
A、char
B、Integer
C、int
D、byte
正确答案:C 提交答案:C
10、对于方法的入参说法错误的是回答错误
A、不要把方法的入参当做工作变量
B、不要把方法的入参当做临时变量
C、引用类型的参数可以修改和set值
D、参数不能是final类型的
正确答案:D 提交答案:A
11、Java的哪个版本引入了可变参数回答错误
A、jdk1.5
B、jdk1.6
C、jdk1.8
D、jdk1.7
正确答案:A 提交答案:C
13、以下关于运算和表达式说法错误的是回答正确
A、不要写超过3个的复杂条件表达式
B、在条件表达式?:的第2和第3个操作数使用同样的类型
C、用括号明确表达式的操作顺序,避免过分依赖默认优先级
D、表达式的比较,应当遵循右侧倾向于变化、左侧倾向
于不变的原则
正确答案:D 提交答案:D
14、下面哪些做法不是反序列化修复的方法 回答错误
A、使用ValidatingObjectInputStream来校验反序列化的类
B、开启JSON框架的type功能
C、使用ObjectInputFilter来校验反序列化的类
D、通过Hook resolveClass来校验反序列化的类
正确答案:B 提交答案:A
16、关于资源管理说法错误的是回答错误
A、消除过期的对象引用
B、进行IO类操作时,应该在finally或者try-with-resource里关闭资源
C、使用主动GC,尤其是在频繁/周期性的逻辑中
D、将对象存入HashSet,或作为key存入HashMap(或 HashTable)后,必须确保该对象的hashcode值不变,避免因为 hashcode值变化导致不能从集合内删除该对象
正确答案:C 提交答案:D
18、下面哪个类型的命名需要采用小驼峰命名回答正确
A、枚举类型
B、注解
C、方法
D、枚举值
正确答案:C 提交答案:C
19、下列关于线程调度器和线程优先级说法正确的是回答错误
A、当调用Thread.yield()函数时,线程调度器会停止正在进行执行的线程任务,从而执行当前线程
B、在不同的操作系统中,不同厂商的JVM(如Oracle、IBM等),同一套代码,其多线程的调度机制也是一样的
C、线程的优先级将该线程的重要性传递给线程调度器,调度器将倾向于让优先权最高的线程先执行,因此可以使用线程优先级设定达到控制业务流程执行顺序
D、如果程序依赖于线程调度器来达到正确性或者性能要求,会导致不可移植。同理,程序如果依赖JAVA的线程优先级来确保正确性,也是不可移植的
正确答案:D 提交答案:A
20、每行限长()个字符回答正确
A、 50
B、 120
C、 2000
D、 4
正确答案:B 提交答案:B
23、Java代码的列限制为多少个字符回答正确
A、 100
B、 40
C、 80
D、 120
正确答案:D 提交答案:D
24、通常一个方法的代码行不超过多少行回答正确
A、 60
B、 50
C、 80
D、 100
正确答案:B 提交答案:B
21、服务补丁升级后针对某一方法提供了新的性能更优的方法,那么原方法应该如何处理?回答正确
A、不做处理
B、标注@deprecated
C、删除
D、将方法逻辑重定向到新方法
正确答案:B 提交答案:B
25、关于使用Thread.interrupt方法终止线程说法错误的是回答正确
A、优先使用协作式的线程同步机制,如j.u.c包中的各种synchronizer,加锁的共享变量、volatile共享变量等,来通知一个线程中止作业。
B、Thread.interrupt方法,可以让当前线程立即停止执行
C、在编写需要中止的多线程程序时,必须选用能够响应interrupt的标准库或第三方库
D、如果需要一个线程让另一个线程中止执行,Java API推荐的方式是,让被中止的线程在运行中周期性地查询自己是否被中止。
正确答案:B 提交答案:B
26、在除法运算中,以下说法正确的是()
代码1:
long num1, num2, result;
/* Initialize num1 and num2 */
result = num1 / num2;
代码2:
long num1, num2, result;
/* Initialize num1 and num2 */
if (num2 == 0) {
// Handle error
}
else {
result = num1 / num2;
} 回答错误
A、代码2正确
B、代码1正确
C、以上均不正确
D、以上都正确
正确答案:A 提交答案:D
27、关于数据校验的说法错误的是哪个回答错误
A、禁止直接使用不可信数据来拼接SQL语句
B、禁止向Runtime.exec()方法或java.lang.ProcessBuilder类传递不可信数据
C、从ZipInputStream中解压文件必须进行安全检查
D、获取文件路径时,必须使用getAbsolutePath(),禁止使用getCanonicalPath()
正确答案:D 提交答案:B
29、关于日志打印的说法错误的是回答错误
A、如果在记录的日志中包含未经校验的不可信数据,则可能导致日志注入漏洞
B、在日志中不能输出口令、密钥和其他敏感信息
C、不在日志中打印敏感信息
D、若因为特殊原因必须要打印日志,则用固定长度的星号(@)代替输出的敏感信息
正确答案:D 提交答案:B
30、关于线程任务异常处理说法正确的是回答错误
A、Java多线程程序中,所有线程都不允许抛出未捕获的unchecked exception,必须在子线程内处理完成
B、抛出异常时子线程会结束,同时可以由主线程通过try catch来捕获子线程异常
C、Java多线程程序中,所有子线程可能出现的异常都必须在子线程内处理完成
D、Java多线程程序中,所有线程都不允许抛出未捕获的checked exception
正确答案:D 提交答案:B
33、以下原则属于GDPR隐私保护七大原则的是回答错误
A、可归责
B、合法、正当、透明
C、存储期限有限化
D、完整性与保密性
正确答案:ABCD 提交答案:AB
38、哪些是子类与父类间重用名字可以使用的操作方法?回答错误
A、覆写(override)
B、重载(overload)
C、遮掩(obscure)
D、隐藏(hide)
正确答案:AD 提交答案:B
41、推荐使用的加密算法有哪些回答错误
A、DSA
B、RSA
C、AES
D、DES
正确答案:ABC 提交答案:ABD
43、ReDos攻击的防护手段有哪些?回答正确
A、对正则匹配的数据长度进行限制
B、避免动态构建正则,当使用不可信数据构造正则时,要使用白名单进行严格校验。
C、在编写正则时,尽量减少分组的使用
D、 在编写正则时,尽量不要使用过于复杂的正则,越复杂越容易有缺陷
正确答案:ABCD 提交答案:ABCD
44、关于国际化的说法正确的有哪些?回答错误
A、不要依赖平台默认的字符编码方式,使用UTF-8
B、字符串大小写转换、数字格式化为西方数字时,必须加上Locale.CHINESE
C、对于使用默认编码方式的第三方代码或者遗留代码, 可应用适配器模式,将返回的字符串转换成Unicode内码
D、在所有的输入输出环节,指明正确的编码方式,进行正确的字符到字节,或字节到字符的转换
正确答案:ACD 提交答案:ABCD
48、处于性能的考虑,初始化一些哪些集合时,最好指定其初始化容量回答错误
A、HashSet
B、ArrayList
C、StringBuilder
D、HashMap
正确答案:ABCD 提交答案:D
49、Java语言中,处理IO的方式都有哪几种?回答正确
A、 AIO
B、BIO
C、CIO
D、NIO
正确答案:ABD 提交答案:ABD