第十二期八股文巴拉巴拉说

639124a1cbeede2d7563d5f3db108aac.png

点击上方蓝字关注我们

 1   Q:在浏览器中输入url地址到显示页面的过程?

52b3cedb44ece1fb13b3d52c9a1b7d84.png

10237ec0169d7dea18ab29e9144a81f6.png

1、DNS解析:浏览器查找域名的ip地址。浏览器缓存->路由器缓存->DNS缓存。

2、TCP连接(三次握手):与服务器建立TCP连接。

3、发起HTTP请求:Cookie会随着请求发送给服务器。

4、服务器处理请求并返回HTTP报文。

5、浏览器解析渲染页面,显示html。

6、连接结束(四次挥手)。

5435c84350ff6571bb2413d6b017273d.png

7aee7a87052d3eb9eadab6a105e2e497.png

a7199cc5436a72e998e955c7254ba6fa.png

 2   Q:DNS查询算法?

3e9af8a1bf35e2597fd50e8f32d4ddb7.png

3d1a31551ac6d780f7ca66ab80c76d36.png

1、主机向本地域名服务器的查询一般都是采用递归查询,即如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询。

2、本地域名服务器向根服务器的查询通常采用迭代查询,即当根域名服务器收到本地域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器“下一次应向哪个域名服务器进行查询”。

a9092f60c063cd769ec0a5034252a492.png

b21d0a278ef463358ec0e3d8f71df637.png

db300b3f4235c02c2c219265c1ecea32.png

 3   Q:URI和URL的区别是什么?

28b3cf1011280eeba9765971a7446140.png

12d52226c3b3fb93c602948742f6d3ac.png

1、URL(Uniform Resource Location) 是统⼀资源定位符,可以提供该资源的路径。它是⼀种具体的 URI,即 URL 可以⽤来标识⼀个资源,⽽且还指明了如何 locate 这个资源。URI的作⽤像身份证号⼀样,URL的作⽤更像家庭住址⼀样。URL是⼀种具体的URI,它不仅唯⼀标识资源,⽽且还提供了定位该资源的信息。

2、URI(Uniform Resource Identifier) 是统⼀资源标志符,可以唯⼀标识⼀个资源。

6607ff471e2e4d29cb2b6f5a9c06ace4.png

97a8191a407faae43ee4bd9980d66a89.png

4a5b08228af84c8ce558edbcd693e9f8.png

 4   Q:HAVNG 子句 和 WHERE 的异同点?

9e84d164a840da267d4f4ba0a3a8de82.png

0783a9f4be14e962a6d94df50999dfda.png

1、where 用表中列名,having 用 select 结果别名。

2、影响结果范围:where 从表读出数据的行数,having 返回客户端的行数。

3、where 可以使用索引,having 不能使用索引,只能在临时结果集操作。

4、where 后面不能使用聚集函数,having 是专门使用聚集函数的。

ec7f65f270d2a9a41698fd5c2c0535b4.png

9caac0774fda6162791153d872fe755b.png

b1d57c6a8de89bbe2e31d4410303195c.png

 5   Q:#{}和${}的区别是什么?

8b6070f3615780617c6635e9b48fa265.png

bf7066b240ee0265f8fd8b1f76f26ca7.png

1、#{}是预编译处理,${}是字符串替换。

2、Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值。

3、Mybatis 在处理${}时,就是把${}替换成变量的值。

4、使用#{}可以有效的防止 SQL 注入,提高系统安全性。

c245aa15c564606ce6c3db1fbceb4a6f.png

34d9a5ccf9aac00d8e2d486e331a0727.png

b7f38562b19459ca8f2149a529abc61b.png

 6   Q:resultType resultMap 的区别?

a5fb1a7e45d637bdbb99e911400fd1ab.png

797369fa126aca9c62ca834457c3e3f5.png

1、类的名字和数据库相同时,可以直接设置 resultType 参数为 Pojo 类。

2、若不同,需要设置 resultMap 将结果名字和 Pojo 名字进行转换。

c774c9da032d963116ea2f38f97f878c.png

3dcf45ffb7da7cb478fe50fafd04c2a6.png

c25f222ffaa0b6bdc0ecb1b0b3ed9ea8.png

 7   Q:Mybatis 缓存?

40ce0f446688504dbd8e3bf51d89769f.png

036754d0b59dd10a152d4583cb44e9ed.png

Mybatis 中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指 SqlSession 级别的缓存,当在同一个 SqlSession 中进行相同的 SQL 语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存 1024 条 SQL。二级缓存是指可以跨 SqlSession 的缓存。是 mapper 级别的缓存,对于 mapper 级别的缓存不同的sqlsession 是可以共享的。

一级缓存原理:第一次发出一个查询 sql,sql 查询结果写入 sqlsession 的一级缓存中,缓存使用的数据结构是一个 map。key是MapperID+offset+limit+Sql+所有的入参,value是用户信息。同一个 sqlsession 再次发出相同的 sql,就从缓存中取出数据。如果两次中间出现 commit 操作(修改、添加、删除),本 sqlsession 中的一级缓存区域全部清空,下次再去缓存中查询不到所以要从数据库查询,从数据库查询到再写入缓存。

二级缓存原理:二级缓存的范围是 mapper 级别(mapper 同一个命名空间),mapper 以命名空间为单位创建缓存数据结构,结构是 map。mybatis 的二级缓存是通过 CacheExecutor 实现的。CacheExecutor其实是 Executor 的代理对象。所有的查询操作,在 CacheExecutor 中都会先匹配缓存中是否存在,不存在则查询数据库。key为MapperID+offset+limit+Sql+所有的入参。具体使用:1. Mybatis 全局配置中启用二级缓存配置。2. 在对应的 Mapper.xml 中配置 cache 节点。3. 在对应的 select 查询节点中添加 useCache=true。

d281ce02456420dc7c9e8572878d2aa5.png

95415ab5db6d365adfe17d722fbdcd9b.png

05f6239085c1e0d7be086cd0a60e63cc.png

 8   Q:http 的长连接和短连接?

945418abfe93b45af13c6f06afd9be7d.png

188e91438a6043b808db478386a70268.png

1、HTTP 协议有 HTTP/1.0 版本和 HTTP/1.1 版本。HTTP1.1 默认保持长连接(HTTP persistent connection,也翻译为持久连接),数据传输完成了保持 TCP 连接不断开(不发 RST 包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

2、在 HTTP/1.0 中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。从 HTTP/1.1 起,默认使用的是长连接,用以保持连接特性。

cb0de937b87b6e721df7bf05322aa3e6.png

a605e073dc764ca2debab8e620aa71ba.png

2602f0fcb5e5b0412220063e282a9625.png

b185d1f039ef9ea61fb26fb571b04f35.png

点个在看你最好看

6853a1ea5b586477a6e41e6b83a08f86.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值