当前位置:   article > 正文

Java面试题合集:网络编程+数据库原理+多线程+Spring框架+Redis等

Java面试题合集:网络编程+数据库原理+多线程+Spring框架+Redis等

网络编程

  1. ISO模型与协议

  2. http1.0:需要使用keep-alive参数来告知服务器端要建立一个长连接

  3. http1.1:默认长连接。支持只发送header信息,可以用作权限请求。支持Host域。

  4. http2.0:多路复用的技术,做到同一个连接并发处理多个请求。HTTP2.0使用HPACK算法对header的数据进行压缩。支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。

  5. 会话层:负责管理主机之间的会话进程,负责建立、管理、终止进程之间的会话。

  6. 传输层:将上层数据分段并提供端到端的、可靠的或不可靠的传输,还要处理端到端的差错控制和流量控制问题。协议TCP、UDP、SPX

  7. 网络层:对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。协议IP、IPX、RIP、OSPF

  8. 数据链路层:在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。协议SDLC、HDLC、PPP、STP、帧中继

  9. TCPIP模型与协议

  10. 应用层:单位是数据段,协议有FTP、TELNET、HTTP、SMTP、SNMP、TFTP、NTP、DNS

  11. 运输层:单位是数据包,协议有TCP、UDP

  12. 网络层:单位是数据帧,协议有IP

  13. 网络接口层:单位是比特,ARP、RARP

  14. 三次握手与四次挥手

  15. BIO NIO AIO

  16. BIO:同步阻塞IO,每个请求都要一个线程来处理。

  17. NIO:同步非阻塞IO,一个线程可以处理多个请求,适用于短连接、小数据。

  18. AIO:异步非阻塞IO,一个线程处理多个请求,使用回调函数实现,适用于长连接、大数据。

  19. DDOS攻击原理与防御方式

  20. HTTP Get Flood:发送大量会产生sql查询的连接,使得数据库负载很高。

  21. CSRF跨站请求伪造原理攻击者盗用了你的身份,以你的名义发送恶意请求。

  22. CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的!

  23. 防御方式:1.验证码;2. 后台生成token,让前端请求携带。3.使用对称加密,后端随机给前端一个密钥,前端进行加密,后端解密。

  24. 会话劫持通过暴力破解、 预测、窃取(通过XSS攻击)等方式获取到用户session

  25. XSS攻击XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全的头号大敌。

  26. XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。

  27. XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见场景是在博客,论坛等社交网站上,但OA系统,和CRM系统上也能看到它身影,比如:某CRM系统的客户投诉功能上存在XSS存储型漏洞,黑客提交了恶意攻击代码,当系统管理员查看投诉信息时恶意代码执行,窃取了客户的资料,然而管理员毫不知情,这就是典型的XSS存储型攻击。

  • 解决方法

  • 在表单提交或者url参数传递前,对需要的参数进行过滤

  • 过滤用户输入。检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等

28.RPC与HTTP服务的区别

数据库原理

  1. MYISAM与innodb搜索引擎原理MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。其采用索引文件与数据文件,索引文件只存放索引,叶子节点存放数据的物理地址。数据文件存放数据。其索引方式是非聚集的。

  2. InnoDB也使用B+Tree作为索引结构。但是它的主索引与数据都放在一个文件中。这种索引叫做聚集索引,因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。

  • 区别一:InnoDB的主索引与数据都放在一个文件中。而MYISAM是分开存放的。

  • 区别二:InnoDB的辅助索引data域存储相应记录主键的值而不是地址。

  • 区别三:InnoDB的主键索引是聚集索引,而MYISAM不是聚集索引。

3.索引,聚簇索引和二级索引的加锁区别

  • 聚集(clustered)索引,也叫聚簇索引。数据行的物理顺序与列值(一般是主键的那一列࿰

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/86694?site
推荐阅读
相关标签
  

闽ICP备14008679号