多益网络2020笔试题小结
题型:选择题,填空题,问答题,一道编程题。
填空题
防火墙
1.1 定义:一种控制访问技术
1.2 特点:防火墙将内部的网络成为可信网络,外部网络成为不可行网络
1.3 防火墙技术:
(1) 分组过滤路由器是一种分组过滤功能的路由器,他根据过滤规则对进出内部网络 的分组执行转发或者丢弃。过滤规则基于分组的网络层或者运输层,例如:ip,端口,协议类型,常见的为端口。过滤可以是无状态的,独立处理每一个分组,也可以是有状态的,跟踪每个连接和会话的通信状态,根据状态信息决定是否转发分组。
(2) 应用网关,代理服务器,他在应用层中扮演报文中继的角色。客户端向服务端发送报文,通过应用网关,应用网关检查该报文,查看请求是否合法,如果合法,应用网关以客户进程的身份将请求报文转发给原始服务器,如果不合法就丢弃。一种网络需要一个应用网关。
正则表达式
运算符与(&)、非(~)、或(|)、异或(^)
3.1 &(1相同的为1) 8&9 0001 & 1001 = 0001,则结果为 1;
3.2 ~ (源码的补码的取反的取反) 5~ 的源码为 0000 0101 补码 1111 1010 源码取反(补码-1)1111 1001 取反 0000 0110 则结果为 6;
3.3 | (有1为1 ,无1为0) 129|128 10000001 | 10000000 = 10000001 则结果为129;
3.4 ^ (同为0不同为1) 15^2 1111 ^ 0010 = 1101 则结果为 13;
Java语言不允许使用(指针)访问内存,更不允许(指针数组)访问内存
问答题
进程和线程区别
(1) 进程是资源分配的最小单位,线程是程序执行的最小单位。
(2) 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
(3) 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。
(4) 多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。
翻译静态变量
web应用中可能出现的安全问题
(1) sql注入
拼接的SQL字符串改变了设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库服务器, SQL Injection与Command Injection等攻击包括在内
(2) 重复提交
程序员在代码中没有对重复提交请求做限制,这样就会出现订单被多次下单,帖子被重复发布。恶意攻击者可能利用此漏洞对网站进行批量灌水,致使网站瘫痪
(3) 登录信息提示
用户登录提示信息会给攻击者一些有用的信息,作为程序的开发人员应该做到对登录提示信息的模糊化,以防攻击者利用登录得知用户是否存在
(4) 跨站脚本攻击(XSS或css)
跨站脚本(Cross-Site Scripting)是指远程WEB页面的html代码可以插入具有恶意目的的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害。简称CSS或XSS
(5) 没有限制URL访问
系统已经对URL的访问做了限制,但这种限制却实际并没有生效。攻击者能够很容易的就伪造请求直接访问未被授权的页面
(6) 越权访问
用户对系统的某个模块或功能没有权限,通过拼接URL或Cookie欺骗来访问该模块或功能
(7) 泄露配置信息
服务器返回的提示或错误信息中出现服务器版本信息泄露、程序出错泄露物理路径、程序查询出错返回 SQL语句、过于详细的用户验证返回信息。
(8) 不安全的加密存储
常见的问题是不安全的密钥生成和储存、不轮换密钥,和使用弱算法。使用弱的或者不带salt 的哈希算法来保护密码也很普遍。外部攻击者因访问的局限性很难探测这种漏洞。他们通常必须首先破解其他东西以获得需要的访问。
(9) 传输层保护不足
在身份验证过程中没有使用SSL / TLS,因此暴露传输数据和会话ID,被攻击者截听,或使用过期或者配置不正确的证书。
异常及其异常处理方式
异常:
非受查异常
(1) Error:系统内部运行错误,或者资源耗尽错误。
(2)派生于 RuntimeException:数组越界,空指针,类型转换错误。
受查异常
(1) 其他异常:不是Error和RuntimeException,例如:文件末尾读取数据,试图打开不存在的文件,使用字符串查找文件指定的类,而类不存在。
异常处理的方式
(1) 捕获异常:
1. 使用
a. try/catch 语句块
b. try中检查异常,catch中捕获异常,
c. 捕获多个异常
2. 再次抛出异常与异常链
a. 在catch中使用throw抛出
b. 抛出子系统中的高级异常,而不丢失原始的异常信息
3. 特点
a. 父类没有声明受查异常的时候,子类必须使用捕获异常
b. 使用场景:知道处理方法的异常
c. 捕获多个异常必须是范围小的在范围大的前面
4. finally
a. 不管是不是异常,都会被执行的子句
b. return 比try后执行但是一定会执行
(2) 抛出异常:
throw:
1. 如何抛出异常
a. 找到合适的异常类或者创建异常类
b. 实例化该类
c. 抛出该类
2. 创建异常类
a. 继承相关的异常类
b. 定义两个构造函数,一个默认一个详细描述信息的
(3) 声明异常:
throws:
1. 声明异常的4种情况:
a. 调用一个抛出受查异常的方法
b. 程序运行中发现错误,并且利用throw语句抛出一个受查异常
c. 程序出现错误,
d. Java虚拟机和运行时库出现的内部错误
2. 如何使用
a. 方法首部声明
3. 特点:
a. 子类的受查异常必须比父类的受查异常范围小
b. 没有throws说明符的方法将不能抛出任何受查异常
sql 优先输出字段,其余的照常输出(忘记了字段是num,主要是一个范围,还是varchar。暂时)
按varchar处理
select * from table order by case when 字段= “条件” then 1 else 0 end ; select * from table where 字段=条件 union select * from table select * from table where 字段=条件 union all select * from table not in (条件 )
编程题
输入一个值,表示人数,可以相邻之间交换位置,问交换几次可以将左边的交换到右边,右边的交换到左边。感觉题意理解的不是很好,期待有大佬来解决一下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
- 这篇文章主要介绍了程序员面试的几个小技巧,在平时面试的时候,除了实打实的技能还需要更多的技巧,双管齐下才能赢得更大的胜算,技能方面就不多说了,下面来分享几个面试2023-04-23
- 面试中,问锁主要是两方面:锁的日常使用场景 + 锁原理,锁的日常使用场景主要考察对锁 API 的使用熟练度,看看你是否真的使用过这些 API,而不是纸上谈兵,锁原理主要就是2022-05-19
- 这篇文章主要介绍了Mybatis常见面试题详细总结,通过总结列举大量的mybatis面试常见题目供给大家参考,希望对大家有所帮助2021-08-24
- 这篇文章主要介绍了2020Java后端开发面试题总结(春招+秋招+社招),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2021-02-18
- 这篇文章主要介绍了MySQL数据库选择题小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2021-02-07
- 这篇文章主要介绍了30道有趣的JVM面试题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-11-26
- 这篇文章主要介绍了Python面试题爬虫篇小结(附答案),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-10-28
- 这篇文章主要介绍了还不理解B树和B+树,那就看看这篇文章吧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一2020-09-10
- 这篇文章主要介绍了Java面试通关要点汇总(备战秋招),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2020-09-08
- 这篇文章主要介绍了10道JVM常见面试题解析(附答案),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学2020-09-04
最新评论